事件一

作者: Monee121 | 来源:发表于2018-04-08 20:43 被阅读0次

事件基础(一)

  1. 什么是事件对象(点击事件,想知道用户点击了哪,就用到了事件对象)

用来获取事件的详细信息:鼠标位置,键盘按键
例子:获取鼠标的位置:clientX
document的本质:document.childNodes[0].tagName
最顶层的父节点

  1. document对象范围
  2. event事件对象、clientX、clientY
<script>
/*alert(document.childNodes[0].tagName);
//0是!或者未定义,1是html,document是最顶层的父节点
*/

document.onclick=function(ev){
    //ie
   //alert(event.clientX+','+event.clientY);    //获取鼠标当前的横坐标
   //FF
  // alert(ev.clientX+','+ev.clientY);
 
/* if(ev)
 {
     alert(ev.clientX+','+ev.clientY);
  }else
  {
     alert(event.clientX+','+event.clientY);
  }  
*/  // ||一边真,一边假,返回真,
  var oEvent=ev || event; //兼容写法
  alert(oEvent.clientX+','+oEvent.clientY);
  
}
</script>
  1. 事件对象的兼容性问题及解决方案
  2. 事件冒泡原理

子级发生事件,传递给父级,一直往上传,直到传给HTML之上document。

  1. 取消事件冒泡:cancelBubble、弹出层实例
<script>
window.onload=function ()
{
    var oBtn=document.getElementById('btn1');
    var oDiv=document.getElementById('div1');
    
    oBtn.onclick=function (ev)
    {
        var oEvent=ev||event;
        oDiv.style.display='block';
        //alert('按钮被点了');
        
        oEvent.cancelBubble=true;//阻止事件冒泡
    };
    
    document.onclick=function ()
    {
        oDiv.style.display='none';
        //alert('页面被点了');
    };
};
</script>
</head>

<body>
<input id="btn1" type="button" value="显示" />
<div id="div1">
</div>
</body>
  1. 跟随鼠标的DIV实例
<style>
#div1 {width:100px; height:100px; background:red; position:absolute;}
</style>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>鼠标跟随方框</title>
<script>
document.onmousemove=function (ev)
{
    var oEvent=ev||event; //兼容ie和火狐
    var oDiv=document.getElementById('div1');
    var scrollTop=document.documentElement.scrollTop||document.body.scrollTop;  //可视区到页面顶部的距离 非chrome  chrome
    var scrollLeft=document.documentElement.scrollLeft||document.body.scrollLeft;  //可视区到页面左部的距离
    
    oDiv.style.left=oEvent.clientX+scrollLeft+'px';
    oDiv.style.top=oEvent.clientY+scrollTop+'px'; //可视区加上滚动条到顶部的距离,等于鼠标的左坐标
};
</script>
</head>

<body style="height:2000px;">
<div id="div1">
</div>
</body>

事件基础(二)

  1. 可视区坐标
  2. 滚动条所滚动的距离:scrollTop
  3. 滚动条所滚动的距离——解决谷歌浏览器兼容性问题
  4. 跟随鼠标的DIV实例——消除滚动条的影响
  5. 一串跟随鼠标的DIV实例
    ——思考题:在鼠标不移动时,也能实现鼠标跟随
<title>鼠标尾随一串</title>
<script>
window.onload=function ()
{
    var aDiv=document.getElementsByTagName('div');
    var i=0;
    
    document.onmousemove=function (ev)
    {
        var oEvent=ev||event;
        
        for(i=aDiv.length-1;i>0;i--) //后一个跟着前一个走
        {
            aDiv[i].style.left=aDiv[i-1].style.left;
            aDiv[i].style.top=aDiv[i-1].style.top;
        }
        
        aDiv[0].style.left=oEvent.clientX+'px'; //第一个跟着鼠标走
        aDiv[0].style.top=oEvent.clientY+'px';
    };
};
</script>
</head>

<body>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>

</body>
  1. 键盘事件:onkeydown、keyCode
