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 Pagination Ajax分页插件(分页切换时无刷新与延迟)中文翻译版
Jan 11 Javascript
JSON.parse()和JSON.stringify()使用介绍
Jun 20 Javascript
jQuery获取样式中颜色值的方法
Jan 29 Javascript
浅谈javascript的分号的使用
May 12 Javascript
javascript排序函数实现数字排序
Jun 26 Javascript
jquery实现点击弹出带标题栏的弹出层(从右上角飞入)效果
Sep 19 Javascript
JavaScript数据结构与算法之集合(Set)
Jan 29 Javascript
js实现图片放大展示效果
Aug 30 Javascript
详解weex默认webpack.config.js改造
Jan 08 Javascript
微信小程序登录换取token的教程
May 31 Javascript
浅谈angular表单提交中ng-submit的默认使用方法
Sep 30 Javascript
JavaScript 反射学习技巧
Oct 16 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中使用php5-ffmpeg撷取视频图片实例
2015/01/07 PHP
PHP判断网络文件是否存在的方法
2015/03/12 PHP
织梦sitemap地图实时推送给百度的教程
2015/08/03 PHP
PHP闭包定义与使用简单示例
2018/04/13 PHP
Laravel利用gulp如何构建前端资源详解
2018/06/03 PHP
jQuery 验证插件 Web前端设计模式(asp.net)
2010/10/17 Javascript
JS设置下拉列表框当前所选值的方法
2015/12/22 Javascript
AngularJS入门教程之Scope(作用域)
2016/07/27 Javascript
javascript九宫格图片随机打乱位置的实现方法
2017/03/15 Javascript
关于axios如何全局注册浅析
2018/01/14 Javascript
JS关于刷新页面的相关总结
2018/05/09 Javascript
JavaScript中变量、指针和引用功能与操作示例
2018/08/04 Javascript
vue中进行微博分享的实例讲解
2019/10/14 Javascript
python中正则表达式的使用详解
2014/10/17 Python
Python基于sftp及rsa密匙实现远程拷贝文件的方法
2016/09/21 Python
Python语言描述最大连续子序列和
2017/12/05 Python
python3 读取Excel表格中的数据
2018/10/16 Python
Python3+Appium实现多台移动设备操作的方法
2019/07/05 Python
详解Django配置优化方法
2019/11/18 Python
如何基于Python创建目录文件夹
2019/12/31 Python
使用jupyter Nodebook查看函数或方法的参数以及使用情况
2020/04/14 Python
使用Django的JsonResponse返回数据的实现
2021/01/15 Python
Urban Outfitters英国官网:美国平价服饰品牌
2016/11/25 全球购物
马来西亚时装购物网站:ZALORA马来西亚
2017/03/14 全球购物
到底Java是如何传递参数的?是by value或by reference?
2012/07/13 面试题
客户代表实习人员自我鉴定
2013/09/27 职场文书
读书活动总结
2014/04/28 职场文书
师德师风建设方案
2014/05/08 职场文书
地震捐款倡议书
2014/08/29 职场文书
工作疏忽检讨书500字
2014/10/26 职场文书
八达岭长城导游词
2015/01/30 职场文书
义卖募捐活动总结
2015/05/09 职场文书
2016特色励志班级口号
2015/12/24 职场文书
python设置 matplotlib 正确显示中文的四种方式
2021/05/10 Python
Vue实现动态查询规则生成组件
2021/05/27 Vue.js
Win11 21h2可以升级22h2吗?看看你的电脑符不符合要求
2022/07/07 数码科技