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 ui实现动感的圆角渐变网站导航菜单效果代码
Aug 26 Javascript
JQuery实现级联下拉框效果实例讲解
Sep 17 Javascript
JavaScript实现简洁的俄罗斯方块完整实例
Mar 01 Javascript
微信小程序 框架详解及实例应用
Sep 26 Javascript
JavaScript实现星级评分
Jan 12 Javascript
浅谈pc端rem字体设置的问题
Aug 03 Javascript
Angular17之Angular自定义指令详解
Jan 21 Javascript
jQuery时间戳和日期相互转换操作示例
Dec 07 jQuery
JS中封装axios来管控api的2种方式
Sep 11 Javascript
element-ui 实现响应式导航栏的示例代码
May 08 Javascript
vue-axios同时请求多个接口 等所有接口全部加载完成再处理操作
Nov 09 Javascript
浅析VUE防抖与节流
Nov 24 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
Zend的Registry机制的使用说明
2013/05/02 PHP
php函数指定默认值方法的小例子
2013/12/04 PHP
javascript实现动态增加删除表格行(兼容IE/FF)
2007/04/02 Javascript
让 JavaScript 轻松支持函数重载 (Part 2 - 实现)
2009/08/04 Javascript
改变javascript函数内部this指针指向的三种方法
2010/04/23 Javascript
javascript window.confirm确认 取消对话框实现代码小结
2012/10/21 Javascript
js调用后台servlet方法实例
2013/06/09 Javascript
jquery easyui 结合jsp简单展现table数据示例
2014/04/18 Javascript
Javascript实现单张图片浏览
2014/12/18 Javascript
js window对象属性和方法相关资料整理
2015/11/11 Javascript
jQuery实现新闻播报滚动及淡入淡出效果示例
2018/03/23 jQuery
react-native 圆弧拖动进度条实现的示例代码
2018/04/12 Javascript
ES6基础之字符串和函数的拓展详解
2019/08/22 Javascript
layui点击弹框页面 表单请求的方法
2019/09/21 Javascript
Layui数据表格判断编辑输入的值,是否为我需要的类型详解
2019/10/26 Javascript
js实现鼠标拖拽div左右滑动
2020/01/15 Javascript
JavaScript实现Tab选项卡切换
2020/02/13 Javascript
vue数据响应式原理知识点总结
2020/02/16 Javascript
vue点击Dashboard不同内容 跳转到同一表格的实例
2020/11/13 Javascript
python中查看变量内存地址的方法
2015/05/05 Python
TensorFlow 模型载入方法汇总(小结)
2018/06/19 Python
Python实现获取本地及远程图片大小的方法示例
2018/07/21 Python
利用python GDAL库读写geotiff格式的遥感影像方法
2018/11/29 Python
解决Django中调用keras的模型出现的问题
2019/08/07 Python
python 对任意数据和曲线进行拟合并求出函数表达式的三种解决方案
2020/02/18 Python
python上selenium的弹框操作实现
2020/07/13 Python
基于Modernizr 让网站进行优雅降级的分析
2013/04/21 HTML / CSS
您的健身减肥和健康饮食专家:vitafy
2017/06/06 全球购物
Java如何读取CLOB字段
2013/10/10 面试题
和解协议书
2014/04/16 职场文书
社会实践评语
2014/04/28 职场文书
解除同居协议书
2015/01/29 职场文书
夫妻吵架保证书
2015/05/08 职场文书
MySQL 查询速度慢的原因
2021/05/25 MySQL
Pyhton爬虫知识之正则表达式详解
2022/04/01 Python
Python 第三方库 openpyxl 的安装过程
2022/12/24 Python