先看效果图

代码如下

<!DOCTYPE html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>原生JS实现拖拽垂直进度条</title><style>.luminancedrag {position: absolute;top: 170px;right: 1200px;width: 10px;height: 200px;background-color: #2979fe;border-radius: 12px;}.luminancedrag .dot {display: flex;position: absolute;bottom: 0;right: 0;width: 12px;height: 10px;background-color: #000;border-radius: 50%;}.luminancedrag .data {position: absolute;top: -30px;right: 0;}.luminancedrag .already {background-color: pink;height: 100%;border-radius: 12px;}</style></head><body><div class="luminancedrag" id="bar" :style=""><div id="proceed" class="already"></div><div class="dot" id="proDot"></div><div class="data" id="data">0</div></div><script>window.onload = function () {var bar = document.getElementById('bar');var proDot = document.getElementById('proDot');var disY = ''// var proceed = document.getElementById('proceed');//鼠标按下事件proDot.onmousedown = function (ev) {var myEvent = ev || event;// 计算鼠标相对滑块上的位置if (!disY) {disY = myEvent.clientY;//鼠标距离窗口位置}//鼠标移动事件document.onmousemove = function (ev) {var myEvent = ev || event;console.log('myEvent', myEvent);console.log(ev, event);// 计算滑块的动态bottom值var l = disY - myEvent.clientY;// 限制拖拽范围if (l < 0) {l = 0;} else if (l > bar.offsetHeight - proDot.offsetHeight) {l = bar.offsetHeight - proDot.offsetHeight;};proDot.style.bottom = l + 'px';let proceedHeight = bar.offsetHeight - l$("#proceed").css("height", proceedHeight + "px");var petcent = Math.floor((1 - proceedHeight / bar.offsetHeight) * 100)      //95等分var dataValue = Math.floor(petcent * (65535 / 95))          //65535分95等分再乘百分比得出总数$('#data').text(dataValue)console.log(dataValue);// 计算拖拽移动距离与可拖动总范围的比例var scale = l / (bar.offsetHeight - proDot.offsetHeight);};//鼠标弹起事件document.onmouseup = function () {document.onmousemove = null;// document.onmouseup = null;console.log(document.onmousemove);};};};</script></body>
<script src="./common/js/jquery.js"></script></html>

原生JS实现拖拽垂直进度条相关推荐

  1. 原生JS实现拖拽进度条、滚动鼠标显示相应的内容

    今天要分享的是运用原生JS实现拖拽进度条.滚动鼠标显示相应的内容,实现效果如下: 以下是代码实现,欢迎大家复制粘贴. <!DOCTYPE html> <html><hea ...

  2. java圆形进度条_可拖拽圆形进度条组件(支持移动端)

    好久之前写过一个可拖拽圆形进度条的dome,中间有网友反馈过一些问题,最近比较闲有时间修改了一些问题也做了一些优化,并封装成组件,基于canvas实现,只需传入放置组件dom容器,任何框架均可直接使用 ...

  3. html5 原生拖拽,原生JS实现拖拽效果

    这篇文章主要为大家详细介绍了原生JS实现拖拽效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 本文实例为大家分享了JS实现拖拽效果的具体代码,供大家参考,具体内容如下 ...

  4. 原生js实现拖拽上传文件

    原生js实现拖拽上传文件 <!DOCTYPE html> <html lang="en"><head><meta charset=&quo ...

  5. 原生JS实现拖拽翻书特效

    给大家分享一个用原生JS实现的拖拽翻书效果图,效果如下: 效果还不错吧,当然还需要两个图片. 1.书本封面. 2.书页 实现代码如下,欢迎大家复制粘贴. <!DOCTYPE html> & ...

  6. javascript,H5,jQuery,css“实现音乐歌词解析,歌词同步滚动,进度条拖拽、进度条同步,音量控制,歌词同步高亮的功能齐全的简易音乐播放器

    用js和HTML实现一个带歌词同步,以及进度条拖拽,音量控制的简单音乐播放器. 这个音乐播放器,可以实现歌词的滚动,进度条拖拽,音乐播放进度,音量控制等功能.,资源全为网上资源,直接复制代码,便能看到 ...

  7. 原生js实现拖拽与缩放等包含js设置样式与五子棋等

    最近写五子棋,写着写着,写了几个js特效,感觉还行,发出来分享一下.具体还在调试,如果有alert弹窗部分,大家自己找一下取消掉.我记得缩放的四个边角红色背景色没有去掉,嫌碍事的可以把"ba ...

  8. 原生js实现拖拽功能

    一.写在前面 如果我们想要实现拖拽的功能,必须要知道三个事件: 1.onmousedown:鼠标按下事件 2.onmousemove:鼠标移动事件 3.onmouseup:鼠标抬起事件 二.实现思路 ...

  9. 原生JS的拖拽属性draggable(详解)

    摘要 作为h5新增的属性draggable,它能够给与一切的html元素拖动的效果.而在这个属性之下,也有着关于拖动效果的各个方法. 而这一篇文章,主要就是说一下关于draggable属性的使用以及工 ...

最新文章

  1. 【Java】多线程编程(并发编程)基础(上)
  2. 神经元之间是如何形成“社交网络”的
  3. 数字经济时代下老年群体手机APP软件网络推广适老化需求日益明显
  4. serialVersionUIDtransient
  5. ElasticSearch 知识点整理(入门)
  6. linux内核压缩制作bzImage
  7. Mysql5.6.x版本半同步主从复制的开启方法
  8. Error: Cannot find module
  9. 正确设置Android Support Library
  10. 运行文件服务器,服务器的运行目录文件
  11. 第二季-专题9--代码搬移不可少
  12. xposed框架修改手机串号教程_xposed 入门之修改手机 IMEI
  13. 【安装版】mysql数据库安装指南(超级详细)
  14. 在Linux下进入目录,目录下创建、修改、删除文件所需权限
  15. Matlab_求最大特征值和特征向量
  16. 图层蒙版和图层剪贴路径_PS图层蒙版与剪贴蒙版综合应用——水杯里的树
  17. 从0到1:朋友圈爆款背后的计算机视觉技术与应用 | 百万人学AI
  18. BZOJ5011 [Jx2017]颜色(洛谷P4065)
  19. 中国通信简史 (下)
  20. 1.1机器学习和深度学习综述(百度架构师手把手带你零基础实践深度学习原版笔记系列)

热门文章

  1. Linux 限制通过SSH登录
  2. 阿里巴巴离职DBA职业生涯总结[转]
  3. html在服务器里怎么打开方式,html代码怎么在服务器里头执行?求高手解!
  4. 微信支付的简单使用以及前端的显示
  5. kettle mysql 分页_kettle循环分页导入数据
  6. leyou商城day15 已登录购物车
  7. 英语听力网站,很难找的(赶紧收藏一下)
  8. ps切图(1)——界面设置
  9. CSS冷门属性 mix-blend-mode 制作文字镂空效果
  10. c++实现贪吃蛇详解(附代码)