JavaScript与HTML之间的交互式通过事件实现的
DOM事件包括:
鼠标事件、键盘事件、框架/对象事件、表单事件、剪贴板事件、打印事件、拖动事件、多媒体事件、动画事件、过渡事件、其他事件。
我们用的较多的事件就是:鼠标事件、键盘事件、框架/对象事件和表单事件。

1.鼠标事件

  1. onclick //当用户点击某个对象时调用的事件句柄。
  2. onfocus //获取焦点
  3. onblur // 遗失焦点
  4. onmouseover //鼠标移到某元素之上触发
  5. onmouseout //鼠标从某元素移开触发
  6. onload //页面加载时触发
  7. onchange //域的内容改变时发生
  8. onsubmit //表单中的确认按钮被点击时发生
  9. //有事件一定有对应一个处理结果,用函数表示
  10. onresize//浏览器的尺寸发生改变
  11. onscroll //窗口滚动
  12. onchange事件支持的标签input,select,textarea

1.1获取焦点,遗失焦点

  1. onfocus// 获取焦点
  2. onblur // 遗失焦点
  1. <input id="app" type="text">
  2. <script>
  3. /*
  4. onfocus 获取焦点
  5. onblur 遗失焦点
  6. */
  7. var app = document.getElementById("app");
  8. app.onfocus = function(){
  9. this.style.backgroundColor = "red"
  10. }
  11. app.onblur = function(){
  12. this.style.backgroundColor = "yellow"
  13. }
  14. </script>

1.2 onmouseover 和 onmouseout

  1. onmouseover //鼠标悬停在元素上的时候触发
  2. onmouseout //鼠标移开的时候触发
  1. <p id="p">hello world</p>
  2. <script>
  3. /*
  4. mouseover 鼠标悬停在元素上的时候触发
  5. mouseout 鼠标移开的时候触发
  6. */
  7. var p = document.getElementById("p");
  8. p.onmouseover = function(){
  9. this.style.background = "red" //鼠标停留为红色
  10. }
  11. p.onmouseout = function(){
  12. this.style.background = "green"//鼠标移开为绿色
  13. }
  14. </script>

1.3 onload : 页面加载完触发

  1. <p id="p">hello</p>
  2. /* 页面加载完毕之后才会触发 */
  3. window.onload = function () {
  4. var p = document.getElementById("p");
  5. p.onclick = function () {
  6. console.log("hello world")
  7. }
  8. }

1.4 onsubmit :表单中的确认按钮被点击时发生

  1. <form id="form" onsubmit="alert(1)" >
  2. <p>
  3. 用户名: <input type="text" name="user">
  4. </p>
  5. <p>
  6. 密码: <input type="password" name="pwd">
  7. </p>
  8. <input type="submit" id="input">
  9. </form>

2.键盘事件

  1. onkeydown:用户按下一个键盘按键时发生
  2. onkeypress:在键盘按键按下并释放一个键时发生
  3. onkeyup:在键盘按键松开时发生
  4. keyCode:返回onkeypressonkeydownonkeyup事件触发的键的值的字符代码,或键的代码

2.1 onkeydown

  1. <p>还可以输入<em id="em" style="color:red">0</em>/30</p>
  2. <textarea id="txt" cols="30" rows="10"></textarea>
  3. <script>
  4. var txt = document.getElementById("txt");
  5. var em = document.getElementById("em")
  6. txt.onkeydown = function(){
  7. var length = this.value.length;
  8. if(length<=30){
  9. em.innerHTML = this.value.length;
  10. }else{
  11. alert("只能输入30个字符")
  12. }
  13. }
  14. </script>

2.2 onkeypress , onkeyup

  1. <input type="text" id = "input">
  2. <script>
  3. /*
  4. event.key 获取按下键盘对于的值
  5. event.keyCode 13回车
  6. R 82
  7. */
  8. var input = document.getElementById("input");
  9. input.onkeydown = function(event){
  10. console.log(event.keyCode)
  11. if(event.keyCode == 82){
  12. console.log("放下")
  13. }
  14. }
  15. input.onkeypress = function(){
  16. console.log("press")
  17. }
  18. input.onkeyup = function(){
  19. console.log("放开")
  20. }
  21. </script>

3.内联事件

  1. <button id="btn" data-aid="123456" onclick="go(event)">btn</button>
  2. <script>
  3. /*
  4. 定义data-aid="123456"
  5. 获取自定义属性值 event.target.dataset.aid
  6. */
  7. function go(event){
  8. console.log("hello world");
  9. console.log(event.target.dataset.aid)
  10. }
  11. </script>