zoukankan      html  css  js  c++  java
  • 自制一个滚动条

    参考文章:【https://blog.csdn.net/u014205965/article/details/45972803

     1 <html>
     2     <head>
     3         <title>自定义滚动条</title>
     4         <style>
     5             #parent{
     6                 width: 400px;
     7                 height: 30px;
     8                 background: lightgrey;
     9                 position: relative;
    10             }
    11 
    12             #child{
    13                 width: 30px;
    14                 height: 30px;
    15                 background: greenyellow;
    16                 position: absolute;
    17             }
    18             #box {
    19                 width: 0;
    20                 height: 0;
    21                 background: blueviolet;
    22             }
    23         </style>
    24     </head>
    25     <body>
    26         <div id="parent">
    27             <div id="child"></div>
    28         </div>
    29         <div id="box"></div>
    30         <script>
    31 
    32             window.onload=function() {
    33                 var oParent = document.getElementById('parent');
    34                 var oChild = document.getElementById('child');
    35                 var disX = 0;
    36                 oChild.onmousedown = function (ev) {
    37                     var ev = ev || window.event;
    38                     disX = ev.clientX - oChild.offsetLeft;
    39                     document.onmousemove = function (ev) {
    40                         var ev = ev || window.event;
    41                         var oBox = document.getElementById('box');
    42                         // 限制小Div拖动范围
    43                         var L = ev.clientX - disX;
    44 
    45                         if (L<0) {
    46                             //因为小div是相对大div定位的,所以当拖到大div的最左边的时候,小div的left就为0了
    47                             L = 0;
    48                         }
    49 
    50                         if (L > oParent.offsetWidth - oChild.offsetWidth) {
    51                             L = oParent.offsetWidth - oChild.offsetWidth;
    52                         }
    53 
    54                         // 定义一个滚动的比例,因为L的大小是由上面的判断语句决定的,所以scale需要定义在判断语句下面,定义在上面会出问题
    55                         var scale = L/(oParent.offsetWidth - oChild.offsetWidth);
    56                         oChild.style.left = L + 'px';
    57                         oBox.style.width = scale * 300 + 'px';
    58                         oBox.style.height = scale * 300 + 'px';
    59                         
    60                     }
    61                     document.onmouseup = function () {
    62                         document.onmousemove = null;
    63                         document.onmouseup = null;  
    64                     }
    65                     return false;
    66                 }
    67             }
    68         </script>
    69     </body>
    70 </html>
  • 相关阅读:
    idea配置web项目启动的详细说明
    mybatis如何防止sql注入(1)
    SQL基础(3)
    SQL基础(2)
    SQL基础(1)
    SpringMVC—对Ajax的处理(含 JSON 类型)(3)
    SpringMVC 之URL请求到Action的映射(1)
    Oracle 多表查询(2)
    Oracle 多表查询(1)
    mysql查询最近30天、7天、每天、昨天、上个月的记录
  • 原文地址:https://www.cnblogs.com/keepee/p/12227675.html
Copyright © 2011-2022 走看看