🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
[TOC] ### 1. 查看方法体(整个函数) ~~~ <script> function test(){ console.log(1); } document.body.innerHTML = test; </script> ~~~ ### 2. onfocus-->获取焦点 onblur-->失去焦点 ~~~ 列1 <input type="text" id="txt"> <script> var txt = document.getElementById("txt"); txt.onfocus = function(){ this.style.background = "red" } txt.onblur = function(){ this.style.background = "green"; } </script> 列2 简书搜索框 <script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.js"></script> <input type="text" id="txt"> <script> $("#txt").focus(function(){ $(this).animate({width:"300px"},1000) }) $("#txt").blur(function(){ $(this).animate({width:"200px"},1000) }) </script> ~~~ ### 3. 内联事件 ~~~ <p onclick="go()">hello world</p> <script> function go(){ alert(1); } </script> ~~~ ### 4. onmouseover--鼠标移入 onmouseout--鼠标移除 ~~~ <link href="https://cdn.bootcss.com/animate.css/3.5.2/animate.css" rel="stylesheet"> <p id="test" class="animated">hello world</p> <script> var test = document.getElementById("test"); test.onmouseover = function(){ this.classList.add("shake"); } test.onmouseout = function(){ this.classList.remove("shake"); } </script> ~~~ ### 5. vue ~~~ <script src="https://cdn.bootcss.com/vue/2.5.17-beta.0/vue.js"></script> <div id="test" @click="handleClick"> {{msg}} </div> <script> new Vue({ el:"#test", data:{ msg:"hello" }, methods:{ handleClick:function(){ alert(1); } } }) </script> ~~~ ### 6. 窗口加载完毕 ~~~ 通用的页面加载js有四种方式: 1.window.onload = function(){}; —-js 2.$(window).load(function(){});——Jquery 3.$(document).ready(function(){});–Jquery 4.$(function(){});———————Jquery 其中1和2为同一种,3和4为同一种 1、2表示:页面全部加载完成(引用文件,图片)在加载内部函数,且只能执行一个(当文件由多个onload或者load,只加载最后一个)。 3、4在window.onload执行前执行的,在DOM加载完毕后,页面全部内容(如图片等)完全加载完毕前被执行。而window.onload会在页面资源全部加载完毕后才会执行。 PS: DOM文档加载步骤: 1.解析HTML结构 2.加载外部的脚本和样式文件 3.解析并执行脚本代码 4.执行$(function(){})内对应代码 5.加载图片等二进制资源 6.页面加载完毕,执行window.onload <script> // $(document).ready( // ) window.onload = function(){ } 判断页面是否加载完毕 if(document.readyState == "complete"){ //coding } </script> ~~~ ### 7. 1 onchange 输入框的内容发生改变时触发 ~~~ <input type="text" id="txt"> <script> /* onchange 输入框的内容发生改变时触发 input输入框有value属性,可以读写 */ var txt = document.getElementById("txt"); txt.onchange= function(){ this.value = "change" } </script> ~~~ ### 8. onsubmit事件 ~~~ <form id="submit"> <p><input type="text" id="user"></p> <input type="submit" > </form> <script> // 当表单的submit按钮被点击的时候,表单会触发onsubmit事件 var submit = document.getElementById("submit"); var user = document.getElementById("user"); submit.onsubmit = function(event){ if(user.value=="123"){ window.location.href = "https://www.baidu.com"; } event.preventDefault(); } </script> ~~~ ### 9. event.preventDefault(); ~~~ <a href="https://www.baidu.com" id="test">hello world</a> <script> /* 场景 a,form 阻止默认行为 return false event.preventDefault(); */ var a = document.getElementById("test"); // 在ie9以下event事件作为window的属性 winddow.event() // chrome,event作为事件的参数 a.onclick = function(event){ try{ //chrome event = event; }catch(err){ //ie9以下 event = window.event(); } window.location.href="https://www.sogou.com/"; // return false; event.preventDefault(); } </script> ~~~ ### 10. onresize ~~~ <script> // onresize-->当浏览器的窗口大小发生改变的时候触发 // window.innerWidth-->获取浏览器窗口的width window.onresize= function(){ alert(window.innerWidth) } </script> ~~~ ### 11. onscroll ~~~ <script> /* onscroll-->窗口滚动的时候触发 document.documentElement.scrollTop滚动条距离顶部的高度 */ window.onscroll = function(){ // var height = document.documentElement.scrollTop; var height = window.scrollY; console.log(height); } </script> ~~~ ### 12. 获取 窗口宽度 和 距离顶部高度 的方法 ~~~ window.innerWidth-->获取浏览器窗口的width 获取浏览器窗口的距离顶部高度 var height = document.documentElement.scrollTop; var height = window.scrollY; ~~~ ### 13. onkeydown ~~~ <script> /* onkeydown-->用户按下键盘上的一个键的时候发生 keyCode-->键盘对应的编码 */ document.onkeydown = function(event){ alert(event.keyCode); } </script> ~~~ ### 14. 事件冒泡 ~~~ <div id="parent"> parent <div id="child">child</div> </div> <script> // 当子元素触发一个事件的时候,倘若父元素也有相同的事件,父元素的事件也会触发 var parent = document.getElementById("parent"); var child = document.getElementById("child"); parent.onclick = function(){ alert("parent"); } child.onclick = function(event){ alert("child"); // 阻止事件冒泡 event.stopPropagation(); } </script> ~~~ ### 15. confirm("msg") 弹出框 确定 取消按钮 ~~~ <button id="btn">你是否想剁手</button> <script> // window.confirm("msg")-->boolean var btn = document.getElementById("btn"); btn.onclick = function(){ var value = window.confirm("你确定要剁手吗"); if(value){ window.location.href = "https://www.taobao.com" }else{ window.location.href="http://www.hudazx.cn" } } </script> ~~~ ### 16. prompt 友好的提示 ~~~ <script> var value = window.prompt("输入你的年龄"); if(value>18){ alert("能进网吧"); } </script> ~~~ ### 17. setInterval(func,time) 间隔一段的时间执行函数 ~~~ <button id="btn">点我</button> <script> /* setInterval(func,time) 间隔一段的时间执行函数 */ var btn = document.getElementById("btn"); btn.onclick = function(){ setInterval(go,1000) } function go(){ alert("请下载") } </script> ~~~ ### 18. clearInterval(name) 清除定时器 ~~~ <script> // num=0,max=10,每过一秒num++,当num>max清除定时器 //clearInterval(name) var num = 0; var max = 3; var timer; timer = setInterval(function () { if (num > max) { clearInterval(timer); } else { alert(num) num++ } }, 100) </script> ~~~ ### 19. setTimeout()-->间隔一定时间执行函数,并且只执行一次 ~~~ <script> // setTimeout()-->间隔一定时间执行函数,并且只执行一次 setTimeout(function(){ alert(1) },1000) </script> ~~~ ### 20. clearTimeout() 清除超时调用 ~~~ <script> // clearTimeout()-->清除超时调用 var num = 0; var max = 3; var timer; function go() { num++; alert(num); if (num > max) { clearTimeout(timer); } else { timer = setTimeout(go, 1000); } } go(); </script> ~~~