Javascript事件实例详解


Posted in Javascript onNovember 06, 2013

document是位于html标签之上的,可以说是权力最大的。下面的实例当你单击页面上的任何位置都会弹出“a”,正是运用了document的特性。

 <script>        
     document.onclick=function(){
         alert('a');
     };
 </script>
 

获取鼠标位置clientX,clientY---注意这里仅仅只是可视区的鼠标位置
 <script>
    document.onclick=function(ev){
        if(ev)
        {
            alert(ev.clientX+','+ev.clientY);
        }
        else{
            alert(event.clientX+','+event.clentY);
        };
    };
</script>
 

或者
 <script>
    document.onclick=function(ev){
    /*    if(ev)
        {
            alert(ev.clientX+','+ev.clientY);
        }
        else{
            alert(event.clientX+','+event.clentY);
        };
    };*/
    var oEvent=ev||event;
    alert(oEvent.clientX+','+oEvent.clientY);
    };
</script>
 

事件冒泡---一层一层叠加的元素在一起,形成事件冒泡,比如下面的例子:document的最大范围影响了div的响应。
 <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';
            oEvent.cancelBubble=true;//清除冒泡
        };
        document.onclick=function(){
            odiv.style.display='none';
        };
    };
</script>
</head>
<body>
<input type="button" value="显示" id="btn1"/>
<div id="div1" style="width:100px;height:150px;background:#ccc;"></div>
</body>
 

鼠标移动---在可视区有效
 <title>鼠标移动</title>
<script>
    window.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" style="width:50px;height:50px;background:blue;position:absolute;"></div>
</body>
 

 键盘改变位置和方向---通过keycode获取键盘的键值来执行相应的操作。
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<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>
</html>
 

鼠标跟随小尾巴
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<style>
div {width:10px; height:10px; background:red; position:absolute;}
</style>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<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>
<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>
 

 ctrlKey---可以通过ctrl+enter组合键来提交内容
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script>
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>
</html>
Javascript 相关文章推荐
javascript 正则替换 replace(regExp, function)用法
May 22 Javascript
利用javascript数组长度循环数组内所有元素
Dec 27 Javascript
JS组件Bootstrap实现弹出框效果代码
Apr 26 Javascript
js css3实现图片拖拽效果
Mar 04 Javascript
Vue实现路由跳转和嵌套
Jun 20 Javascript
AngularJS实现的select二级联动下拉菜单功能示例
Oct 25 Javascript
详解Angular路由之路由守卫
May 10 Javascript
vue中动态设置meta标签和title标签的方法
Jul 11 Javascript
electron + vue项目实现打印小票功能及实现代码
Nov 25 Javascript
vue操作动画的记录animate.css实例代码
Apr 26 Javascript
如何实现双向绑定mvvm的原理实现
May 28 Javascript
解决vue字符串换行问题(绝对管用)
Aug 06 Javascript
zTree插件之多选下拉菜单实例代码
Nov 06 #Javascript
Jquery ajax执行顺序 返回自定义错误信息(实例讲解)
Nov 06 #Javascript
Js参数值中含有单引号或双引号问题的解决方法
Nov 06 #Javascript
浅析Js中的单引号与双引号问题
Nov 06 #Javascript
表单元素与非表单元素刷新区别详细解析
Nov 06 #Javascript
js onclick事件传参讲解
Nov 06 #Javascript
jquery validation验证身份证号,护照,电话号码,email(实例代码)
Nov 06 #Javascript
You might like
php+AJAX传送中文会导致乱码的问题的解决方法
2008/09/08 PHP
php+mysql数据库查询实例
2015/01/21 PHP
PHP闭包函数详解
2016/02/13 PHP
thinkPHP实现的联动菜单功能详解
2017/05/05 PHP
Laravel自动生成UUID,从建表到使用详解
2019/10/24 PHP
由浅到深了解JavaScript类
2006/09/08 Javascript
jQuery Ajax之load()方法
2009/10/12 Javascript
JS性能优化笔记搜索整理
2013/08/21 Javascript
在 Express 中使用模板引擎
2015/12/10 Javascript
jQuery+PHP+MySQL实现无限级联下拉框效果
2016/02/19 Javascript
详谈javascript异步编程
2016/02/21 Javascript
vue-cli脚手架的安装教程图解
2018/09/02 Javascript
js实现选项卡效果
2020/03/07 Javascript
python实现在控制台输入密码不显示的方法
2015/07/02 Python
python用reduce和map把字符串转为数字的方法
2016/12/19 Python
Numpy中的mask的使用
2018/07/21 Python
Python函数的参数常见分类与用法实例详解
2019/03/30 Python
python整合ffmpeg实现视频文件的批量转换
2019/05/31 Python
Python基础学习之函数方法实例详解
2019/06/18 Python
Python使用tkinter模块实现推箱子游戏
2019/10/08 Python
pytorch获取模型某一层参数名及参数值方式
2019/12/30 Python
最小二乘法及其python实现详解
2020/02/24 Python
cookies应对python反爬虫知识点详解
2020/11/25 Python
python分布式爬虫中消息队列知识点详解
2020/11/26 Python
Django filter动态过滤与排序实现过程解析
2020/11/26 Python
css3 实现元素弧线运动的示例代码
2020/04/24 HTML / CSS
深入解析HTML5中的Blob对象的使用
2015/09/08 HTML / CSS
美国派对用品及装饰品网上商店:Shindigz
2016/07/30 全球购物
银行领导证婚词
2014/01/11 职场文书
秋季红领巾广播稿
2014/01/27 职场文书
七年级历史教学反思
2014/02/05 职场文书
治庸问责心得体会
2014/09/12 职场文书
工作犯错保证书
2015/05/11 职场文书
辩论会主持词
2015/07/03 职场文书
PHP中多字节字符串操作实例详解
2021/08/23 PHP
Beekeeper Studio开源数据库管理工具比Navicat更炫酷
2022/06/21 数据库