翼度科技»论坛 编程开发 JavaScript 查看内容

JavaScript事件

4

主题

4

帖子

12

积分

新手上路

Rank: 1

积分
12
一、  JavaScript事件
在前端中,页面的每次交互和特效都是一个事件,其中任何一个html元素都是一个事件源,一个很事件源可以添加多个事件。
二、 事件中的event对象  
只要发生一个事件就会产生一个event事件,event代表事件的状态
1、event事件常见的属性和状态

2、阻止默认事件的发生
对于一些标签来说,他们拥有自己的事件,比如:a标签可以跳转,submit/button可以提交表单,reset可以重置按钮,那么如果想要给这些按钮添加事件,并且不让他执行对应的默认事件的话,就需要使用自制时间发生; 阻止默认事件的方法有两种:使用的是事件对象的方法来阻止event.stopPropagation();或者 return fales;
3、事件流-冒泡机制
事件的流向,是由两个机制,一个是事件的捕获 元素由外向内,另一个是元素的冒泡由内向外

注意:如果存在浏览器的兼容性问题可能会导致不同浏览器 出现冒泡程度不同
4、阻止冒泡的方法
 event.stopPropagation()
兼容性写法:
  1. if(event && event.stopPropagation){  // w3c标准
  2.   event.stopPropagation();
  3. }else{  // IE系列 IE 678
  4.   event.cancelBubble = true;
  5. }
复制代码
“DOM事件流”:三个阶段:事件捕获,成为目标阶段,事件冒泡
三、 js触发事件的方式有哪些
1、在js获取元素/标签      元素.事件名称 = 匿名函数 / function(){}
2、元素.事件名称 = 函数名称
3、 在html中触发    onclick = "代码段 / 函数调用"
四、鼠标事件

五、键盘事件

想要区分键盘上的每个按键,是通过键盘的keyCode值来判断的,所以想要知道按下的是哪个按键,可以使用event.keyCode
  1. document.onkeyup = function(){
  2.     console.log(event.keyCode);
  3. }
复制代码
案例:控制小人移动
  1. </head>
  2. <body>
  3.    
  4.         <img src="https://www.cnblogs.com/./img/ren_q_1.gif" alt="">
  5.         
  6.    
复制代码
  1. var box = document.querySelector('.box')
  2.         var img = document.querySelector('.box img');
  3.         var flag = true;
  4.         var left = 0;
  5.         var tops = 0;
  6.         var timer = null;
  7.         function dong(walk) {
  8.             flag = !flag;
  9.             var imgname = flag ? `ren_${walk}_1.gif` : `ren_${walk}_2.gif`
  10.             img.src = './img/' + imgname;
  11.         }
  12.         timer=setInterval(function () {
  13.             dong('q');
  14.         }, 200);
  15.         clearInterval(timer)
  16.         document.onkeydown = function () {
  17.             switch (event.keyCode) {
  18.                 case 65:
  19.                     left -= 10;
  20.                     dong('l')
  21.                     break;
  22.                 case 87:
  23.                     tops -= 10;
  24.                     dong('h')
  25.                     break;
  26.                 case 68:
  27.                     left += 10;
  28.                     dong('r')
  29.                     break;
  30.                 case 83:
  31.                     tops += 10;
  32.                     dong('q')
  33.                     break;
  34.             }
  35.             box.style.left = `${left}px`;
  36.             box.style.top = `${tops}px`;
  37.         }
复制代码
六、光标事件

