码迷,mamicode.com
首页 > 编程语言 > 详细

Javascript Event

时间:2015-12-30 00:23:06      阅读:275      评论:0      收藏:0      [点我收藏+]

标签:

 

获取鼠标坐标

<script>
window.onload = function(){
    document.onclick = function(ev){
        var oEvent = event || ev;
        alert(oEvent.clientX + "," + oEvent.clientY);
    }
};
</script>

事件冒泡

<!DOCTYPE HTML>
<html onclick="alert(‘html‘);">
<head>
<meta charset="utf-8">
<style>
div {padding:100px;}
</style>
</head>

<body onclick="alert(‘body‘);">
<div style="background:#CCC;" onclick="alert(this.style.background);">
    <div style="background:green;" onclick="alert(this.style.background);">
        <div style="background:red;" onclick="alert(this.style.background);">
        </div>
    </div>
</div>
</body>
</html>

阻止事件冒泡

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<style>
#div1 {width:400px; height:300px; background:#CCC; display:none;}
</style>
<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(‘document被点击了‘);
    };
};
</script>
</head>

<body>
<input id="btn1" type="button" value="显示" />
<div id="div1">
</div>
</body>
</html>

鼠标坐标,让div跟随鼠标移动

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<style>
#div1 {width:200px; height:200px; background:red; position:absolute;}
</style>
<script>
document.onmousemove=function (ev)
{
    var oEvent=ev||event;
    var oDiv=document.getElementById(div1);
    
    oDiv.style.left=oEvent.clientX+px;
    oDiv.style.top=oEvent.clientY+px;
};
</script>
</head>

<body>
<div id="div1"></div>
</body>
</html>

但是如果这时候页面有滚动条的话,移动滚动条后div就不会跟随鼠标了,于是我们加上scrollTop

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<style>
#div1 {width:200px; height:200px; background:red; position:absolute;}
</style>
<script>
document.onmousemove=function (ev)
{
    var oEvent=ev||event;
    var oDiv=document.getElementById(div1);
    
    var scrollTop=document.documentElement.scrollTop||document.body.scrollTop;
    
    oDiv.style.left=oEvent.clientX+px;
    oDiv.style.top=oEvent.clientY+scrollTop+px;
};
</script>
</head>

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

每次我们用到clientX和clientY的时候我们都要记得给它们加上scrollLeft和scrollTop,既然如此我们干脆将这个方法抽象出来。

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<style>
#div1 {width:200px; height:200px; background:red; position:absolute;}
</style>
<script>
function getPos(ev)
{
    var scrollTop=document.documentElement.scrollTop||document.body.scrollTop;
    var scrollLeft=document.documentElement.scrollLeft||document.body.scrollLeft;
    
    return {x: ev.clientX+scrollLeft, y: ev.clientY+scrollTop};
}

document.onmousemove=function (ev)
{
    var oEvent=ev||event;
    var oDiv=document.getElementById(div1);
    var pos=getPos(oEvent);
    
    oDiv.style.left=pos.x+px;
    oDiv.style.top=pos.y+px;
};
</script>
</head>

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

一串跟随鼠标的div

原理:后一个div跟着前一个div走,第一个div跟着鼠标走

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<style>
div {width:10px; height:10px; background:red; position:absolute;}
</style>
<script>
function getPos(ev)
{
    var scrollTop=document.documentElement.scrollTop||document.body.scrollTop;
    var scrollLeft=document.documentElement.scrollLeft||document.body.scrollLeft;
    
    return {x: ev.clientX+scrollLeft, y: ev.clientY+scrollTop};
}

document.onmousemove=function (ev)
{
    var aDiv=document.getElementsByTagName(div);
    var oEvent=ev||event;
    
    var pos=getPos(oEvent);
    
    for(var i=aDiv.length-1;i>0;i--)
    {
        aDiv[i].style.left=aDiv[i-1].offsetLeft+px;
        aDiv[i].style.top=aDiv[i-1].offsetTop+px;
    }
    
    aDiv[0].style.left=pos.x+px;
    aDiv[0].style.top=pos.y+px;
};
</script>
</head>

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

 

 

键盘事件

keyCode

<script>
document.onkeydown=function (ev)
{
    var oEvent=ev||event;
    
    alert(oEvent.keyCode);
};
</script>

键盘控制div左右移动

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<style>
#div1 {width:100px; height:100px; background:#CCC; position:absolute;}
</style>
<script>
document.onkeydown=function (ev)
{
    var oEvent=ev||event;
    var oDiv=document.getElementById(div1);
    
    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>
</html>

 

提交留言

基本布局

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
</head>

<body>
<input id="txt1" type="text" /><br>
<textarea id="txt2" rows="10" cols="40"></textarea>
</body>
</html>

按回车提交

<script>
window.onload=function ()
{
    var oTxt1=document.getElementById(txt1);
    var oTxt2=document.getElementById(txt2);
    
    oTxt1.onkeydown=function (ev)
    {
        var oEvent=ev||event;
        
        if(oEvent.keyCode==13)
        {
            oTxt2.value+=oTxt1.value+\n;
            oTxt1.value=‘‘;
        }
    };
};
</script>

按ctrl+回车提交

<script>
window.onload=function ()
{
    var oTxt1=document.getElementById(txt1);
    var oTxt2=document.getElementById(txt2);
    
    oTxt1.onkeydown=function (ev)
    {
        var oEvent=ev||event;
        
        if(oEvent.keyCode==13 && oEvent.ctrlKey)
        {
            oTxt2.value+=oTxt1.value+\n;
            oTxt1.value=‘‘;
        }
    };
};
</script>

 

Javascript Event

标签:

原文地址:http://www.cnblogs.com/zcynine/p/5087425.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!