<script>
document.onkeydown=function (ev)
{
    var oEvent=ev||event;
    
    alert(oEvent.keyCode);//返回键盘的键值
};
</script>
  1. 用键盘来控制DIV移动实例
    ——思考题:如何消除不卡顿的DIV移动
    alert(oDiv.offsetLeft);//offsetWidth:margin没有影响,所有对宽度有影响的都考虑进去;
    //offsetLeft:margin有影响,左边有影响的都考虑进去
    //实际的宽,、、

<style>
#div1 {width:100px; height:100px; background:#CCC; position:absolute;}
</style>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script>
document.onkeydown=function (ev)
{
    var oEvent=ev||event;
    var oDiv=document.getElementById('div1');
    
    //←     37
    //右     39
    
    if(oEvent.keyCode==37)
    {
        oDiv.style.left=oDiv.offsetLeft-10+'px';
    }
    else if(oEvent.keyCode==39)
    {
        oDiv.style.left=oDiv.offsetLeft+10+'px';
    }
};
</script>
</head>

<body>
<div id="div1"></div>
</body>
  1. 提交留言实例——ctrl+回车的提交方式

ctrlKey,shiftKey,altKey 返回布尔值,按着就是true

<script>
//提交留言,ctrl+enter,点击按钮时,把文本框的值,给了多行文本框
window.onload=function ()
{
    var oBtn=document.getElementById('btn1');
    var oTxt1=document.getElementById('txt1');
    var oTxt2=document.getElementById('txt2');
    
    oBtn.onclick=function ()//点击按钮时,把文本框的值,情况输入框
    {
        oTxt1.value+=oTxt2.value+'\n';
        oTxt2.value='';
    };
    
    oTxt2.onkeydown=function (ev)  //输入框添加键盘事件,
    {
        var oEvent=ev||event;
        
        if(oEvent.ctrlKey && oEvent.keyCode==13)
        {
            oTxt1.value+=oTxt2.value+'\n';
            oTxt2.value='';
        }
    };
};
</script>
</head>

<body>
<textarea id="txt1" rows="10" cols="40"></textarea><br />
<input id="txt2" type="text" />
<input id="btn1" type="button" value="留言" />
</body>

相关文章

  • 事件一

    事件基础(一) 什么是事件对象(点击事件,想知道用户点击了哪,就用到了事件对象) 用来获取事件的详细信息:鼠标位置...

  • 事件一

    一次技术讨论中,同事的方案获得了采纳,你的方案却没通过。而且,这是在你缺席的情况下产生的决议。 如果是我经历了这样...

  • 事件(一)

    一.事件绑定# 要想让JavaScript 对用户的操作作出响应,首先要对 DOM 元素绑定事件处理函数。所谓事件...

  • jQuery - 事件(一)之 事件绑定

    事件绑定,将事件绑定到指定元素上,使得元素能对各种事件做出对应的反应,如点击事件。 本文目录: on(); off...

  • JavaScript事件01——事件流

    大纲:概念(事件、事件流)事件流模型(事件冒泡、事件捕获、DOM事件流) 一、概念: 1、事件:事件就是用户或浏览...

  • 事件高级一

    事件高级(一) 给元素添加事件的问题 事件绑定的意义当一个元素添加两个以上事件的时候 事件绑定:IE - atta...

  • DOM事件(一)

    JavaScript使用侦听器来订阅事件,实现与HTML之间的交互。 DOM2级规范开始尝试标准化DOM事件。主流...

  • 一 狗屎事件

    暑假的某一天,爸爸和妈妈想带大齐去爬山。 爸爸带着大齐先下楼,妈妈又要化妆,又要准备东西,自然落在了后面。就在妈妈...

  • DOM事件(一)

    DOM文档:https://www.w3.org/DOM/DOMTR DOM1中的事件: 链接:https://w...

  • 事件处理(一)

    1> 事件处理简介 3大事件:(主要)触摸事件、加速计事件、远程控制事件。 什么是响应者对象- 在iOS中不是任何...

网友评论

      本文标题:事件一

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