-
释放鼠标查看全部
-
自定义封装类event.js查看全部
-
原理:拖动的时候,光标位置在哪,面板位置就在哪,面板的坐标通过左上角的点来确定。 分析并解决Bug 1、确定光标在屏幕中的位置:clientheight/width 2、确定面板的位置:offsetwidth/height 3、面板的移动位置限制:四个方向 4、删除事件,mouseup方法查看全部
-
offsetLeft与style.left的区别 offsetLeft 获取的是相对于父对象的左边距 left 获取或设置相对于 具有定位属性(position定义为relative)的父对象 的左边距 如果父div的position定义为relative,子div的position定义为absolute,那么子div的style.left的值是相对于父div的值, 这同offsetLeft是相同的,区别在于: 1. style.left 返回的是字符串,如28px,offsetLeft返回的是数值28,如果需要对取得的值进行计算, 还用offsetLeft比较方便。 2. style.left是读写的,offsetLeft是只读的,所以要改变div的位置,只能修改style.left查看全部
-
Window 尺寸 有三种方法能够确定浏览器窗口的尺寸(浏览器的视口,不包括工具栏和滚动条)。 对于Internet Explorer、Chrome、Firefox、Opera 以及 Safari: window.innerHeight - 浏览器窗口的内部高度 window.innerWidth - 浏览器窗口的内部宽度 对于 Internet Explorer 8、7、6、5: document.documentElement.clientHeight document.documentElement.clientWidth 或者 document.body.clientHeight document.body.clientWidth 拖拽->鼠标跟随 1、绑定鼠标点击事件 2、获取鼠标坐标:clientX clientY (所有浏览器都支持此属性) 3、为容器元素绑定onmousemove (表明可拖拽元素只在容器元素内可拖拽) 4、将拖拽元素设置成绝对定位 5、在onmousemove中改变拖拽元素的left、top (注意left、top的算法) 6、设置left、top限定,禁止元素拖出窗口 7、当前浏览器窗口宽度document.documentElement.clientWidth或document.body.clientWidth 8、拖拽元素绑定onmouseup事件,在此事件中注销onmousemove事件,完成元素拖拽的释放效果 注意可以把left、top理解成x轴、y轴查看全部
-
onmousedown--当用户按下鼠标时触发 onmouseup---当用户放掉鼠标时触发 onmousemove---鼠标在移动时可以返回一个坐标值 offsetWidth,offsetHeight--网页中获取网页内容高度和宽度,可以用于获取网页中盒子的高度和宽度 用法:box.offsetWidth,box.offsetHeight查看全部
-
EVENT对象的keyCoden属性查看全部
-
- HTML事件处理 <input type="submit" id="btn" onlclick="alert("hello world");"> 特点: HTML和JS代码耦合在一起,不方便修改 - DOM0事件处理 <script> var btn=document.getElementById("btn"); btn.onclick=alert("helloworld");//添加事件 btn.onlcik=null; //取消事件 </script> - DOM2事件处理 不同的浏览器的DOM2事件处理函数不同 - Chrome: - addEventListener(element, type, true/false); - removeEventListener(element, type, true/false); 第三个参数true时为事件捕获流,false时为事件冒泡 - IE: - attachEvent(element, "on"+type); - attachEvent(element, "on"+type); 举例说明: <script> btn=document.getElementById("btn"); //获取操作对象 btn.addEventListener("click", alert("helloworld"), false); //添加 btn.removeEventListener("click", alert("helloworld"), false); //删除 </script> 总结: - DOM0事件处理和DOM2事件处理都可以在一个元素上添加多个事件,而HTML事件处理不行 - DOM2事件处理添加的事件只能通过DOM2事件处理去除查看全部
-
/跨浏览器事件处理程序 var eventUtil={ //添加句柄 addHandler:function(element,type,handler){ if(element.addEventListener){ element.addEventListener(type,handler,false); }else if(element.attachEvent){ element.attachEvent('on'+type,handler); }else{ element['on'+type]=handler; }, removeHandler:function(element,type,handler){ if(element.removeEventListener){ element.removeEventListener(type,handler,false); }else if(element.detachEvent){ element.detachEvent('on'+type,handler); }else{ element['on'+type]=null; } } }查看全部
-
获得鼠标移动的位置查看全部
-
鼠标事件查看全部
-
本章内容 1、理解事件流 2、使用事件处理程序 3、不同的事件类型 一、事件流 事件流描述的是从页面中接受事件的顺序。 IE的事件流是事件冒泡流,而Netscape的事件流是事件捕获流 1、事件冒泡 事件冒泡,即事件最开始由最具体的元素(文档中嵌套层次最深的那个节点)接收,然后逐级向上转播至最不具体的节点(文档)。 2、事件捕获 事件捕获的思想是不太具体的节点应该更早接收到事件,而最具体的节点最后接收到事件。 二、事件处理程序 1、HTML事件处理程序 2、DOM0级事件处理程序 3、DOM2级事件处理程序 DOM2级事件定义了两个方法:用于处理指定和删除事件处理程序的操作:addEventListener()和removeEventListener()。它们都接收三个参数:要处理的事件名、作为事件处理程序的函数和一个布尔值。 4、IE事件处理程序 attachEvent()添加事件 detachEvent()删除事件 这两个方法接收相同的两个参数:事件处理程序名称与事件处理函数 5、跨浏览器的事件处理程序 三、事件对象 事件对象event 1、DOM中的事件对象 (1)、type:获取事件类型 (2)、target:事件目标 (3)、stopPropagation() 阻止事件冒泡 (4)、preventDefault() 阻止事件的默认行为 2、IE中的事件对象 (1)、type:获取事件类型 (2)、srcElement:事件目标 (3)、cancelBubble=true阻止事件冒泡 (4)、returnValue=false阻止事件的默认行为查看全部
-
1、任何能够跟着鼠标移动的东西 都要有一个前提:绝对定位 2、鼠标事件都是在浏览器窗口中的特定位置上发生的。这个位置信息保存在事件的clientX和clientY属性中。所有浏览器都支持这两个属性,它们的值表示事件发生时鼠标指针在视口中的水平和垂直坐标。不包括页面滚动的距离。 3、js ie10以下版本不支持document.getElementsByClassName 4、js封装getClass方法,获取class 5、实现随鼠标拖动,需要让窗口的坐标随着鼠标移动,鼠标的坐标保存在事件的clientX和clientY两个属性中。 6、onmousedown鼠标按下 窗口和鼠标的位置同步; element.style.left/top=clientX/Y+'px'; onmousemove当鼠标指针在元素内部移动时重复地触发 push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度。查看全部
-
三种键盘事件查看全部
-
IE中的事件对象 a.type属性 用于获取事件类型 b.srcElement属性 用于获取事件目标 c.cancelBubble属性 用于阻止/取消事件冒泡 设置为true表示阻止冒泡 设置为false表示不阻止冒泡 d.returnValue属性 用于阻止事件的默认行为 设置为false表示阻止事件的默认行为 getEvent:function(event){ return event?event:window.event;//或event=eventwindow.event; 非IE:event,IE:window.event }, getType:function(event){ return event.type; //非IE与IE相同 }, getElement:function(event){ return event.target event.srcElement; //非IE:event.target,IE:event.srcElement }, preventDefault:function(event){ if(event.preventDefault){//判断对象方法是否存在时,要将方法当做属性来判断[函数名后不加小括号:if(对象.方法函数)],很多方法没有返回值,即使有返回值也不一定是布尔值,如果是if(方法函数())时会出现不可预料的结果 event.preventDefault(); //非IE方法处理 }else{ event.returnValue=false; //IE方法处理 } }, stopPropagation:function(event){ if(event.stopPropagation){ //event.stopPropagation:以属性的形式进行判断 event.stopPropagation(); //非IE方法处理 }else{ event.cancelBubble=true; //IE方法处理 } }查看全部
举报
0/150
提交
取消