JavaScript 实现自定义滚动条的完整代码示例

作者:小括号时间:2026-10-23 16:32:32浏览:166

本文分享了一段使用 JavaScript 实现自定义滚动条的具体代码。通过 CSS 设置容器与滑块样式,利用 JS 监听鼠标事件计算位置,实现可拖动的圆形滑块效果。代码包含 HTML 结构、CSS 样式及核心交互逻辑,适合前端开发者参考学习。

JavaScript 实现自定义滚动条

本文提供了使用 JavaScript 实现自定义滚动条功能的完整代码示例,供读者参考学习。


<head>
 <meta charset="UTF-8">
 <title></title>
 <style type="text/css">
 #all{
 width: 500px;
 height: 50px;
 background-color: sandybrown;
 border-radius: 25px;
 margin: 0 auto;
 position: relative;
 }
 #div1{
 width: 50px;
 height: 50px;
 border-radius: 50%;
 background-color: rosybrown;
 position: absolute;
 } 
 #box{
 background-color: yellow;
 position: absolute;
 top: 200px;
 left: 200px;
 }
 </style>
</head>
<body>
 <div id="all">
 <div id="div1"></div>
 </div>
 <div id="box"></div>
 <script type="text/javascript">
 var oAll = document.getElementById("all");
 var oDiv1 = document.getElementById("div1");
 var oBox = document.getElementById("box");
 var maxL = oAll.clientWidth - oDiv1.offsetWidth;
 oDiv1.onmousedown = function(){
 var ev = ev || window.event;
 var lessX = ev.clientX - oDiv1.offsetLeft; 
 
 document.onmousemove = function(){
 var ev = ev || window.event;
 var posL = ev.clientX - lessX;
 if(posL<0){
 posL = 0;
 }
 if(posL>maxL){
 posL = maxL;
 }
 oDiv1.style.left = posL + "px";
 //滚动条移动的百分比
 //oDiv1.offsetLeft/maxL
 var per = posL/maxL;
 //定义宽0~300
 oBox.style.width = 300*per+"px";
 oBox.style.height = 300*per+"px";
 oBox.style.marginTop = -oBox.offsetHeight/2+"px";
 oBox.style.marginLeft = -oBox.offsetWidth/2+"px";
 }
 }
 
 document.onmouseup =function(){
 document.onmousemove = null;
 
 }
 
 </script>
</body>

如需了解更多关于滚动效果的实现技巧,可点击下方专题链接查看更多相关文章。

JavaScript 滚动效果相关资源汇总

jQuery 滚动效果相关资源汇总

以上就是本文的全部内容,希望这些代码能对各位的学习有所帮助,同时也欢迎大家继续支持本站。

作者最新文章