文本版|topic 高级搜索
   名人堂 帮助 论坛制度 意见反馈 | 首页 博客 周新贴 招聘 专题 新闻
RSS 底部
 
社区导航: 专家门诊   网络技术   操作系统   数据库   程序设计   系统应用   考试认证   CIO及信息化   站长交流   综合交流   下载基地  51CTO产品服务 设为首页 | 收藏本站
51CTO技术论坛» 技术白皮书 » WEB » JS做的批量图片展示程序       [ 打印]  [ 订阅]  [ 收藏]  [ 推荐给朋友]   [ 本帖文本页]

论坛跳转:
     
标题: JS做的批量图片展示程序  ( 查看:2985  回复:11 )   
 
wantin6
高级工程师  点击可查看详细



帖子 1209
精华 7
无忧币 16024
积分 13314
阅读权限 70
注册日期 2005-9-23
最后登录 2008-6-1 离线

[查看资料]  [发短消息]  [Blog
       
发表于:2006-7-26 13:31   标题:JS做的批量图片展示程序
上一帖 |
][非PHP] JS做的批量图片展示程序

这几天给别人做了一个小的JavaScript的程序,来做批量图片的展示,完全支持FireFox和IE。

觉得查强人意,小show一下子。欢迎大家给出意见。因为刚做完,还没有做代码优化。

把以下代码,保存为test.htm,直接打开即可看到效果。

图片的分页和图片的编号的得到,使用正则表达式处理的。


