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模块模式分析
May 16 Javascript
JS数组的常见用法实例
Feb 10 Javascript
JavaScript中常用的六种互动方法示例
Mar 13 Javascript
JavaScript中用于四舍五入的Math.round()方法讲解
Jun 15 Javascript
使用Chart.js图表库制作漂亮的响应式表单
Oct 28 Javascript
bootstrap table小案例
Oct 21 Javascript
原生js代码实现图片放大境效果
Oct 30 Javascript
AngularJS中的按需加载ocLazyLoad示例
Jan 11 Javascript
requirejs + vue 项目搭建详解
Jun 16 Javascript
Javascript中弹窗confirm与prompt的区别
Oct 26 Javascript
微信小程序 数据缓存实现方法详解
Aug 26 Javascript
JavaScript 判断数据类型的4种方法
Sep 11 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
收听困难?教您超简便短波广播抗干扰方法!
2021/03/01 无线电
深入for,while,foreach遍历时间比较的详解
2013/06/08 PHP
php基于SQLite实现的分页功能示例
2017/06/21 PHP
PHP http请求超时问题解决方案
2020/11/13 PHP
JQuery UI DatePicker中z-index默认为1的解决办法
2010/09/28 Javascript
JS网页图片按比例自适应缩放实现方法
2014/01/15 Javascript
jQuery采用连缀写法实现的折叠菜单效果
2015/09/18 Javascript
js一维数组、多维数组和对象的混合使用方法
2016/04/03 Javascript
js传值后台中文出现乱码的解决方法
2016/06/30 Javascript
jQuery弹出下拉列表插件(实现kindeditor的@功能)
2016/08/16 Javascript
js基础之DOM中document对象的常用属性方法详解
2016/10/28 Javascript
javascript中setAttribute兼容性用法分析
2016/12/12 Javascript
bootstrap laydate日期组件使用详解
2017/01/04 Javascript
Angular.JS利用ng-disabled属性和ng-model实现禁用button效果
2017/04/05 Javascript
搭建一个nodejs脚手架的方法步骤
2019/06/28 NodeJs
JS箭头函数和常规函数之间的区别实例分析【 5 个区别】
2020/05/27 Javascript
Vue-CLI 3 scp2自动部署项目至服务器的方法
2020/07/24 Javascript
[01:04]DOTA2:伟大的Roshan雕塑震撼来临
2015/01/30 DOTA
[03:41]DOTA2上海特锦赛小组赛第三日recap精彩回顾
2016/02/28 DOTA
Python使用cx_Oracle模块将oracle中数据导出到csv文件的方法
2015/05/16 Python
Python OpenCV实现图片上输出中文
2018/01/22 Python
详解python列表生成式和列表生成式器区别
2019/03/27 Python
python里dict变成list实例方法
2019/06/26 Python
python3.6+selenium实现操作Frame中的页面元素
2019/07/16 Python
基于pytorch的lstm参数使用详解
2020/01/14 Python
新手学习Python2和Python3中print不同的用法
2020/06/09 Python
python使用nibabel和sitk读取保存nii.gz文件实例
2020/07/01 Python
实例讲解使用HTML5 Canvas绘制阴影效果的方法
2016/03/25 HTML / CSS
计算机售后服务承诺书
2014/05/30 职场文书
爱护公共设施标语
2014/06/24 职场文书
2014年纠风工作总结
2014/12/08 职场文书
培训通知
2015/04/17 职场文书
入党积极分子党支部意见
2015/06/02 职场文书
教师节祝酒词
2015/08/11 职场文书
职场中的你,辞职信写对了吗?
2019/06/26 职场文书
分享python函数常见关键字
2022/04/26 Python