博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js基础之事件
阅读量:4618 次
发布时间:2019-06-09

本文共 4096 字,大约阅读时间需要 13 分钟。

一、event对象

document.οnclick=function(ev){

  oEvent=event?event:ev;//兼容性写法
  alert(oEvent.clientX);
  alert(oEvent);//IE为object、chrome为object MouseEvent
  /*if(ev){
    alert(event.clientX);//IE
  }else{
    //alert(ev.clientX);//ff
    alert(ev);
  }*/
}

二、事件冒泡

var oBtn = document.getElementById('btn1');

var oDiv = document.getElementById('div1');
oBtn.οnclick=function(ev){
  var oEvent = ev||event;
  oDiv.style.display='block';alert('block');
  oEvent.cancelBubble=true;//阻止事件冒泡
}
  document.οnclick=function(){
  oDiv.style.display='none';alert('none');
}

三、鼠标位置

栗子一:跟随鼠标的提示框

document.οnmοusemοve=function(ev){

  var oEvent=event||ev;//兼容性写法
  var oDiv = document.getElementById('div1');
  var scrollTop = document.documentElement.scrollTop||document.body.scrollTop;
  var scrollLeft = document.documentElement.scrollLeft||document.body.scrollLeft;
    oDiv.style.left=oEvent.clientX+scrollLeft+'px';//只要用到clientX必须加上scrollLeft
    oDiv.style.top=oEvent.clientY+scrollTop+'px';//只要用到clientY必须加上scrollTop
}

栗子二、跟随鼠标的一串div

var lDiv = document.getElementsByTagName('div');

var i=0;
document.οnmοusemοve=function(ev){
  var oEvent=event||ev;//兼容性写法
  for(i=lDiv.length-1;i>0;i--){
    lDiv[i].style.left=lDiv[i-1].style.left;
    lDiv[i].style.top=lDiv[i-1].style.top;
  }
  var scrollTop = document.documentElement.scrollTop||document.body.scrollTop;
  var scrollLeft = document.documentElement.scrollLeft||document.body.scrollLeft;
  lDiv[0].style.left=oEvent.clientX+scrollLeft+'px';
  lDiv[0].style.top=oEvent.clientY+scrollTop+'px';

}

四、keyCode

键盘控制移动div

document.οnkeydοwn=function(ev){

  var oEvent = event||ev;
  var oDiv = document.getElementById('div1');//alert(oEvent.keyCode);
  if(oEvent.keyCode==37||oEvent.keyCode==65){
    oDiv.style.left=oDiv.offsetLeft-10+'px';
  }else if(oEvent.keyCode==39||oEvent.keyCode==68){
    oDiv.style.left=oDiv.offsetLeft+10+'px';
  }else if(oEvent.keyCode==87){
    oDiv.style.top=oDiv.offsetTop-10+'px';
  }else if(oEvent.keyCode==83){
    oDiv.style.top=oDiv.offsetTop+10+'px';
  }

}

五、ctrl+回车提交

var oBtn = document.getElementById('btn1');

var oTxt1 = document.getElementById('txt1');
var oTxt2 = document.getElementById('txt2');
oBtn.οnclick=function(ev){
  oTxt1.value+=oTxt2.value+'\r\n';
  oTxt2.value='';
}
oTxt2.οnkeydοwn=function(ev){
  var oEvent = ev||event;
  if(oEvent.ctrlKey&&oEvent.keyCode==13){
  oTxt1.value+=oTxt2.value+'\r\n';
  oTxt2.value='';
}

六、阻止默认事件

栗子一:屏蔽右键菜单

document.oncontextmenu=function(ev){

  return false;

}

栗子二:阻止表单提交

var oForm=document.getElementById('form1');

oForm.onsubmit = function(){

  return false;

}

栗子三:阻止输入文本

var oTxt = document.getElementById('txt1');

oTxt.οnkeydοwn=function(){

  return false;

}

栗子四:自定义右键菜单

document.οncοntextmenu=function(ev){

  var oUl = document.getElementById('ul1');
  var oEvent = ev||event;
  oUl.style.display = 'block';
  var scrollTop = document.documentElement.scrollTop||document.body.scrollTop;
  var scrollLeft = document.documentElement.scrollLeft||document.body.scrollLeft;
  oUl.style.left = oEvent.clientX+scrollTop+'px';
  oUl.style.top = oEvent.clientY+scrollLeft+'px';
  return false;

}

document.οnclick=function(){

  var oUl = document.getElementById('ul1');
  oUl.style.display = 'none';
}

 

七、拖拽

var oDiv = document.getElementById('div1');

var disX=0;
var disY=0;
document.οnmοusedοwn=function(ev){
  var oEvent=ev||event;
  disX = oEvent.clientX-oDiv.offsetLeft;
  disY = oEvent.clientY-oDiv.offsetTop;
  document.οnmοusemοve=function(ev){
    var oEvent=ev||event;
    var l = oEvent.clientX-disX;
    var t = oEvent.clientY-disY;
    var scrollTop = document.documentElement.scrollTop||document.body.scrollTop;
    var scrollLeft = document.documentElement.scrollLeft||document.body.scrollLeft;
    if(l>0&&l<document.documentElement.clientWidth-oDiv.offsetWidth&&t>0&&t<document.documentElement.clientHeight-oDiv.offsetHeight){
      oDiv.style.left = l+'px';
      oDiv.style.top = t+scrollTop+'px';
    }
  }
  document.οnmοuseup=function(){
    document.οnmοusemοve=null;
    document.οnmοuseup=null;
  }
}

转载于:https://www.cnblogs.com/kuangliu/p/3477141.html

你可能感兴趣的文章
[转]西点军校22条军规
查看>>
get the page name from url
查看>>
visual studio中csproj文件中的project guid改为小写 ( notepad++ 正则)
查看>>
TeeChart显示三维的图形,使用Surface
查看>>
如何使用 Idea 远程调试 Java 代码
查看>>
加密,解密
查看>>
在C#代码中应用Log4Net(一)简单使用Log4Net
查看>>
[转]如何写软件项目技术标
查看>>
每日站立会议个人博客五
查看>>
ddd
查看>>
死磕 java同步系列之AQS起篇
查看>>
利用Lucene把文本的字体格式进行改动,然后输出到一个新的文件里
查看>>
[Openstack] Expecting an auth URL via either --os-auth-url or env[OS_AUTH_URL]
查看>>
How to Create Modifiers Using the API QP_MODIFIERS_PUB.PROCESS_MODIFIERS
查看>>
待飞笔记(第一天 )
查看>>
用Winrar批量解压缩有密码文件方法,只需输入一次密码
查看>>
解惑好文:移动端H5页面高清多屏适配方案
查看>>
traefik添加多证书
查看>>
PhantomJs 笔记
查看>>
js设计模式--语言类型
查看>>