免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3162 | 回复: 0
打印 上一主题 下一主题

html中设置某个区域手动上下滚动 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-04-08 10:43 |只看该作者 |倒序浏览
转:与您分享我的快乐 ---笨笨

html中设置某个区域手动上下滚动




1.这是效果图:


2.代码实现
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  

  2. <html xmlns="http://www.w3.org/1999/xhtml">  

  3. <head>  

  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  

  5. <title>手动滚动</title>  

  6. <style type="text/css">  

  7.     ul,li{margin:0;padding:0;}  

  8.     ul li{ line-height:25px;}  

  9.     #mybox{  

  10.         overflow:hidden;  

  11.         background:#CCC;  

  12.         height:100px;  

  13.         width:200px;  

  14.     }  

  15.     .up ,.down{ background:#63F;width:200px;}  

  16. </style>  

  17. <script type="text/javascript" src="jquery-1.3.2.min.js"></script>  

  18. <script type="text/javascript">  

  19.     var myTimer;  

  20.     var speed=200;//速度毫秒 值越小速度越快  

  21.     var stepSpeed=4;//值越大越快  

  22.     $(function(){  

  23.         var mybox=$("#mybox");  

  24.            

  25.         //向上  

  26.         $(".up").bind("mouseover",function(){  

  27.                 var nowPos=mybox[0].scrollTop;//当前值  

  28.                 changePos(mybox,nowPos,0);  

  29.             }).bind("mouseout",function(){  

  30.                 if(myTimer){window.clearInterval(myTimer);}  

  31.                 });  

  32.                   

  33.         //向下      

  34.         $(".down").bind("mouseover",function(){  

  35.                 var nowPos=mybox[0].scrollTop;//当前值  

  36.                 var maxPos=mybox[0].scrollHeight - mybox.outerHeight();//最大值  

  37.                 changePos(mybox,nowPos,maxPos);  

  38.             }).bind("mouseout",function(){  

  39.                 if(myTimer){window.clearInterval(myTimer);}  

  40.                 });  

  41.         });  

  42.            

  43.         function changePos(box,from,to){  

  44.             if(myTimer){window.clearInterval(myTimer);}  

  45.             var temStepSpeed=stepSpeed;  

  46.             if(from>to){  

  47.                 myTimer=window.setInterval(function(){  

  48.                     if(box[0].scrollTop>to){box[0].scrollTop-=(5+temStepSpeed);temStepSpeed+=temStepSpeed;}  

  49.                     else{window.clearInterval(myTimer);}  

  50.                     },speed);  

  51.             }else if(from < to){  

  52.                 myTimer=window.setInterval(function(){  

  53.                     if(box[0].scrollTop<to){box[0].scrollTop+=(5+temStepSpeed);temStepSpeed+=temStepSpeed;}  

  54.                     else{window.clearInterval(myTimer);}  

  55.                     },speed);  

  56.             }  

  57.         }  

  58.            

  59.    

  60. </script>  

  61. </head>  

  62.    

  63. <body>  

  64. <div class="up">向上</div>  

  65. <div id="mybox">  

  66.     <ul>  

  67.         <li>0test</li><li>1test</li><li>2test</li><li>3test</li><li>4test</li><li>5test</li><li>6test</li><li>7test</li><li>8test</li><li>9test</li><li>10test</li><li>11test</li><li>12test</li><li>13test</li><li>14test</li><li>15test</li><li>16test</li><li>17test</li><li>18test</li><li>19test</li><li>20test</li><li>21test</li><li>22test</li><li>23test</li><li>24test</li><li>25test</li><li>26test</li><li>27test</li><li>28test</li><li>29test</li><li>30test</li><li>31test</li><li>32test</li><li>33test</li><li>34test</li><li>35test</li><li>36test</li><li>37test</li><li>38test</li><li>39test</li><li>40test</li><li>41test</li><li>42test</li><li>43test</li><li>44test</li><li>45test</li><li>46test</li><li>47test</li><li>48test</li><li>49test</li><li>50test</li><li>51test</li><li>52test</li><li>53test</li><li>54test</li><li>55test</li><li>56test</li><li>57test</li><li>58test</li><li>59test</li><li>60test</li><li>61test</li><li>62test</li><li>63test</li><li>64test</li><li>65test</li><li>66test</li><li>67test</li><li>68test</li><li>69test</li><li>70test</li><li>71test</li><li>72test</li><li>73test</li><li>74test</li><li>75test</li><li>76test</li><li>77test</li><li>78test</li><li>79test</li><li>80test</li><li>81test</li><li>82test</li><li>83test</li><li>84test</li><li>85test</li><li>86test</li><li>87test</li><li>88test</li><li>89test</li><li>90test</li><li>91test</li><li>92test</li><li>93test</li><li>94test</li><li>95test</li><li>96test</li><li>97test</li><li>98test</li><li>99test</li>  

  68.     </ul>  

  69. </div>  

  70. <div class="down">向下</div>  

  71.    

  72. </body>  

  73. </html>
复制代码
3.实现的主要思路
  固定div的宽度和高度,设置CSS的overflow:hidden;然后使用js代码修改div的scrollTop值就可以实现滚动了。

4.可以依据这些实现的其它功能:
  自动滚动,图片滚动等功能,这是上下滚动,左右滚动的实现应该也没有什么问题了吧。

5.注意:
  代码中使用了jquery,要运行测试请引入jquery.(当然你也可以基本js代码实现该功能的,试着尝试一下吧。)
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP