2023年6月20日发(作者:)
html⾃定义拖动进度条,包含样式和事件⾃定义可拖动的进度条,如下图效果:代码分三部分html
css#demo {
width: 600px; height: 100px; margin: 100px auto;
display: flex; align-items: center;
}#demo .progress {
width: 100%; height: 6px; border-radius: 3px;
background: #F1F5FD;
}#demo .progress .progress-bar {
width: 40%; height: 100%; border-radius: 3px;
background: #0072FF;
}#demo .progress .progress-bar .progress-thumb {
width: 14px; height: 14px; border-radius: 50%;
background: #FFFFFF; box-shadow: 0 0 15px 5px #0072FF;
float: right;
position: relative; left: 7px; top: -5px;
}
到这步就基本实现了⾃定义的样式,只需改变 .progress-bar 的 width 就能显⽰不同的进度;接下来给进度条加上拖动事件
JavaScript
关于本篇随笔,作者的考虑:1. 将 mousedown 事件绑定在进度条的包裹层⽽⾮进度条本⾝,这是参考了主流视频播放器的效果后的设计,为了优化⽤户体验2. js ⽤纯原⽣语法书写,如果⽤ JQuery 可以简化选择器和 css 样式的获取3. ⿏标在滚动条外的移动,本⽂使⽤ clientX 来计算
2023年6月20日发(作者:)
html⾃定义拖动进度条,包含样式和事件⾃定义可拖动的进度条,如下图效果:代码分三部分html
css#demo {
width: 600px; height: 100px; margin: 100px auto;
display: flex; align-items: center;
}#demo .progress {
width: 100%; height: 6px; border-radius: 3px;
background: #F1F5FD;
}#demo .progress .progress-bar {
width: 40%; height: 100%; border-radius: 3px;
background: #0072FF;
}#demo .progress .progress-bar .progress-thumb {
width: 14px; height: 14px; border-radius: 50%;
background: #FFFFFF; box-shadow: 0 0 15px 5px #0072FF;
float: right;
position: relative; left: 7px; top: -5px;
}
到这步就基本实现了⾃定义的样式,只需改变 .progress-bar 的 width 就能显⽰不同的进度;接下来给进度条加上拖动事件
JavaScript
关于本篇随笔,作者的考虑:1. 将 mousedown 事件绑定在进度条的包裹层⽽⾮进度条本⾝,这是参考了主流视频播放器的效果后的设计,为了优化⽤户体验2. js ⽤纯原⽣语法书写,如果⽤ JQuery 可以简化选择器和 css 样式的获取3. ⿏标在滚动条外的移动,本⽂使⽤ clientX 来计算
发布评论