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 相关文章推荐
一些不错的js函数ajax
Aug 20 Javascript
jQuery之end()和pushStack()使用介绍
Feb 07 Javascript
利用JS延迟加载百度分享代码,提高网页速度
Jul 01 Javascript
js图片延迟技术一般的思路与示例
Mar 20 Javascript
实现checkbox全选、反选、取消JavaScript小脚本异常
Apr 10 Javascript
jQuery Validate初步体验(二)
Dec 12 Javascript
自己动手制作基于jQuery的Web页面加载进度条插件
Jun 03 Javascript
Angular路由简单学习
Dec 26 Javascript
JS扩展String.prototype.format字符串拼接的功能
Mar 09 Javascript
Vue组件之极简的地址选择器的实现
May 31 Javascript
新手快速入门JavaScript装饰者模式与AOP
Jun 24 Javascript
如何实现小程序与小程序之间的跳转
Nov 04 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/05 新手入门
用PHP查询域名状态whois的类
2006/11/25 PHP
PHP callback函数使用方法和注意事项
2015/01/23 PHP
Laravel中使用自己编写类库的3种方法
2015/02/10 PHP
微信开发之获取JSAPI TICKET
2017/07/07 PHP
Laravel框架路由管理简单示例
2019/05/07 PHP
PHP number_format函数原理及实例解析
2020/07/14 PHP
jqPlot 基于jquery的画图插件
2011/04/26 Javascript
让AJAX不依赖后端接口实现方案
2012/12/03 Javascript
裁剪字符串trim()自定义改进版
2013/04/10 Javascript
jquery获取颜色在ie和ff下的区别示例介绍
2014/03/28 Javascript
防止登录页面出现在frame中js代码
2014/07/22 Javascript
扒一扒JavaScript 预解释
2015/01/28 Javascript
跟我学习javascript的闭包
2015/11/16 Javascript
使用jQuery的toggle()方法对HTML标签进行显示、隐藏的方法(示例)
2016/09/01 Javascript
Json按某个键的值进行排序
2016/12/22 Javascript
Vue Router去掉url中默认的锚点#
2018/08/01 Javascript
vue解决一个方法同时发送多个请求的问题
2018/09/25 Javascript
在vue项目中使用Jquery-contextmenu插件的步骤讲解
2019/01/27 jQuery
vue-router的钩子函数用法实例分析
2019/10/26 Javascript
js实现带搜索功能的下拉框
2020/01/11 Javascript
python实现TCP服务器端与客户端的方法详解
2015/04/30 Python
python二进制读写及特殊码同步实现详解
2019/10/11 Python
Python 将json序列化后的字符串转换成字典(推荐)
2020/01/06 Python
python enumerate内置函数用法总结
2020/01/07 Python
Python xlrd/xlwt 创建excel文件及常用操作
2020/09/24 Python
python中str内置函数用法总结
2020/12/27 Python
python利用后缀表达式实现计算器功能
2021/02/22 Python
公司董事长职责
2013/12/12 职场文书
大学中国梦演讲稿
2014/04/23 职场文书
建筑工地门卫岗位职责
2014/04/30 职场文书
2015年幼儿园新年寄语
2014/12/08 职场文书
2015年重阳节活动主持词
2015/07/30 职场文书
干货!开幕词的写作方法
2019/04/02 职场文书
高性能跳频抗干扰宽带自组网电台
2022/02/18 无线电
Redis高并发缓存架构性能优化
2022/05/15 Redis