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 滚动效果相关资源汇总
以上就是本文的全部内容,希望这些代码能对各位的学习有所帮助,同时也欢迎大家继续支持本站。
作者最新文章
JS语法错误会阻止加载吗?区分SyntaxError与资源加载失败
2026-11-05 16:08:46
JavaScript常见SyntaxError语法错误排查与修复方法
2026-11-05 13:58:44
JS中slice、substring和substr截取字符串的区别
2026-11-05 13:43:47
JS 转 TS 手动迁移最佳实践:从配置 tsconfig 到消除 any 类型
2026-11-05 11:53:32
为什么JS数组push后得到的是数字而不是数组?
2026-11-05 09:59:18
