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 相关文章推荐
用javascript实现的图片马赛克后显示并切换加文字功能
Apr 21 Javascript
checkbox全选/取消全选以及checkbox遍历jQuery实现代码
Dec 02 Javascript
javascript中检测变量的类型的代码
Dec 28 Javascript
JS实现随机化快速排序的实例代码
Aug 01 Javascript
js获取对象、数组的实际长度,元素实际个数的实现代码
Jun 08 Javascript
leaflet的开发入门教程
Nov 17 Javascript
JavaScript解决浮点数计算不准确问题的方法分析
Jul 09 Javascript
layui 表格的属性的显示转换方法
Aug 14 Javascript
vue-socket.io跨域问题有效解决方法
Feb 11 Javascript
在vue项目实现一个ctrl+f的搜索功能
Feb 28 Javascript
vue打包npm run build时候界面报错的解决
Aug 13 Javascript
在vue项目中引用Antv G2,以饼图为例讲解
Oct 28 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
怎么样可以把 phpinfo()屏蔽掉?
2006/11/24 PHP
PHP+jQuery实现滚屏无刷新动态加载数据功能详解
2017/05/04 PHP
PHP培训要多少钱
2017/06/06 PHP
CakePHP框架Model函数定义方法示例
2017/08/04 PHP
javascript 同时在IE和FireFox获取KeyCode的代码
2010/02/07 Javascript
javascript表单验证 - Parsley.js使用和配置
2013/01/25 Javascript
javascript使用location.search的示例
2013/11/05 Javascript
JavaScript给url网址进行encode编码的方法
2015/03/18 Javascript
JQuery判断checkbox是否选中及其它复选框操作方法合集
2015/06/01 Javascript
JavaScript中日期的相关操作方法总结
2015/10/24 Javascript
关于cookie的初识和运用(js和jq)
2016/04/07 Javascript
IE和Firefox之间在JavaScript语法上的差异
2016/04/22 Javascript
bootstrap轮播图示例代码分享
2017/05/17 Javascript
使用JQuery实现图片轮播效果的实例(推荐)
2017/10/24 jQuery
Nodejs中获取当前函数被调用的行数及文件名详解
2018/12/12 NodeJs
微信小程序module.exports模块化操作实例浅析
2018/12/20 Javascript
JavaScript使用面向对象实现的拖拽功能详解
2019/06/12 Javascript
elementui之el-tebs浏览器卡死的问题和使用报错未注册问题
2019/07/06 Javascript
python从入门到精通(DAY 1)
2015/12/20 Python
python结合API实现即时天气信息
2016/01/19 Python
Python 闭包的使用方法
2017/09/07 Python
Python tkinter事件高级用法实例
2018/01/31 Python
python实现蒙特卡罗方法教程
2019/01/28 Python
python自动结束mysql慢查询会话的实例代码
2019/10/27 Python
python3中利用filter函数输出小于某个数的所有回文数实例
2019/11/24 Python
python中如何进行连乘计算
2020/05/28 Python
HTML5所有标签汇总及标签意义解释
2015/03/12 HTML / CSS
html5响应式开发自动计算fontSize的方法
2020/01/13 HTML / CSS
华为旗下电子商务平台:华为商城
2016/08/06 全球购物
Urban Outfitters英国官网:美国平价服饰品牌
2016/11/25 全球购物
澳大利亚最好的在线时尚精品店:Princess Polly
2018/01/03 全球购物
2014年司机工作总结
2014/11/21 职场文书
杜甫草堂导游词
2015/02/03 职场文书
2016年国陪研修感言
2015/11/18 职场文书
MySQL查询学习之基础查询操作
2021/05/08 MySQL
十大好看的穿越动漫排名:《瑞克和莫蒂》第一,国漫《有药》在榜
2022/03/18 日漫