body> <script type="text/javascript"> let qq= document.querySelector("div"); //移入事件 qq.onmouseenter=function() { console.log("移入事件"); } //移除事件 qq.onmouseleave =function() { console.log("移出事件"); } qq.onmousemove=function() { console.log ("移动事件"); } </script> </body> </html>
/jquery-1.10.1.min.js"></script> </head> <body> <script> /* mouseover/mouseout事件 , 子元素被移入移出也会触发父元素的事件 */ $(function() { /* $(".father").mouseover( function () { console.log("father被移入了"); }); $(".father").mouseout (function () { console.log("father被移出了"); }); */ /* mouseenter/mouseleave事件, 子元素被移入移出不会触发父元素的事件 推荐大家使用 */
腾讯云精选爆款云服务器限时体验20元起,云数据库19.9元/年起,还有更多热门云产品满足您的上云需求
一、知识要点 1、匿名函数 2、鼠标事件 3、document.getElementById() 4、window.onload 5、行间事件提取 二、源码参考 <!
今天给大家分享一个简单的JavaScript事件案例: 该事件属于悬浮事件 改代码逻辑非常简单,主要是 当鼠标移动到按钮上显示一个盒子,移开之后盒子隐藏 JavaScript事件中 onmouseover 代表的是鼠标指针移动到指定的对象上时发生某个动作; onmouseout 代表的是鼠标指针移出该指定的对象上时发生某个动作; xxxx.style 代表一个单独的样式声明 display xml:lang="en"> <head> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <title>鼠标移入移出显示或隐藏的悬浮事件 background:#ccc; border:1px solid #000; display:none; } </style> </head> <body> <button id="btn">移动鼠标到按钮会有盒子显示或隐藏 .获取标签元素 var oBtn=document.getElementById('btn'); var oBox=document.getElementById('box'); //2.书写事件
最近在学习JavaWeb时,有用到鼠标移动事件,所以今天在这里记录一个相关的案例,同时也是对相关知识的一个巩固,效果为在鼠标移动到表格对应行列时,该行列的背景颜色发生变化。 效果如下: ? 事件触发后,才会触发onmouseover事件。 在按钮上:onmousemove和onmouseover都不区分鼠标按钮 在动作上:onmouseover是在鼠标刚移入区域的时候触发,onmousemove是除了鼠标移入区域时触发外,鼠标在区域内移动同样也会触发事件 两者区别:当鼠标移过当前对象区域时就产生了onmouseover事件,所以onmouseover事件有个移入移出的过程,当鼠标在当前对象区域上移动时就产生了onmousemove事件,只要是在对象上移动而且没有移出对象的 onmouseout事件则是在鼠标移出对象区域时触发。
一、移动端三大事件 1、手指按下 ontouchstart 2、手指触摸 ontouchmove 3、手指抬起 ontouchend //注意:在移动开发时,浏览器模拟器时好时坏,一般不用onX的方式绑定事件函数,要用事件绑定的方式(即第二种) div.ontouchstart = function(){}; div.addEventListener ('touchstart', function(){}); 二、PC端事件在移动端(出现的问题) 1、PC端事件在移动端略慢,大概300ms左右 2、阻止PC事件 document.addEventListener (当给某元素加上绑定事件函数之后,事件函数默认第一个参数就是事件对象。 :位于当前 DOM 元素上(当前dom元素之外的无法获取)的手指的列表 3、changedTouches:涉及当前事件的手指的一个列表 例子:移动端无缝轮播切换
关于移动端事件的一些笔记 移动端事件类型 touchstart事件 touchmove事件 touchend事件 移动端事件对象 touches 屏幕上有几个触点 targetTouches 绑定事件的元素上有几个触点 changedTouches 在屏幕上 改变(位置移动 离开 进入 )的触点的个数(如果手指离开屏幕 只有changedTouched有值 其他都没有) 获取触点坐标 clientX ,我们把PC端的网页放到了移动端,苹果公司把PC端的网页进行了缩放,发明了一种浏览缩放网页的处理方案 ,就是双击放大,第一次点击会延迟300ms左右,然后判断,如果有第二次点击,就是放大,如果没有,就是点击 script> // 1.声明变量 var startX, startY, endX, endY, absX, absY; // 2.给document添加touchstart事件 给document添加touchend事件 document.addEventListener("touchend", function (e) { var touches = e.changedTouches
触屏事件概述 移动端浏览器兼容性较好,我们不需要考虑以前 JS 的兼容性问题,可以放心的使用原生 JS 书写效果,但是移动端也有自己独特的地方。 触屏事件可响应用户手指(或触控笔)对屏幕或者触控板操作。 常见的触屏事件如下: ? 2. 触摸事件对象(TouchEvent) TouchEvent 是一类描述手指在触摸平面(触摸屏、触摸板等)的状态变化的事件。 这类事件用于描述一个或多个触点,使开发者可以检测触点的移动,触点的增加和减少,等等 touchstart、touchmove、touchend 三个事件都会各自有事件对象。 targetTouches[0] 里面的pageX 和 pageY 移动端拖动的原理: 手指移动中,计算出手指移动的距离。
在前端的移动Web开发中,有一部分事件只在移动端产生,如触摸相关的事件。接下来给大家简单总结一下移动端的事件。 1. PC端事件在移动端的兼容问题 1.1 click事件的200~300ms延迟问题 由于移动端默认的布局视口宽度是980像素,所以网页文字非常小,为了快速让网页还原到原来的大小,Safari最新引入了双击缩放功能 移动端特有的touch事件 由于移动端设备大都具备触摸功能,所以移动端浏览器都引入了触摸(touch)事件。 当一些更高级别的事件发生的时候(如电话接入或者弹出信息)会取消当前的touch操作,即触发touchcancel。 如何用户的手指从触屏设备的边缘移出了触屏设备,也会触发 touchend 事件。 touchend 事件的 target 也是与 touchstart 的 target 一致,即使已经移出了元素。
PC端事件在移动端的兼容问题 1.1 click事件的200~300ms延迟问题 由于移动端默认的布局视口宽度是980像素,所以网页文字非常小,为了快速让网页还原到原来的大小,Safari最新引入了双击缩放功能 移动端特有的touch事件 由于移动端设备大都具备触摸功能,所以移动端浏览器都引入了触摸(touch)事件。 touchcancel 当一些更高级别的事件发生的时候(如电话接入或者弹出信息)会取消当前的touch操作,即触发touchcancel。 2.4 touchend事件 当用户的手指抬起的时候,会触发 touchend 事件。如何用户的手指从触屏设备的边缘移出了触屏设备,也会触发 touchend 事件。 touchend 事件的 target 也是与 touchstart 的 target 一致,即使已经移出了元素。 ?
绑定事件:bind()、on()、live()、delegate()、keyup(); 触发事件:trigger(‘keyup’)、keyup(); 解绑事件:unbind()、off()、die ()、undelegate(); 符合事件:hover() 、toggle(); 事件绑定:bind(); ---- 一、绑定事件 JQuery绑定事件,除 bing() 方法之外 /2013/0905/5993.html 二、移除事件 (a)使用 unbind() 方法 移除事件 $("button").click(function(){ $("p").unbind 提供了一系列显示动画效果的方法,其中, show() ——— 方法控制元素的显示; hide() ———-方法控制元素的显示; toggle() ——-方法切换元素的可见状态; fadeIn() ——-方法淡入; fadeOut() ——方法淡出; slideUp()——方法实现元素的收缩 slideDown()—方法实现元素的展开 ----
触摸事件是在移动设备(如智能手机或平板电脑)上查看页面时触发的事件。 它们允许您跟踪多点触摸事件。 我们有4个触摸事件: touchstart 触摸事件已经启动(触摸表面) touchend 一个触摸事件已经结束(表面不再被触摸) touchmove 触摸移动手指(或任何接触设备的东西)在表面移动 touchcancel 触摸事件已被取消 每当一个触摸事件发生,会触发一个触摸事件: const link = document.getElementById('my-link') link.addEventListener ('touchstart', event => { // touch event started }) 以下是我们可以访问该事件的所有属性: identifier 标识符此特定事件的唯一标识符。 用于跟踪多点触摸事件。相同的手指=相同的标识符。
http://plnkr.co/edit/Ro80nR7HT7OGGPCXjz7E?p=preview
移动端click 事件延迟300ms ---- 一般情况下,如果没有经过特殊处理,移动端浏览器在派发点击事件的时候,通常会出现300ms左右的延迟。 css touch-action 指针事件(Point Event)最初由微软提出,现已进入 W3C 规范的候选推荐标准阶段 (Candidate Recommendation)。 指针事件是一个新的 web 事件系列,相应的规范旨在使用一个单独的事件模型,对所有输入类型,包括鼠标 (mouse)、触摸 (touch)、触控 (stylus) 等,进行统一的处理。 如果你比较感兴趣,想深入指针事件,那上述 polyfill 就非常适合应用到手头的项目中。 指针事件和css touch-action:新属性,可能存在浏览器兼容问题,如仅为解决点击延迟问题儿引入一整套指针事件有点过了。
问题描述 首先先来复现一下代码,背景是这样的,需要监听一下scroll事件,但是监听函数需要当前组件的this环境,所以监听函数上需要bind(this), 但是这样操作后发现无法removeEventListener addEventListener、removeEventListener与事件处理程序 首先先来了解一下这两个函数的使用。 addEventListener()和removeEventListener()是“DOM2级事件”中定义的两个方法,分别用于添加和删除事件处理程序。 所有的DOM节点中都包含这两个方法,并且它们都接受3个参数:要处理的事件名、要为事件添加的处理程序的函数和一个表示事件处理阶段的布尔值。 我想看到了上图的输出结果,大家应该明白了为何加上bind之后会无法移除监听事件了,其根源就在于每次加上bind之后返回的函数并不是指向同一个函数 解决方案 既然明白了原因所在,那么我们来说一下如何解决。
一、touch事件类型 touchstart - 手指触摸屏幕,在元素上按下时触发 touchmove - 手指移动,在元素上按下之后屏幕上任意移动 tounchend - 手指在元素上按下之后,屏幕任意位置抬起时触发 touchcancel - 触摸过程中被系统取消时触发 (很少使用) touch 事件与mouse事件区别: touchstart:手指按下,mousedown:鼠标按下。 touch:事件只能在移动端使用,mouse :事件只能在 PC 端使用。 touchstart: 只能在绑定元素内按下触发,touchmove、touchend可以在屏幕的任意位置执行。 很多情况下,触摸事件跟鼠标事件会同时触发,目的是为了在pc端运行的时候,没有触摸设备可以使用鼠标代替。 如果可以支持触摸事件,则把鼠标事件使用event.preventDefault()阻止事件发生,此时鼠标事件将失效。如果鼠标和触摸事件都支持时,还有添加多个触摸事件时,具体的执行顺序是怎么的?
腾讯云事件总线(EB)是一款安全,稳定,高效的无服务器事件管理平台,支持腾讯云服务、自定义应用、SaaS应用以标准化、中心化的方式接入,帮助您轻松实现无服务器事件驱动架构。
扫码关注云+社区
领取腾讯云代金券