JS自定义滚动条效果简单实现代码

发布时间 - 2026-01-11 02:17:19    点击率:

本文实例为大家分享了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>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# js  # 滚动条  # javaScript实现滚动条事件详解  # 原生JS实现自定义滚动条效果  # JavaScript限定范围拖拽及自定义滚动条应用(3)  # js滚动条平滑移动示例代码  # 学习使用jquery iScroll.js移动端滚动条插件  # js/jquery获取浏览器窗口可视区域高度和宽度以及滚动条高度实现代码  # 判断滚动条到底部的JS代码  # JS实现判断滚动条滚到页面底部并执行事件的方法  # js操作滚动条事件实例  # javascript实现自定义滚动条效果  # 米兰  # 意大利  # 亚洲  # 地标  # 南京  # 我是  # 斯特  # 此项  # 将由  # 之都  # 中国  # 之父  # 棵树  # 报道称  # 二氧化  # 自定义  # 大家分享  # 具体内容  # 大家多多 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel如何构建RESTful API_Laravel标准化API接口开发指南  如何用腾讯建站主机快速创建免费网站?  香港服务器如何优化才能显著提升网站加载速度?  为什么要用作用域操作符_php中访问类常量与静态属性的优势【解答】  广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?  小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?  如何在建站之星网店版论坛获取技术支持?  微信小程序 input输入框控件详解及实例(多种示例)  网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?  长沙做网站要多少钱,长沙国安网络怎么样?  Laravel怎么实现观察者模式Observer_Laravel模型事件监听与解耦开发【指南】  如何利用DOS批处理实现定时关机操作详解  Laravel怎么创建控制器Controller_Laravel路由绑定与控制器逻辑编写【指南】  实现点击下箭头变上箭头来回切换的两种方法【推荐】  JavaScript如何操作视频_媒体API怎么控制播放  Laravel项目如何进行性能优化_Laravel应用性能分析与优化技巧大全  厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?  今日头条AI怎样推荐抢票工具_今日头条AI抢票工具推荐算法与筛选【技巧】  如何为不同团队 ID 动态生成多个“认领值班”按钮  linux top下的 minerd 木马清除方法  Laravel怎么自定义错误页面_Laravel修改404和500页面模板  网站图片在线制作软件,怎么在图片上做链接?  音乐网站服务器如何优化API响应速度?  如何基于PHP生成高效IDC网络公司建站源码?  弹幕视频网站制作教程下载,弹幕视频网站是什么意思?  Laravel怎么实现验证码(Captcha)功能  北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?  如何在自有机房高效搭建专业网站?  Laravel模型关联查询教程_Laravel Eloquent一对多关联写法  JavaScript如何实现音频处理_Web Audio API如何工作?  三星、SK海力士获美批准:可向中国出口芯片制造设备  谷歌Google入口永久地址_Google搜索引擎官网首页永久入口  php8.4header发送头信息失败怎么办_php8.4header函数问题解决【解答】  Laravel怎么使用Collection集合方法_Laravel数组操作高级函数pluck与map【手册】  Laravel如何配置和使用缓存?(Redis代码示例)  php485函数参数是什么意思_php485各参数详细说明【介绍】  android nfc常用标签读取总结  Laravel怎么写单元测试_PHPUnit在Laravel项目中的基础测试入门  微信小程序 canvas开发实例及注意事项  Laravel怎么发送邮件_Laravel Mail类SMTP配置教程  1688铺货到淘宝怎么操作 1688一键铺货到自己店铺详细步骤  西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?  Laravel用户认证怎么做_Laravel Breeze脚手架快速实现登录注册功能  如何在IIS管理器中快速创建并配置网站?  Laravel如何集成第三方登录_Laravel Socialite实现微信QQ微博登录  打开php文件提示内存不足_怎么调整php内存限制【解决方案】  Laravel软删除怎么实现_Laravel Eloquent SoftDeletes功能使用教程  如何在Windows虚拟主机上快速搭建网站?  JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)  Laravel如何安装使用Debugbar工具栏_Laravel性能调试与SQL监控插件【步骤】