美文网首页web挖坑之路
事件QAQ(笔记)

事件QAQ(笔记)

作者: 不知道取个什么昵称不如娶个媳妇 | 来源:发表于2018-09-04 09:51 被阅读1次

currentTarget  事件源 当前事件源

preventDefault() 不要执行与事件关联的默认操作

与事件关联的默认动作:

    点击超链接跳转页面,表单中点击提交按钮提交表单,浏览器页面中点击右键弹出右键菜单

自定义右键菜单

ul#contentmenu > li*3

#contentmenu {

dispaly:none;

position:absolute;

top:0px;

left:0px;

}

右键事件:

document.oncontentmenu = function(e){

//TODO...

e = e || event;//event = event || window.event;

e.preventDefault();//除去默认菜单

$("#contentmenu").style.display = "block";//让自定义菜单显示

//设置出现的坐标

$("#contentmenu").style.left = event.clientX + "px"; 

$("#contentmenu").style.top = event.clientY + "px"; 

}

document.onclick = function(){

//todo

$("#contentmenu").style.display = "none";

}

阻止与事件关联的默认动作:

    标准:event.preventDefault();

    非标准:event.returnValues == false;

    兼容:event.preventDefault?event.preventDefault():event.returnValues == false;

超级链接消除默认动作

<a href = "javascript:void(0)">del</a>

document.getElementsByTagName("a")[0].onclick = function(event){

event.preventDefault();

}

document.getElementsByTagName("a")[0].onclick = function(event){

return false;

}

表单提交事件

form action=“”

input text #username

input password#password

input submit

//submit//表单提交会触发,onsubmit事件的执行;

$("from")[0].onsubmit = function(event){

if($("username").value.trim().length === 0 && $("password").value.length === 0){

event.preventDefault();

}

}

拖拽效果:

按下鼠标左键:onmousedown

    事件源:待拖拽的元素

    事件处理程序:获取鼠标按下时光标在事件源元素坐标系中的坐标,绑定鼠标移动事件

移动鼠标:mousemove

    事件源:document

事件处理程序:计算拖拽的元素定位(用光标在窗口中的坐标-光标早拖拽元素中的坐标),设置css

松开鼠标:mouseup

    事件源:document

    事件处理程序:取消鼠标移动事件;

简单拖拽:

img #img

img{

position:absolute;

top:0px;

left:0px;

}

var img = $("img")[0];

img.onmousedown = function(event){

event = event || windows.event;

var  _offsetX = event.offsetX;

var  _offsetY = event.offsetY;

//绑定鼠标移动事件

document.onmousemove = function(event){

    event = event || windows.event;

    img.style.top = event.clientY - _offsety + "px";
    img.style.left = event.clientX - _offsetx + "px";
     if(event.clientY - _offsety <= 0){ img.style.top = 0 + "px"; }
     if(event.clientX - _offsetx <= 0){ img.style.left = 0 + "px"; }

}

}

document.onmouseup = function(){
 document.onmousemove = null ;
 }未完成

滚动距离:

document.documentElement.scrollTop||document.body.srollTop;--距离顶部滚动了多远

document.documentElement.scrollLeft||document.body.srollLeft;--距离左侧;

window.onscroll = function(){}//页面滚动,触发该事件;

document.documentElement.scrollTop = 0 //使用赋值操作回到顶部,会触发onscroll事件

计算宽高:

element.clientWidth

element.clientHeight

    ----边框以内的宽高(内容宽高+padding宽高-滚动条)

element.offsetWidth

element.offsetHeight

    ---边框以及边框以内所有内容的宽高

如果元素display:none,宽高皆为0;

浏览器视口宽高

window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;

window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;

let是块,var变量提升;

计算定位:

element.offsetTop // 距离最近的有定位的祖先元素的顶部距离

element.offsetLeft// 距离最近的有定位的祖先元素左部距离

element.offsetParent// 最近的有定位的祖先元素

event.pageX    如果不支持使用这个属性,怎么获取?

event.clientX +  document.documentElement.scrollLeft || document.body.scrollLeft ;

mouseenter(mouseleave)和mouseover(mouseout)

mouseover //重复触发

mouseenter//没有事件冒泡

相关文章

  • 事件QAQ(笔记)

    currentTarget 事件源 当前事件源preventDefault() 不要执行与事件关联的默认操作 与事...

  • 【15】

    怎么发上来了QAQ 居然还有两次阅QAQ 好尴尬啊_(:з」∠)_ 1.练字√ 2.化学笔记 3.认真听录音√

  • 产品笔记 | 分销/推广系统

    前言 最近好忙,很久没更笔记了QAQ。每天都很忙碌的上班下班,永远都在路上QAQ.言归正传,分销裂变是运营的一种手...

  • qaq

    记录和云哥的爱情

  • QAQ

    想被调教怎么办

  • QAQ

    2016年4月9号,这一天天空下着小雨,我穿着蓝紫色格子衬衫,咖啡色毛衣外套,黑色打底裤,黑色小皮鞋, 我特意的打...

  • QAQ

    希望你哭的时候我能在你身边 抱抱你再拍拍你的背 告诉你可能一切都不会变好 告诉你世界就是这么糟 可能多努力也得不到...

  • QAQ

    yeah可以多存活30分钟但是也没什么QAQyeah可以多存活30分钟但是也没什么QAQyeah可以多存活30分钟...

  • QAQ

    我真的好喜欢他们啊QAQ

  • QAQ

    有没有玩转发平台的,转发的文章无皇图少广告,只有几条再最下面,提现秒到 QAQ

网友评论

    本文标题:事件QAQ(笔记)

    本文链接:https://www.haomeiwen.com/subject/vjnwwftx.html