javascript: 自定义鼠标拖动的滑块slider(chrome 105.0.5195.125)
JavaScriptChrome 自定义 鼠标 拖动 滑块 slider
2023-09-14 08:59:32 时间
一,js代码
<html> <head> <meta charset="utf-8"/> <title>测试</title> </head> <body onmousemove="divmousemoving()" onMouseUp="divmouseup()"> <div style="margin: auto;position: absolute;top: 100px;left: 50%;transform: translateX( -50% );"> <div style="width:700px;height:50px;background: #ffff00;position: relative;" > <!--可以拖动的按钮 begin--> <div id="btn" style="width:50px;height:50px;border-radius: 25px;background: #ff0000;position: absolute;left:-25px;"
onmousedown="divmousedown()"></div> <!--可以拖动的按钮 end--> </div> </div> <script> //拖动开始时的位置x,y var x = 0; var y = 0; //拖动开始时的偏移量 var l = 0; var t = 0; //当前鼠标是否按下 var isDown = false; //开始拖动 function divmousedown(){ if (isDown == true) { return false; } var e = window.event || arguments.callee.caller.arguments[0]; //获取x坐标和y坐标 x = e.clientX; y = e.clientY; //获取左部和顶部的偏移量 l = document.getElementById('btn').offsetLeft; t = document.getElementById('btn').offsetTop; //设置鼠标状态为按下 isDown = true; } //移动 function divmousemoving(){ if (isDown == false) { return; } var e = window.event || arguments.callee.caller.arguments[0]; //得到当前滑动到的位置 var nx = e.clientX; var ny = e.clientY; //计算移动后的左偏移量和顶部的偏移量 var nl = nx - (x - l); var nt = ny - (y - t); //按钮不超出范围 if (nl < -25) { nl = -25; } if (nl > 675) { nl = 675; } console.log("nl:"+nl); document.getElementById('btn').style.left = nl + 'px'; //document.getElementById('btn').style.top = nt + 'px'; } //鼠标松开 function divmouseup(){ console.log("------------------停下来了"); isDown = false; let position = parseInt(document.getElementById('btn').style.left); console.log("position:"+position); } </script> </body> </html>
说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/architectforest
对应的源码可以访问这里获取: https://github.com/liuhongdi/
或: https://gitee.com/liuhongdi
说明:作者:刘宏缔 邮箱: 371125307@qq.com
二,测试效果
三,查看chrome的版本:
相关文章
- JavaScript进行WebSocket字节流通讯示例
- JavaScript循环读书笔记
- Android中WebView如何加载JavaScript脚本
- JavaScript经典代码【二】【javascript判断用户点了鼠标左键还是右键】
- [Functional Programming] Draw Items from One JavaScript Array to Another using a Pair ADT
- [Javascript] Convert a Callback-Based JavaScript Function to a Promise-Based One
- [Javascript] Drawing Paths - Lines and Rectangles
- JavaScript 触发click事件 兼容FireFox,IE 和 Chrome
- [Jest] Restore the Original Implementation of a Mocked JavaScript Function with jest.spyOn
- [Javascript] Use requestIdleCallback to schedule JavaScript tasks at an optimal time
- [Javascript] Use a Pure RNG with the State ADT to Select an Element from State
- [Javascript] Link to Other Objects through the JavaScript Prototype Chain
- 详述JavaScript实现继承的几种方式
- javascript:得到变量类型的方法(chrome 105.0.5195.125)
- javascript:每次只加载3个页面的幻灯(chrome 105.0.5195.125)
- javascript: 复制对象时的深拷贝及浅拷贝(chrome 105.0.5195.125)
- Javascript 学习 笔记五
- 169. 使用 Chrome 开发者工具分析 SAP UI5 应用的 JavaScript 代码执行性能瓶颈
- 使用Chrome开发者工具研究JavaScript里函数的原生实现
- Javascript中的几种继承方式比较
- javascript案例17——留言发布、简易发布留言案例
- javascript案例14——判断奇偶数
- JavaScript实现按键快速获取输入框光标
- 【华为OD机试 2023】 过滤组合字符串(C++ Java JavaScript Python)
- 请写出一段JavaScript代码,要求页面有一个按钮,点击按钮弹出确认框。程序可以判断出用