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 相关文章推荐
jquery多浏览器捕捉回车事件代码
Jun 22 Javascript
js全屏显示显示代码的三种方法
Nov 11 Javascript
JavaScript正则表达式的分组匹配详解
Feb 13 Javascript
浅谈JQuery+ajax+jsonp 跨域访问
Jun 25 Javascript
基于BootstrapValidator的Form表单验证(24)
Dec 12 Javascript
react-native-tab-navigator组件的基本使用示例代码
Sep 07 Javascript
js捆绑TypeScript声明文件的方法教程
Apr 13 Javascript
Vue.js 实现微信公众号菜单编辑器功能(二)
May 08 Javascript
三种Webpack打包方式(小结)
Sep 19 Javascript
Vue插件从封装到发布的完整步骤记录
Feb 28 Javascript
JavaScript实现英语单词题库
Dec 24 Javascript
Vue过滤器(filter)实现及应用场景详解
Jun 15 Vue.js
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
ThinkPHP中Widget扩展的两种写法及调用方法详解
2017/05/04 PHP
Prototype Selector对象学习
2009/07/23 Javascript
动态样式类封装JS代码
2009/09/02 Javascript
Textarea与懒惰渲染实现代码
2012/01/04 Javascript
了解了这些才能开始发挥jQuery的威力
2013/10/10 Javascript
用javascript将数据导入Excel示例代码
2014/09/10 Javascript
jQuery中大家不太了解的几个方法
2015/03/04 Javascript
jquery带翻页动画的电子杂志代码分享
2015/08/21 Javascript
JS+CSS实现的经典圆角下拉菜单效果代码
2015/10/21 Javascript
jQuery动画效果相关方法实例分析
2015/12/31 Javascript
jQuery EasyUI Pagination实现分页的常用方法
2016/05/21 Javascript
js 获取当前web应用的上下文路径实现方法
2016/08/19 Javascript
JQuery和PHP结合实现动态进度条上传显示
2016/11/23 Javascript
Vue.js中组件中的slot实例详解
2017/07/17 Javascript
详解JS中的this、apply、call、bind(经典面试题)
2017/09/19 Javascript
React Native时间转换格式工具类分享
2017/10/24 Javascript
vue左右侧联动滚动的实现代码
2018/06/06 Javascript
echarts设置图例颜色和地图底色的方法实例
2018/08/01 Javascript
c++生成dll使用python调用dll的方法
2014/01/20 Python
Python易忽视知识点小结
2015/05/25 Python
Django中模型Model添加JSON类型字段的方法
2015/06/17 Python
Python迭代器与生成器基本用法分析
2018/07/26 Python
Python3分析处理声音数据的例子
2019/08/27 Python
python字典setdefault方法和get方法使用实例
2019/12/25 Python
Jupyter notebook快速入门教程(推荐)
2020/05/18 Python
纯CSS3+DIV实现小三角形边框效果的示例代码
2020/08/03 HTML / CSS
猫咪家具:CatsPlay
2018/11/03 全球购物
Math.round(11.5)等於多少? Math.round(-11.5)等於多少?
2015/01/27 面试题
自动化专业毕业生自荐信
2013/11/01 职场文书
机电一体化大学生求职信
2013/11/08 职场文书
迎接领导欢迎词
2014/01/11 职场文书
金融与证券专业求职信
2014/06/22 职场文书
自愿解除劳动合同协议书
2014/09/11 职场文书
学生保证书
2015/01/16 职场文书
2015年党员发展工作总结
2015/05/13 职场文书
CentOS安装Nginx并部署vue
2022/04/12 Servers