图片翻页滚动效果

JavaScript实现的图片翻页滚动效果

  1. <html><head>
  2. <meta http-equiv='Content-Type' content='text/html; charset=gb2312'>
  3. <script language='JavaScript'>
  4. var scrollerheight=160;                                                //定义每个区域显示的高度
  5. var html,total_area=0,wait_flag=true;      //初始化html串,总显示区域数,是否等待.
  6. var bMouseOver = 1;                                            //鼠标放上去就不滚动了,这里硬编码为true
  7. var scrollspeed = 5;                                                     //滚动速度,其实是每次向上移动的象素数,值越大看起来越快
  8. var waitingtime = 5000;                                         //每次翻动的等待时间,单位毫秒
  9. var s_tmp = 0                                                                             //初始移动次数
  10. var s_amount = 32;                                                      //它的值是由每次需要移动的象素除以scrollspeed换算出来的
  11. var scroll_content=new Array();                     //声明一个数组
  12. var startPanel=0, n_panel=0, i=0;           //声明初始区域,区域个数和循环变量
  13.  
  14. //********************************************
  15. //这是我做的一个跟踪变量函数
  16. //在需要使用跟踪变量的地方直接调用trace()函数就可以了.
  17. var newwin;
  18. var isDebug = 1;
  19. function trace(s)
  20. {
  21.        if(isDebug)
  22.        {
  23.               try
  24.               {
  25.                      newwin.document.write(s + "<BR>");
  26.               }
  27.               catch(e)
  28.               {
  29.                      newwin = window.open("","trace");
  30.                      newwin.document.write(s + "<BR>");
  31.               }
  32.        }      
  33. }
  34. //**********************************************
  35. //初始化滚动函数
  36. function startscroll(){
  37.        
  38.        //随机获取初始区域
  39.        //startPanel是0到scroll_content下标的任意数
  40.        i=0;
  41.        for(i in scroll_content)n_panel++;
  42.        n_panel = n_panel -1;
  43.        startPanel = Math.round(Math.random()*n_panel);
  44.  
  45.        //如果初始区域是第一个元素,
  46.        //调用insert_area把scroll_content里所有元素都装到DIV里
  47.        if(startPanel == 0) 
  48.        {
  49.               i=0;
  50.               for(i in scroll_content)
  51.                      insert_area(total_area, total_area++); 
  52.        }
  53.        else 
  54.               //如果初始区域是最后一个元素
  55.               //先把最后一个装进DIV,然后依次把其它元素装进DIY
  56.               if(startPanel == n_panel) //如果是最后一个元素
  57.               {
  58.                      insert_area(startPanel, total_area);
  59.                      total_area++;
  60.                      for(i=0; i<startPanel; i++)
  61.                      {
  62.                             insert_area(i,total_area);
  63.                             total_area++;
  64.                      }
  65.               }
  66.        else
  67.               //如果初始区域不是第一个,也不是最后一个
  68.               //先把当前区域装进DIV,
  69.               //然后再把当前区域之前和之后的区域装进DIV
  70.               if((startPanel > 0) || (startPanel < n_panel)) 
  71.               {
  72.                      insert_area(startPanel,total_area);
  73.                      total_area++;
  74.                      for(i=startPanel+1; i<=n_panel; i++)
  75.                      {
  76.                             insert_area(i,total_area);
  77.                             total_area++;
  78.                      }
  79.                      for(i=0; i<startPanel; i++)
  80.                      {
  81.                             insert_area(i,total_area);
  82.                             total_area++;
  83.                      }
  84.               }
  85.        //每隔waitingtime的时间调用一次scrolling()函数
  86.        window.setTimeout('scrolling()',waitingtime);
  87. }
  88.  
  89.  
  90. //滚动函数
  91. function scrolling()
  92. {
  93.        //判断鼠标是否放上去,并且是否在等待
  94.        if(bMouseOver && wait_flag) 
  95.        {
  96.               trace("----------------------------");
  97.               for(i=0;i<total_area;i++)
  98.               {
  99.                      //每次所有区域同意向上移动scrollspeed个象素
  100.                      tmp = document.getElementById('scroll_area'+i).style;
  101.                      tmp.top = parseInt(tmp.top) - scrollspeed;  
  102.                      
  103.                      if(i==0)trace("第一个区域的顶部"+parseInt(tmp.top));
  104.                      //如果从屏幕种移出1个区域的话,被移出的区域从底部出现
  105.                      if (parseInt(tmp.top) <= -scrollerheight) 
  106.                      {
  107.                             tmp.top = scrollerheight*(total_area-1);
  108.                      }
  109.                      
  110.                      trace("移动次数:"+s_tmp);
  111.                      //s_tmp是向上移动的次数,按理说应该移动到正好要移动的象素就该停止了
  112.                      //因为一次向上移动scrollspeed个象素,本例子中一次翻动要移动的象素就是scrollerheight
  113.                      //当然你也可以一次翻动两个scrollerheight
  114.                      //所以要移动scrollerheight/scrollspeed次,s_amount就是这样算出来的.               
  115.                      //因为s_tmp是从0初始化的,所以减去1后才是真正一次翻动要移动的次数
  116.                      //但是呢,因为执行一次scrolling()函数,s_tmp就会增加scroll_content.length多次,
  117.                      //所以移动的次数应当是(s_amount-1)*scroll_content.length),
  118.                      //当翻动次数大于我们算出来的值的时候就要停止,也就是把向上移动的必要条件去调
  119.                      //这从跟踪变量的输出可以看出来
  120.                      if(s_tmp++ > (s_amount-1)*scroll_content.length) 
  121.                      {
  122.                             trace("(s_amount-1)*scroll_content.length="+(s_amount-1)*scroll_content.length)
  123.                             wait_flag=false;//进入等待
  124.                             //等待waitingtime,再消除等待,并且吧s_tmp归零.
  125.                             window.setTimeout('wait_flag=true;s_tmp=0;',waitingtime);
  126.                      }
  127.               }
  128.        }
  129.        //设置1秒钟执行1000次本函数
  130.        window.setTimeout('scrolling()',1);
  131. }
  132.  
  133. function insert_area(idx, n)
  134. {
  135. html='<div style="left: 0px; width: 100%; position: absolute; top: '+(scrollerheight*n)+'px" id="scroll_area'+n+'">';
  136. html+=scroll_content[idx]+'';html+='</div>';document.write(html);
  137. }
  138. //下面的部分可以由asp循环生成
  139.  
  140. scroll_content[0] = '<table height=140 align=center border=0 width=300 id=0><tr><td><a href=# target=_blank><IMG SRC=http://onlytiancai/bak/77love/UploadAdPic/200572695027151.gif width=307 height=140 border=0></a></td></tr></table>';
  141. scroll_content[1] = '<table height=140 align=center border=0 width=300 id=1><tr><td><a href=# target=_blank><IMG SRC=http://onlytiancai/bak/77love/UploadAdPic/200572694642351.jpg width=307 height=140 border=0></a></td></tr></table>';
  142. scroll_content[2] = '<table height=140 align=center border=0 width=300 id=2><tr><td><a href=# target=_blank><IMG SRC=http://onlytiancai/bak/77love/UploadAdPic/200572694652122.jpg width=307 height=140 border=0></a></td></tr></table>';
  143. startscroll();</script>

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值