initMouseEvent参数

event.initMouseEvent(type, canBubble, cancelable, view,
detail, screenX, screenY, clientX, clientY,
ctrlKey, altKey, shiftKey, metaKey,
button, relatedTarget);
形参

  1. type
    设置事件类型type 的字符串,包含以下几种鼠标事件:click,mousedown,mouseup,mouseover,mousemove,mouseout。
  2. canBubble
    是否可以冒泡。取值集合见Event.bubbles。
  3. cancelable
    是否可以阻止事件默认行为。取值集合见Event.cancelable。
  4. view
    事件的AbstractView对象引用,这里其实指向window 对象。取值集合见 UIEvent.view。
  5. detail
    事件的鼠标点击数量。取值集合见Event.detail (en-US)。
  6. screenX
    事件的屏幕的x坐标。取值集合见MouseEvent.screenX。
  7. screenY
    事件的屏幕的y坐标。取值集合见MouseEvent.screenY。
  8. clientX
    事件的客户端x坐标。取值集合见MouseEvent.clientX。
  9. clientY
    事件的客户端y坐标。取值集合见MouseEvent.clientY。
  10. ctrlKey
    事件发生时 control 键是否被按下。取值集合见MouseEvent.ctrlKey。
  11. altKey
    事件发生时 alt 键是否被按下。取值集合见MouseEvent.altKey。
  12. shiftKey
    事件发生时 shift 键是否被按下。取值集合见MouseEvent.shiftKey。
  13. metaKey
    事件发生时 meta 键是否被按下。取值集合见MouseEvent.metaKey。
    14.button
    鼠标按键值 button。
  14. relatedTarget
    事件的相关对象。只在某些事件类型有用 (例如 mouseover ?和 mouseout)。其它的传null。

使用dispatchEvent分发事件

var evObj = document.createEvent(‘MouseEvents’);
evObj.initMouseEvent(‘mousedown’, true, true)
fireOnThis.dispatchEvent(evObj);
evObj.initMouseEvent(‘mousemove’, true, true, window, null, null, null, 261, null);
fireOnThis.dispatchEvent(evObj);
evObj.initMouseEvent(‘mouseup’, true, true)
fireOnThis.dispatchEvent(evObj);

