js实现滑动进度条效果
作者:#麻辣小龙虾# 发布时间:2023-08-24 03:47:39
标签:js,滑动,进度条
本文实例为大家分享了js实现滑动进度条效果的具体代码,供大家参考,具体内容如下
进度条:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>js滑动进度条效果</title>
<style>
*{margin:0;padding:0;user-select:none;}
.progress-bar{position:relative;height:10px;width:400px;margin:200px auto;background:#ebeef5;border-radius:10px;}
.progress-bar .pro-bar{position:absolute;left:0;height:10px;width:10px;background:#409eff;}
.progress-bar .min-num{position:absolute;left:-20px;top:-5px;}
.progress-bar .max-num{position:absolute;right:-40px;top:-5px;}
.progress-bar .block {position:absolute;height:30px;width:10px;background:#ccc;top:-10px;border-radius:10px;}
.progress-bar .block div{position:absolute;display:none;left:-20px;top:-45px;width:50px;height:30px;text-align:center;line-height:30px;background:#ccc;border-radius:20px;}
.progress-bar .block:hover div{display:block;font-size:10%;color:#fff;background:#409eff;}
</style>
</head>
<body>
<div class="progress-bar">
<span class="min-num">0</span>
<span class="max-num">100</span>
<div class="pro-bar"></div>
<div class="block">
<div>0</div>
</div>
</div>
</body>
<script>
(function(){
let moveBlock = document.querySelector('.block');
let proBar = document.querySelector('.pro-bar');
let flag = false;
let startX = null;
let moveMax = (400 - 10); // 背景条宽度减去滑块的宽度
moveBlock.onmousedown = function(e){
startX = e.pageX;
moveBlock.style.left ? moveBlock.style.left : moveBlock.style.left = '0px';
let startLeft = parseInt(moveBlock.style.left);
document.onmousemove = function(e){
let moveX = (e.pageX - startX) > 0 ? true : false;
let moveSection = startLeft + (e.pageX - startX);
// 限定移动范围
if (moveSection >= 0 && moveSection <= moveMax) {
let percent = ((startLeft + (e.pageX - startX)) / moveMax).toFixed(4) * 100;
percent.toString().length > 5 ? percent = percent.toString().subStr(0, 5) : percent = percent.toString();
moveBlock.style.left = startLeft + (e.pageX - startX) + 'px';
proBar.style.width = moveBlock.style.left;
moveBlock.querySelector('div').innerText = percent + '%';
}
};
};
// 鼠标松开移除事件
moveBlock.onmouseup = function(){
document.onmousemove = null;
};
})();
</script>
</html>
来源:https://blog.csdn.net/CodingNoob/article/details/102522168


猜你喜欢
- 摘要:主要介绍一些python的文件读取功能,文件内容修改,文件名后缀更改等操作。批处理文件功能import ospath1 = '
- 本文实例讲述了Python 静态方法和类方法。分享给大家供大家参考,具体如下:1. 类属性、实例属性它们在定义和使用中有所区别,而最本质的区
- 什么是迭代器能被 next 指针调用,并不断返回下一个值的对象,叫做迭代器。表示为Iterator,迭代器是一个对象类型数据。概念迭代器指的
- 概述不知从何时起,Python和爬虫就如初恋一般,情不知所起,一往而深,相信很多朋友学习Python,都是从爬虫开始,其实究其原因,不外两方
- 讲起学生成绩管理系统,从大一C语言的课程设计开始,到大二的C++课程设计都是这个题,最近在学树莓派,好像树莓派常用Python编程,于是学了
- 一、获取安装包:Pycharm 官网 下载页面 :点击打开Anconda 官网 下载页面 :点击打开选择对应的系统和需要的版本进行下载,py
- 一、AnacondaAnaconda(水蟒)是一个捆绑了Python、conda、其他相关依赖包的一个软件。包含了180多个可学计算包及其依
- 前言针对一些特殊的需求,在项目里,需要将响应式数据变为普通原始类型数据,这种情况是有的在Vue里,能够将普通数据类型的数据变为响应式数据,同
- 一、并发访问控制实现的并发访问的控制技术是基于锁;锁分为表级锁和行级锁,MyISAM存储引擎不支持行级锁;InnoDB支持表级锁和行级锁;锁
- tensorflow在保存权重模型时多使用tf.train.Saver().save 函数进行权重保存,保存的ckpt文件无法直接打开,不利
- 前言从前面已经知道, 一个 request 的到来和一个对应 response 的返回的流程, 数据处理和数据库离不开. 我们也经常在 vi
- --查看指定表的外键约束 select * from sysobjects where parent_obj in( select id f
- 方式1.打开Windows的cmd,在cmd中输入jupyter notebook --generate-config如下图:
- OK,今天我们来学习一下 python 中的日志模块,日志模块也是我们日后的开发工作中使用率很高的模块之一,接下来们就看一看今天具体要学习日
- python的开发工具有很多种,各有特点,本人一直使用的是pycharm,所以本篇内容仅限pycharm。1,设置python文件头模板当我
- 关于正则表达式raw的\匹配规则这是我在学习中获得到的一个例子,第一表达式中匹配到的是none。于是乎我就在思考,为什么会匹配不到,假设\t
- 对于初学者来说,一份详尽又清晰明白的指南很重要。今天,猫猫跟大家一起,好好学习Python文件读写的内容,这部分内容特别常用,掌握后对工作和
- 如下所示:#coding=utf-8#布局自定义尺寸from tkinter import *class App:def __init__(
- 这是一条颠覆常规的插入方法,一条INSERT语句可以完成向多张表的插入任务。小小地展示一下这种插入方法。1.创建表T并初始化测试数据,此表作
- <%@ Language=VBScript %><%Option Explicit %><%Dim strUR