JavaScript实现垂直滚动条效果


Posted in Javascript onJanuary 18, 2017

本文实例为大家分享了js垂直滚动条的实现代码,供大家参考,具体内容如下

1、红色盒子高度计算公式:

容器的高度 / 内容的高度 * 容器的高度

2、红色方块移动一像素 ,我们的内容盒子移动多少呢?

(内容盒子高度 - 大盒子高度) / (大盒子高度 - 红色盒子的高度) 计算倍数

(内容盒子高度 -  大盒子高度)/  (大盒子高度 - 红色盒子的高度)   * 红色盒子移动的数值

<html>
<head>
  <meta charset="UTF-8">
  <title>垂直滚动条</title>
  <style>
  *{
    padding: 0;
    margin: 0;
  }
    .box{
      width: 300px;
      height: 500px;
      border: 1px solid red;
      padding-right: 20px;
      margin: 100px;
      position: relative;
    }
    .content{
       padding: 5px 18px 10px 5px;
      position: absolute;
      left: 0;
      top: -10px;
    }
    .scroll{
      position: absolute;
      top: 0;
      right: 0;
      background-color: #ccc;
      width: 20px;
      height: 100%;
    }
    .bar{
      width: 100%;
      height: 20px;
      background-color: red;
      border-radius: 10px;
      position: absolute;
      left: 0;
      top: 0;
      cursor: pointer;
    }
  </style>  
</head>
<body>
  <div class="box" id="box">
    <div class="content">
      三观不同,一句话都嫌多。我想,人和人之间一定存在磁场这回事,沿着三观向外辐射。
   …………
 </div>
    <div class="scroll">
      <div class="bar"></div>
    </div>
  </div>
  <script>  
    var box = document.getElementById('box');
    var content = box.children[0];
    var scroll = box.children[1];
    var bar = scroll.children[0];
    //计算滚动条红色bar的长度:容器长度/内容长度 * 容器长度,,比例关系
    bar.style.height = box.offsetHeight / content.offsetHeight * box.offsetHeight +"px";
    bar.onmousedown = function(event){
      var event = event || window.event;
      var y = event.clientY - this.offsetTop;
      document.onmousemove = function(event){
        var event = event || window.event;

        var top = event.clientY - y;
        if(top < 0)
          top =0;
        else if(top > scroll.offsetHeight - bar.offsetHeight)
          top = scroll.offsetHeight - bar.offsetHeight;
        bar.style.top = top +"px";
        //(内容盒子高度 - 大盒子高度) / (大盒子高度 - 红色盒子的高度)  * 红色盒子移动的数值
        content.style.top = -(content.offsetHeight - box.offsetHeight)/(box.offsetHeight - bar.offsetHeight)*top+"px";

        window.getSelection ? window.getSelection().removeAllRanges() : document.selection.empty();  // 防止拖动滑块的时候, 选中文字
      }
    }
    document.onmouseup = function(){
      document.onmousemove = null;
    }
  </script>
</body>
</html>

效果:

JavaScript实现垂直滚动条效果

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Jquery选择器 $实现原理
Dec 02 Javascript
jQuery+JSON+jPlayer实现QQ空间音乐查询功能示例
Jun 17 Javascript
JS实现OCX控件的事件响应示例
Sep 17 Javascript
JavaScript中split() 使用方法汇总
Apr 17 Javascript
jQuery实现表格行上移下移和置顶的方法
May 22 Javascript
bootstrap手风琴折叠示例代码分享
May 22 Javascript
Javascript 严格模式use strict详解
Sep 16 Javascript
JS字符串与二进制的相互转化实例代码详解
Jun 28 Javascript
layui对工具条进行选择性的显示方法
Sep 19 Javascript
详解从vue-loader源码分析CSS Scoped的实现
Sep 23 Javascript
JavaScript键盘事件响应顺序详解
Sep 30 Javascript
vue调用本地摄像头实现拍照功能
Aug 14 Javascript
JavaScript实现水平进度条拖拽效果
Jan 18 #Javascript
原生js获取浏览器窗口及元素宽高常用方法集合
Jan 18 #Javascript
基于JavaScript实现窗口拖动效果
Jan 18 #Javascript
原生js实现节日时间倒计时功能
Jan 18 #Javascript
原生js实现返回顶部缓冲效果
Jan 18 #Javascript
详解jquery validate实现表单验证 (正则表达式)
Jan 18 #Javascript
原生js实现中奖信息无间隙滚动效果
Jan 18 #Javascript
You might like
如何选购合适的收音机
2021/03/01 无线电
用PHP生成html分页列表的代码
2007/03/18 PHP
php 上传文件类型判断函数(避免上传漏洞 )
2010/06/08 PHP
PHP strip_tags() 去字符串中的 HTML、XML 以及 PHP 标签的函数
2016/05/22 PHP
php回调函数处理数组操作示例
2020/04/13 PHP
PHP 8新特性简介
2020/08/18 PHP
JQuery中DOM事件冒泡实例分析
2015/06/13 Javascript
JQuery实现鼠标移动图片显示描述层的方法
2015/06/25 Javascript
jQuery.uploadify文件上传组件实例讲解
2016/09/23 Javascript
js 转义字符及URI编码详解
2017/02/28 Javascript
分享19个JavaScript 有用的简写写法
2017/07/07 Javascript
利用Vue实现移动端图片轮播组件的方法实例
2017/08/23 Javascript
vue2.0实现前端星星评分功能组件实例代码
2018/02/12 Javascript
JavaScript字符串转数字的5种方法及遇到的坑
2018/07/16 Javascript
js canvas实现红包照片效果
2018/08/21 Javascript
ElementUI 修改默认样式的几种办法(小结)
2020/07/29 Javascript
[36:33]Ti4 循环赛第四日 附加赛NEWBEE vs Mouz
2014/07/13 DOTA
Python程序员开发中常犯的10个错误
2014/07/07 Python
Python利用pyHook实现监听用户鼠标与键盘事件
2014/08/21 Python
Python使用dis模块把Python反编译为字节码的用法详解
2016/06/14 Python
浅谈python中的变量默认是什么类型
2016/09/11 Python
python实现m3u8格式转换为mp4视频格式
2018/02/28 Python
详解Django+Uwsgi+Nginx 实现生产环境部署
2018/11/06 Python
Python3爬虫爬取英雄联盟高清桌面壁纸功能示例【基于Scrapy框架】
2018/12/05 Python
Python实现获取系统临时目录及临时文件的方法示例
2019/06/26 Python
全球领先的各类汽车配件零售商:Advance Auto Parts
2016/08/26 全球购物
演讲稿怎么写
2014/01/07 职场文书
纠风工作实施方案
2014/03/15 职场文书
元旦寄语大全
2014/04/10 职场文书
小学生竞选班长演讲稿
2014/04/24 职场文书
2014中考励志标语
2014/06/05 职场文书
房屋租赁合同补充协议
2014/10/11 职场文书
中秋节慰问信
2015/02/15 职场文书
2015年语文教师工作总结
2015/05/25 职场文书
毕业实习单位意见
2015/06/04 职场文书
深入理解Vue的数据响应式
2021/05/15 Vue.js