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

发布于 2022-09-30 12:05:37 字数 10774 浏览 19 评论 0

转:与您分享我的快乐 ---笨笨

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



1.这是效果图:

1.jpg (7.15 KB, 下载次数: 18)

下载附件

2011-04-08 10:43 上传



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代码实现该功能的,试着尝试一下吧。)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文