// File name   : test.htm
// Description : 图像浏览画册
// Requirement : HTML+JavaScript
//
// Copyright(C), HonestQiao, 2005, All Rights Reserved.
//
// Author: HonestQiao (honestqiao@hotmail.com)
//
// --------------------------------------------------------------------------

  /// 设置每行显示多少个图片
  var LineNum = 4;

  /// 设置每页显示多少行图片
  var PageNum = 3;

  /// 设置图片的总数
  var ImgTotal = 80;

  /// 设置图片的基本网址
  var ImgBaseHref = "http://www.cfan.com.cn/pic/chahua/";

  /// 设置图片的缩略图后缀
  var imgThumb = ".gif";

  /// 设置图片的大图后缀
  var imgPicture = ".jpg";

  document.onLoad=autoCreatePictureList();

  function autoCreatePictureList()
  {

                var objpTable;
                var objpTr;

        var strTableOut;
        var strTableIn;
        var strTrOut;
        var strTrIn;
        var ColNum;

        var strTrOutModify;
        var strTrInModify;
        var strTableOutModify;
        var strTableInModify;

        var strPrev = "";
        var strNext = "";
        var strPage = "";

        var strBaseHref = "";

     if (navigator.userAgent.indexOf("MSIE") != -1)
     {
                objpTable = document.getElementById('pTable');
                objpTr = document.getElementById('pTr');
        strTableOut= objpTable.outerHTML;
        strTableIn = objpTable.innerHTML;
        strTrOut   = objpTr.outerHTML;
        strTrIn    = objpTr.innerHTML;

        strTrOutModify = "";
        strTrInModify = "";
        strTableOutModify = "";
        strTableInModify = "";
     }
     else
     {
            objpTable = document.getElementById('pTable');
                objpTr = document.getElementById('pTr');

        strTableIn = objpTable.innerHTML;
        strTrIn    = objpTr.innerHTML;

        strTrInModify = "";
        strTableInModify = "";
     }

     strBaseHref = window.location.pathname;
     strHash = window.location.hash;
     if (strHash=="")
     {
        strHash = window.location.search;
     }
     
     if (strHash=="")
     {
        strHash = "page1";
     }

     var strPage;
     var myregexp = /page(\d+)/;
     var match = myregexp.exec(strHash);
     if (match != null && match.length > 1) {
        strPage = match[1];
     } else {
        strPage = "";
     }

     var strPicNum;
     var myregexp = /pic(\d+)/;
     var match = myregexp.exec(strHash);
     if (match != null && match.length > 1) {
        strPicNum = match[1];
     } else {
        strPicNum = "";
     }

     if (strPage=="")
     {
        if (strPicNum>1 && strPicNum上一张";
           strNext = "下一张";
        }
        else if (strPicNum==1)
        {
           strPrev = "上一张";
           strNext = "下一张";
        }
        else if (strPicNum==ImgTotal)
        {
           strPrev = "上一张";
           strNext = "下一张";
        }
        else
        {
           strPicNum = Math.round(Math.random() * ImgTotal);
           if (strPicNum=ImgTotal-1)
           {
              strPicNum = ImgTotal-1;
           }
           strPrev = "上一张";
           strNext = "下一张";
        }

        strTrInModify = strTrIn.replace(/\{IMAGE\}/g, "");
        strTrInModify = strTrInModify.replace(/width=["']?150["']?/ig, "width=10%");

        strPage = ''+strPrev+' '+strNext+'';

        if (navigator.userAgent.indexOf("MSIE") != -1)
        {
           strTableInModify = strTableIn.replace(strTrIn,strTrInModify);

           strTableInModify = strPage + strTableInModify + strPage;

           strTableOutModify = strTableOut.replace(strTableIn , strTableInModify);
        }
        else
        {
           strTableInModify = strTableIn.replace(strTrIn,strTrInModify);
           strTableInModify = strPage + strTableInModify + strPage;
        }
     }
     else
     {

        var intStart;
        var intEnd;
        var intPageTotal;

        intPageTotal = Math.round(ImgTotal / (PageNum * LineNum)+0.4);
        if (strPage>intPageTotal)
        {
           strPage = intPageTotal;
        }
        if (strPage ImgTotal)
        {
           intEnd = ImgTotal;
        }
        var pageImgTotal = intEnd - intStart;

        ColNum = Math.round(pageImgTotal/LineNum+0.4) ;

        for(j=0;jImgTotal)
              {
                 strTrInModify = strTrInModify + strTrIn.replace(/\{IMAGE\}/g, " ");
              }
              else
              {
                 strTrInModify = strTrInModify + strTrIn.replace(/\{IMAGE\}/g, "");
              }
           }
           if (navigator.userAgent.indexOf("MSIE") != -1)
           {
              strTrOutModify = strTrOutModify + strTrOut.replace(strTrIn,strTrInModify);
           }
           else
           {
              strTableInModify = strTableInModify + strTableIn.replace(strTrIn,strTrInModify);
           }
        }

        if (strPage>1 && strPage上一页";
           strNext = "下一页 ";
        }
        else if (strPage==1)
        {
           strPrev = "上一页";
           strNext = "下一页";
        }
        else if (strPage==intPageTotal)
        {
           strPrev = "上一页";
           strNext = "下一页";
        }
      
        strPageStart = "首页";
        strPageEnd = "尾页";
        strPageIndex ="";
        for (i=1;i"+i+"]";
           }
           else
           {
              strPageIndex = strPageIndex + "["+i+"]";
           }
           
        }
        strPage = ''+strPageStart+' '+strPrev+' '+' '+strPageIndex + ' ' + strNext+' '+strPageEnd+'';

        if (navigator.userAgent.indexOf("MSIE") != -1)
        {
           strTrOutModify = strPage + strTrOutModify + strPage;
           strTableOutModify = strTableOut.replace(strTableIn , strTrOutModify);
        }
        else
        {
           strTableInModify = strPage + strTableInModify + strPage;
           strTableInModify = strTableInModify;
        }
     }
     if (navigator.userAgent.indexOf("MSIE") != -1)
     {
        strTableOutModify = strTableOutModify.replace(/vAlign=center/ig, "align=center");
        strTableOutModify = strTableOutModify.replace(/align=middle/ig, "valign=middle");
        objpTable.outerHTML = strTableOutModify;
     }
     else
     {
        strTableInModify = strTableInModify.replace(/vAlign=center/ig, "align=center");
        strTableInModify = strTableInModify.replace(/align=middle/ig, "valign=middle");
        objpTable.innerHTML = strTableInModify;
     }

  }

[ 本帖最后由 wantin6 于 2006-7-26 13:33 编辑 ]
2006-7-26 13:311楼
[ 顶部 ]
 
wangxianluhappy
新新人类  点击可查看详细


帖子 97
精华 0
无忧币 105
积分 120
阅读权限 20
来自 (保密)
注册日期 2006-7-23
最后登录 2008-3-8 离线

