JS自定义滚动条效果简单实现代码


Posted in Javascript onOctober 27, 2020

本文实例为大家分享了JS自定义滚动条效果的具体代码,供大家参考,具体内容如下

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>自定义滚动条</title>
<style type="text/css">
#div1 {
 width: 20px;
 height: 400px;
 position: relative;
 background: black;
 margin: 5px auto;
 left: 200px;
}
 
#div2 {
 width: 20px;
 height: 20px;
 position: absolute;
 background: green;
}
 
#div3 {
 width: 300px;
 height: 300px;
 position: relative;
 overflow: hidden;
 top: -320px;
 border: 1px solid black;
 background-color:green;
}
 
#div4 {
 position: absolute;
 left: 0;
 top: -20px;
 padding: 4px;
}
</style>
<script type="text/javascript">
 window.onload = function() {
 var oDiv = document.getElementById('div1');
 var oDiv2 = document.getElementById('div2');
 var oDiv3 = document.getElementById('div3');
 var oDiv4 = document.getElementById('div4');
 var disY = 0;
 oDiv.onmousedown = function(ev) {
  var oEvent = ev || event;
  //Div距离 ClientX-Left
  disY = oEvent.clientY - oDiv2.offsetTop;
  if (oDiv2.setCapture) {
  //IE
  oDiv2.onmousemove = function(ev) {
   var oEvent = ev || event;
   var y = oEvent.clientY - disY;
   //下拉
   var scale = y / (oDiv.offsetHeight - oDiv2.offsetHeight);
   // document.title =scale;
   //磁铁吸附
   if (scale < 0) {
   scale = 0;
   } else if (scale > 1) {
   scale = 1;
   }
   if (y < 0) {
   y = 0;
   } else if (y > oDiv.offsetHeight - oDiv2.offsetHeight) {
   y = oDiv.offsetHeight - oDiv2.offsetHeight;
   }
   oDiv2.style.top = y + 'px';
   oDiv4.style.top = -(oDiv4.offsetHeight - oDiv3.offsetHeight)
    * scale + 'px';
 
  };
  oDiv2.onmouseup = function() {
   oDiv2.onmousemove = null;
   oDiv2.onmouseup = null;
 
   oDiv2.releaseCapture();
  };
 
  oDiv2.setCapture();
  } else {
  //Chrome FF
  oDiv2.onmousemove = function(ev) {
   var oEvent = ev || event;
   var y = oEvent.clientY - disY;
   if (y < 0) {
   y = 0;
   } else if (y > Div2.offsetHeight - oDiv.offsetHeight) {
   y = Div2.offsetHeight - oDiv.offsetHeight;
   }
   oDiv2.style.top = y + 'px';
  };
  document.onmouseup = function() {
   document.onmousemove = null;
   document.onmouseup = null;
 
  };
 
  }
  //阻止浏览器的默认拖拽
  return false;
 };
 
 };
</script>
</head>
<body>
 <div id="div1" title="我是素材">
 <div id="div2" title="我是下拉线"></div>
 </div>
 <div id="div3" title="我是下拉框">
 <div id="div4">来自意大利时尚之都米兰的地标建筑“垂直森林”来到了中国。据美媒boredpanda2月6日报道,“垂直森林之父”为斯特凡诺·博埃里(Stefano
  Boeri),而南京“垂直森林”项目为亚洲首座博埃里设计在建的“垂直森林”建筑。
 
  报道称,此项建筑将由656英尺(约200米)及354英尺(约108米)的双塔楼组成,外围覆盖至少1000棵树以及约2500棵灌木类植物。“垂直森林”每天可以消化二氧化碳,并释放132磅(约60千克)的氧气。来自意大利时尚之都米兰的地标建筑“垂直森林”来到了中国。据美媒boredpanda2月6日报道,“垂直森林之父”为斯特凡诺·博埃里(Stefano
  Boeri),而南京“垂直森林”项目为亚洲首座博埃里设计在建的“垂直森林”建筑。
 
  报道称,此项建筑将由656英尺(约200米)及354英尺(约108米)的双塔楼组成,外围覆盖至少1000棵树以及约2500棵灌木类植物。“垂直森林”每天可以消化二氧化碳,并释放132磅(约60千克)的氧气。来自意大利时尚之都米兰的地标建筑“垂直森林”来到了中国。据美媒boredpanda2月6日报道,“垂直森林之父”为斯特凡诺·博埃里(Stefano
  Boeri),而南京“垂直森林”项目为亚洲首座博埃里设计在建的“垂直森林”建筑。
 
  报道称,此项建筑将由656英尺(约200米)及354英尺(约108米)的双塔楼组成,外围覆盖至少1000棵树以及约2500棵灌木类植物。“垂直森林”每天可以消化二氧化碳,并释放132磅(约60千克)的氧气。来自意大利时尚之都米兰的地标建筑“垂直森林”来到了中国。据美媒boredpanda2月6日报道,“垂直森林之父”为斯特凡诺·博埃里(Stefano
  Boeri),而南京“垂直森林”项目为亚洲首座博埃里设计在建的“垂直森林”建筑。
 
  报道称,此项建筑将由656英尺(约200米)及354英尺(约108米)的双塔楼组成,外围覆盖至少1000棵树以及约2500棵灌木类植物。“垂直森林”每天可以消化二氧化碳,并释放132磅(约60千克)的氧气。
 </div>
 </div>