标题

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><title>Document</title><style>* {padding: 0;margin: 0;}body {user-select: none;/*禁止用户选中*/}.wrap {width: 300px;height: 40px;background-color: #e8e8e8;margin: 100px auto;text-align: center;line-height: 40px;/*border-radius: 7px;*/position: relative;}.rect {position: relative;width: 300px;height: 100%;}.rec {position: absolute;top: 0;left: 0;width: 0;height: 100%;background: #00b894;}.silde {position: absolute;top: 0;left: 0;z-index: 11;box-sizing: border-box;width: 40px;height: 40px;background: #fff;border: 1px solid #ccc;}</style>
</head><body><div class='wrap'><div class='rec'><div class='rect'>滑块验证<div class='silde'><img src="https://img-blog.csdnimg.cn/img_convert/2c7b3630606c742c1a3a8925eca0efd7.png" alt=""></div></div></div></div><script>window.onload = function() {var fireOnThis = document.querySelector('.silde');var evObj = document.createEvent('MouseEvents');evObj.initMouseEvent('mousedown', true, true)fireOnThis.dispatchEvent(evObj);evObj.initMouseEvent('mousemove', true, true, window, null, null, null, 261, null);fireOnThis.dispatchEvent(evObj);evObj.initMouseEvent('mouseup', true, true)fireOnThis.dispatchEvent(evObj);}//获取事件var silde = document.querySelector('.silde');var rec = document.querySelector('.rec');var rect = document.querySelector('.rect');var img = document.querySelector('img');var minusX; //保存变化的 X坐标(全局变量)//注册事件silde.onmousedown = function(e) { //鼠标点击事件,点击之后执行函数,获得点击位置的X坐标var initX = e.clientX; //保存初始按下位置的 X坐标;console.log("down", e); //用以测试document.onmousemove = function(e) { //鼠标移动事件console.log("move", e)var moveX = e.clientX;// var minusX = moveX - initX;    //变化的坐标(要注意作用域的问题,在这里面定义变量,在这个函数之外的函数就没法使用,所以要将minusX变成全局变量)minusX = moveX - initX;//这里注意一下,获得的minusX只是一个差值,没有单位想让 滑块的位置改变还需要加上 单位px//这个时候滑块会跟随鼠标整个页面一行的跑,价格条件判段,限制 滑块移动的区域不可以超过边框,保持left<=0。if (minusX < 0) {// silde.style.left = '0';minusX = 0;}if (minusX > 260) { //判断最大值// silde.style.left = '251';// 这里面的距离用边框长度减去 滑块的长度 300-49minusX = 260;}silde.style.left = minusX + 'px';rec.style.width = minusX + 'px';if (minusX >= 260) {rect.style.color = 'white';img.src = 'https://img-blog.csdnimg.cn/img_convert/5f486ab64b48cb31df78ea4d7a9d7289.png';document.onmousemove = null;silde.onmousedown = null;// rect.innerHTML = '验证成功';}// console.log(222,e,minusX);    //用以测试}}document.onmouseup = function(e) { //鼠标抬起事件document.onmousemove = null; //不允许鼠标移动事件发生console.log("up", e);if (minusX < 260) { //如果没有到头img.src = 'https://img-blog.csdnimg.cn/img_convert/2c7b3630606c742c1a3a8925eca0efd7.png';silde.style.left = 0; //设置一个 left值rec.style.width = 0; //绿色背景层设置宽度}}</script>
</body></html>

运行效果

js模拟鼠标自动滑动滑块--dispatchEvent相关推荐

  1. Python 8行代码模拟鼠标自动删除微信收藏

    上回我们提到了用 pyuserinput 进行模拟键盘鼠标操作,结果发现很多同学都回复无法安装成功,即便安装成功了还是存在很多问题.确实,pyuserinput存在不少问题,包括其安装的pymouse ...

  2. 利用Python模拟鼠标自动完成MM32-LINK程序下载

    简 介: 编写了利用Python控制MM32-LINK自动下载程序,这可以减少在开发过程中的操作. MM32-LINK在打开程序过程中,对话框的标题出现错误,"Load form file& ...

  3. Js实现鼠标滚轮滑动监听

    在别人博客的基础上改写了一个js实现鼠标滚轮事件的监听: windowAddMouseWheel(); function windowAddMouseWheel() {var scrollFunc = ...

  4. Python 8行代码模拟鼠标自动删除微信收藏,Python帮你撩妹!

    上回我们提到了用 pyuserinput 进行模拟键盘鼠标操作,结果发现很多同学都回复无法安装成功,即便安装成功了还是存在很多问题.确实,pyuserinput存在不少问题,包括其安装的pymouse ...

  5. Js 模拟鼠标点击事件

    var obj = document.getElementById('go'); if(document.all){ obj.click(); }else{ var e = document.crea ...

  6. Qt QWebview调用JS,实现QQ邮箱自动填写输入框,模拟鼠标点击网页按钮!!

    Qt QWebview调用JS,实现QQ邮箱自动填写输入框,模拟鼠标点击网页按钮!! QWebview调用JS,自动填写用户名和密码,并且JS模拟鼠标点击网页按钮. 下载地址:https://down ...

  7. 手机控制电脑之手机端模拟鼠标滑动处理

    最近做了一个手机通过wifi控制电脑的小demo,其中进行鼠标移动控制的时候,出现了一些小bug,这里记录一下正确的移动方法,第一个方法也是最容易想到的,就是自己通过记忆上一次鼠标位置,计算距离偏差, ...

  8. webdriver鼠标上下滑动

    有时候我们需要对窗口显示的页面上下滑动,以显示当前正在处理的位置,这就需要用到webdriver模拟鼠标上下滑动 package test20161201;import org.openqa.sele ...

  9. 手机控制电脑之手机端模拟鼠标移动

    最近做了一个手机通过wifi控制电脑的小demo,其中进行鼠标移动控制的时候,出现了一些小bug,这里记录一下正确的移动方法,第一个方法也是最容易想到的,就是自己通过记忆上一次鼠标位置,计算距离偏差, ...

  10. 【办公类-13-01】20220703python模拟鼠标 删除“微信收藏“

    背景需求: 模仿CSDN上已有的"python模拟鼠标删除微信收藏"的进行可行性练习. 软件准备及设置: 1.确定坐标位置的软件下载 下载一个"看鼠标"的软件. ...

最新文章

  1. Asp.Net Core AsyncLocal 异步上下文
  2. **使用 Git Hook 实现网站的自动部署
  3. 第二讲:第一个Python程序(干货)
  4. jvm(6)-Class字节码文件结构总结
  5. 给你的执行力马上充值
  6. 看ExtJs API文档的阅读方法
  7. VS Code 设置好看的字体:Operator Mono
  8. 用友t3显示无法解析服务器名称,用友T3软件进入用友通提示不能解析端口,不能登录服务器...
  9. 《运营之光》-- 学习笔记(二)
  10. 如果计算机原理程序设计,计算机组成原理程序设计.doc
  11. 兰州市智能交通实现智慧城市 智能化立体车库有效缓解停车难
  12. 基于STM32设计的智能插座+人体感应灯(ESP8266+人体感应+手机APP)
  13. PyCharm中的Debug使用
  14. java计算机毕业设计宠物店管理系统源码+数据库+系统+lw文档+部署
  15. 微星显卡拷机测试软件,显卡稳定性测试必备 微星Kombustor工具
  16. 长沙动环监控系统主要监测哪些指标呢?
  17. WordPress 前端投稿/编辑发表文章插件 DJD Site Post(支持游客和已注册用户)汉化版 免费下载...
  18. 《REWORK》启示录一夜成名只是传说——创业一步步来
  19. 毕业三周年,又一个离别季
  20. 观点丨如何让劳动价值像资本一样自由流动与交易

热门文章

  1. 【eoeAndroid社区索引】android开发混淆
  2. 图片显示不出时显示默认图片
  3. Multisim入门
  4. 计算机类毕业设计源码大全
  5. 微信小程序中的列表渲染
  6. w10系统服务器连接错误代码,Win10升级失败常见问题及错误代码解决方法汇总
  7. java毕业设计房屋租赁管理系统Mybatis+系统+数据库+调试部署
  8. Maven之dependencyManagement
  9. java服务器向客户端发消息_socket 服务器向指定的客户端发消息
  10. 炸裂!跑P站上教微积分,年入170w...