[查看资料]  [发短消息]  [Blog
  QQ       
发表于:2006-7-26 13:53 
ding
2006-7-26 13:532楼
[ 顶部 ]
 
wangxianluhappy
新新人类  点击可查看详细


帖子 97
精华 0
无忧币 105
积分 120
阅读权限 20
来自 (保密)
注册日期 2006-7-23
最后登录 2008-3-8 离线

[查看资料]  [发短消息]  [Blog
  QQ       
发表于:2006-7-26 13:53 
ding
2006-7-26 13:533楼
[ 顶部 ]
 
kinko
新新人类  点击可查看详细



帖子 11
精华 0
无忧币 29
积分 21
阅读权限 20
注册日期 2006-9-10
最后登录 2007-3-2 离线

[查看资料]  [发短消息]  [Blog
       
发表于:2006-9-10 14:09 
不知道怎么用啊,说错误i
2006-9-10 14:094楼
[ 顶部 ]
 
计算机客
副版主  点击可查看详细


处女座  
帖子 2157
精华 3
无忧币 6099
积分 3739
阅读权限 140
来自 (保密)
注册日期 2006-9-24
最后登录 2008-7-13 离线

[查看资料]  [发短消息]  [Blog
[个人主页]    QQ       
发表于:2006-11-1 13:57 
MEI FA YONGDE



技术不是一辈子,管理不是每一个人都可以,Come On 2008 改变自己!!!
2006-11-1 13:575楼
[ 顶部 ]
 
kouqi
新新人类  点击可查看详细



帖子 2
精华 0
无忧币 22
积分 12
阅读权限 20
注册日期 2006-11-27
最后登录 2006-11-27 离线

[查看资料]  [发短消息]  [Blog
       
发表于:2006-11-27 22:04   标题:支持中!

支持中!
2006-11-27 22:046楼
[ 顶部 ]
 
fullvip
新新人类  点击可查看详细



帖子 1
精华 0
无忧币 11
积分 1
阅读权限 20
注册日期 2007-1-24
最后登录 2007-1-24 离线

[查看资料]  [发短消息]  [Blog
       
发表于:2007-1-24 09:57 
我也来顶



网络工程师到底该不该去考CCIE认证?
2007-1-24 09:577楼
[ 顶部 ]
 
hua0221
新新人类  点击可查看详细



帖子 88
精华 0
无忧币 62
积分 79
阅读权限 20
注册日期 2007-1-23
最后登录 2008-7-16 离线

[查看资料]  [发短消息]  [Blog
  QQ       
发表于:2007-1-29 13:34 
ddddddddddddddddddddddddddddddddddd



网络工程师到底该不该去考CCIE认证?
2007-1-29 13:348楼
[ 顶部 ]
 
blackbrume
新新人类  点击可查看详细



帖子 91
精华 0
无忧币 15
积分 101
阅读权限 20
注册日期 2006-11-15
最后登录 2008-6-23 离线

[查看资料]  [发短消息]  [Blog
       
发表于:2007-2-19 10:58   标题:谢谢楼主,收藏了

谢谢楼主,收藏了谢谢楼主,收藏了



网络工程师到底该不该去考CCIE认证?
2007-2-19 10:589楼
[ 顶部 ]
 
saibst
新新人类  点击可查看详细



帖子 16
精华 0
无忧币 24
积分 16
阅读权限 20
注册日期 2007-4-20
最后登录 2007-9-6 离线

[查看资料]  [发短消息]  [Blog
  QQ       
发表于:2007-9-6 11:54 
收藏!



网络工程师到底该不该去考CCIE认证?
2007-9-6 11:5410楼
[ 顶部 ]
 
92workshop
新新人类  点击可查看详细



十二生肖之狗   水瓶座   行业勋章   技术勋章   诚信兄弟  
帖子 15
精华 0
无忧币 21
积分 15
阅读权限 20
注册日期 2007-9-7
最后登录 2008-2-15 离线

[查看资料]  [发短消息]  [Blog
  QQ       
发表于:2007-12-19 20:42 
又学习了~~~
感谢



网络工程师到底该不该去考CCIE认证?
2007-12-19 20:4211楼
[ 顶部 ]
 
30879989
新新人类  点击可查看详细



帖子 11
精华 0
无忧币 13
积分 11
阅读权限 20
注册日期 2008-2-10
最后登录 2008-3-10 离线

[查看资料]  [发短消息]  [Blog
       
发表于:2008-2-10 13:10 
学习了,谢谢楼主了



网络工程师到底该不该去考CCIE认证?
2008-2-10 13:1012楼
[ 顶部 ]
     
论坛跳转:  

| | |

| | |

| | |

标记已读 · 删除论坛Cookies · 文本版 · WAP
 
| 诚征版主 | 版主堂 | 意见建议 | 大史记 | 论坛地图
Copyright©2005-2008 51CTO.COM  Powered by Discuz!
本论坛言论纯属发布者个人意见,不代表51CTO网站立场!如有疑义,请与管理员联系。
京ICP备05051492号