案例: 小米官网搜索框
  1. *{
  2.             margin: 0;
  3.             padding: 0;
  4.                 }
  5.          input{
  6.             width: 300px;
  7.             height: 50px;
  8.             outline: 0;
  9.             border: 1px solid rgb(118, 118, 118);
  10.             margin-left:100px ;
  11.         }
  12.         ul{
  13.             width: 300px;
  14.             height: 0px;
  15.             border: 0px solid #ff6700;
  16.             margin-left: 100px;
  17.             overflow: hidden;
  18.             
  19.         }
  20.         li{
  21.             list-style: none;
  22.             line-height: 50px;
  23.             margin-left: 20px;
  24.             color: #666;
  25.         }
  26.     </style>
  27. </head>
  28. <body>
  29.     <input type="text" name="" id="inp">
  30.     <ul id="ul">
  31.         <li>小米家电</li>
  32.         <li>小米手机</li>
  33.         <li>红米手机</li>
  34.         <li>小米电脑</li>
  35.         <li>小米平板</li>
  36.         <li>小米手表</li>
  37.     </ul>
  38. </body>
复制代码
  1. var height = 0;
  2.     var timer = null;
  3.     inp.onfocus= function(){
  4.         inp.style.border = '1px solid #ff6700';
  5.         timer = setInterval(function(){
  6.             if(height >=300){
  7.                 clearInterval(timer)
  8.             }else{
  9.                 height+=10  
  10.             ul.style.height = height+'px';
  11.             ul.style.border = '1px solid #ff6700';
  12.             }
  13.             
  14.         },20)
  15.         
  16.     }
  17.     inp.onblur = function(){
  18.         inp.style.border = '1px solid rgb(118, 118, 118)';
  19.         ul.style.display = 'none'
  20.     }
复制代码
 七、窗口事件

八、表单事件

案例: 苏宁登录页面
当输入input框内时会出现×,点击取消内容,密码框出现小眼睛,点击睁开会实现密码框显示
  1. </head>
  2. <body>
  3.     <input type="text" name="" id="inp1" placeholder="请输入手机号/用户名/邮箱">X<br>
  4.     <input type="password" name="" id="inp2" placeholder="请输入密码"><img  src="https://www.cnblogs.com/./xiaomi.img/yanjing_yincang_o.png" alt="">X
复制代码
复制代码
九、单选框和复选框被选中

案例:简易购物车案例
  1. <table border='1' width="500">
  2.         <tr>
  3.             <td>选择</td>
  4.             <td>商品名称</td>
  5.             <td>商品数量</td>
  6.             <td>商品价格</td>
  7.             <td>总价</td>
  8.         </tr>
  9.         <tr>
  10.             <td>
  11.                 <input type="checkbox" />
  12.             </td>
  13.             <td>上衣</td>
  14.             <td>
  15.                 <button  >-</button>
  16.                 5
  17.                 <button >+</button>
  18.             </td>
  19.             <td >100</td>
  20.             <td ></td>
  21.         </tr>
  22.         <tr>
  23.             <td><input type="checkbox" /></td>
  24.             <td>裤子</td>
  25.             <td>
  26.                 <button  >-</button>
  27.                 2
  28.                 <button >+</button>
  29.             </td>
  30.             <td >200</td>
  31.             <td ></td>
  32.         </tr>
  33.         <tr>
  34.             <td><input type="checkbox" /></td>
  35.             <td>包包</td>
  36.             <td>
  37.                 <button >-</button>
  38.                 1
  39.                 <button >+</button>
  40.             </td>
  41.             <td >300</td>
  42.             <td ></td>
  43.         </tr>
  44.         <tr>
  45.             <td>全选:<input type="checkbox" id="checkAll"/></td>
  46.             <td colspan="4" id='totlePrice'>总价:0</td>
  47.         </tr>
  48.     </table>
复制代码
[code] // 1. 获取所有的复选框    var sel = document.querySelectorAll('.sel');    var prices = document.querySelectorAll('.price');    var onePrices = document.querySelectorAll('.prices');    var nums = document.querySelectorAll('.num');    var adds = document.querySelectorAll('.add');    var jians = document.querySelectorAll('.jian');    // 2. 给复选他添加事件    for(var i=0;i

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

上一篇: JavaScript事件

下一篇: JavaScript BOM对象

举报 回复 使用道具