</body>
</html>

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

Javascript 相关文章推荐
Autocomplete Textbox Example javascript实现自动完成成功
Aug 17 Javascript
解决jquery中美元符号命名冲突问题
Jan 08 Javascript
node.js集成百度UE编辑器
Feb 05 Javascript
EasyUI实现二级页面的内容勾选的方法
Mar 01 Javascript
JavaScript中获取Radio被选中的值
Nov 11 Javascript
详解页面滚动值scrollTop在FireFox与Chrome浏览器间的兼容问题
Dec 03 Javascript
JavaScript中的闭包
Feb 24 Javascript
Javascript将数字转化成为货币格式字符串
Jun 22 Javascript
BootStrap 可编辑表Table格
Nov 24 Javascript
Vue插值、表达式、分隔符、指令知识小结
Oct 12 Javascript
JS使用正则表达式实现常用的表单验证功能分析
Apr 30 Javascript
Vue实现鼠标经过文字显示悬浮框效果的示例代码
Oct 14 Javascript
jQuery实现节点的追加、替换、删除、复制功能示例
Jul 11 #jQuery
微信小程序分页加载的实例代码
Jul 11 #Javascript
Bootstrap弹出框(Popover)被挤压的问题小结
Jul 11 #Javascript
React入门教程之Hello World以及环境搭建详解
Jul 11 #Javascript
underscore之function_动力节点Java学院整理
Jul 11 #Javascript
ReactNative实现图片上传功能的示例代码
Jul 11 #Javascript
手把手教你搭建ES6的开发运行环境
Jul 11 #Javascript
You might like
PHP n个不重复的随机数生成代码
2009/06/23 PHP
php页面缓存ob系列函数介绍
2012/10/18 PHP
PHP生成数组再传给js的方法
2014/08/07 PHP
php动态生成缩略图并输出显示的方法
2015/04/20 PHP
php5.x禁用eval的操作方法
2018/10/19 PHP
firefox中用javascript实现鼠标位置的定位
2007/06/17 Javascript
javascript 传统事件模型构造的事件监听器实现代码
2010/05/31 Javascript
浅析jquery的作用与优势
2013/12/02 Javascript
解析JSON对象与字符串之间的相互转换
2013/12/18 Javascript
谈谈JavaScript类型系统之Math
2016/01/06 Javascript
jQuery ajax时间差导致的变量赋值问题分析
2016/01/22 Javascript
JS排序方法(sort,bubble,select,insert)代码汇总
2016/01/30 Javascript
javascript随机抽取0-100之间不重复的10个数
2016/02/25 Javascript
JS检测页面中哪个HTML标签触发点击事件的方法
2016/06/17 Javascript
jQuery实现淡入淡出的模态框
2017/02/09 Javascript
JS实现双击内容变为可编辑状态
2017/03/03 Javascript
微信小程序中使用javascript 回调函数
2017/05/11 Javascript
在Django中创建动态视图的教程
2015/07/15 Python
Python在线运行代码助手
2016/07/15 Python
Windows下安装python MySQLdb遇到的问题及解决方法
2017/03/16 Python
Python操作MongoDB数据库的方法示例
2018/01/04 Python
在python中以相同顺序shuffle两个list的方法
2018/12/13 Python
对Python发送带header的http请求方法详解
2019/01/02 Python
Python2和Python3的共存和切换使用
2019/04/12 Python
python 用所有标点符号分隔句子的示例
2019/07/15 Python
pytorch中的自定义数据处理详解
2020/01/06 Python
Tensorflow 模型转换 .pb convert to .lite实例
2020/02/12 Python
使用scrapy ImagesPipeline爬取图片资源的示例代码
2020/09/28 Python
python中scipy.stats产生随机数实例讲解
2021/02/19 Python
计算机毕业大学生推荐信
2013/12/01 职场文书
电子工程求职信
2014/07/17 职场文书
日语系毕业求职信
2014/07/27 职场文书
2014年党务工作总结
2014/11/25 职场文书
大学生读书笔记范文
2015/07/01 职场文书
Vue的过滤器你真了解吗
2022/02/24 Vue.js
以下牛机,你有几个
2022/04/05 无线电