JavaScript实现水平进度条拖拽效果
<html> <head> <meta charset="UTF-8"> <title>Document</title> <style> *{ margin: 0; padding: 0; } .scroll{ margin:100px; width: 500px; height: 5px; background: #ccc; position: relative; } .bar{ width: 10px; height: 20px; background: #369; position: absolute; top: -7px; left: 0; cursor: pointer; } .mask{ position: absolute; left: 0; top: 0; background: #369; width: 0; height: 5px; } </style> </head> <body> <div class="scroll" id="scroll"> <div class="bar" id="bar"> </div> <div class="mask" id="mask"></div> </div> <p></p> <script> var scroll = document.getElementById('scroll'); var bar = document.getElementById('bar'); var mask = document.getElementById('mask'); var ptxt = document.getElementsByTagName('p')[0]; var barleft = 0; bar.onmousedown = function(event){ var event = event || window.event; var leftVal = event.clientX - this.offsetLeft; var that = this; // 拖动一定写到 down 里面才可以 document.onmousemove = function(event){ var event = event || window.event; barleft = event.clientX - leftVal; if(barleft < 0) barleft = 0; else if(barleft > scroll.offsetWidth - bar.offsetWidth) barleft = scroll.offsetWidth - bar.offsetWidth; mask.style.width = barleft +'px' ; that.style.left = barleft + "px"; ptxt.innerHTML = "已经走了" + parseInt(barleft/(scroll.offsetWidth-bar.offsetWidth) * 100) + "%"; //防止选择内容--当拖动鼠标过快时候,弹起鼠标,bar也会移动,修复bug window.getSelection ? window.getSelection().removeAllRanges() : document.selection.empty(); } } document.onmouseup = function(){ document.onmousemove = null; //弹起鼠标不做任何操作 } </script> </body> </html>
效果:
原文:http://www.jb51.net/article/103461.htm
分类:
js交互
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现