[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>
~~~
- JavaScript介紹
- js基本語法
- 調試方法
- 標識符
- 數據類型(基本,引用)
- 基本數據類型
- 引用數據類型
- 嚴格模式.
- 全局變量和局部變量
- DOM 節點
- DOM 改變元素內容(樣式 內容)
- 節點改變元素內容(通過父子節點找到元素然后操作)
- 添加元素
- 設置 移除 屬性
- DOM下的事件
- 知識點整理
- 異步
- Ajax
- this指向問題
- 設備類型檢測(手機 平板 電腦)
- 函數
- 函數的參數
- 重載
- 數據類型
- 構造函數
- 返回上一個網頁
- 數組 (重點)
- 增加數組內容
- 刪除數組元素
- 復制數組
- 修改數組元素(功能強大實現 增 刪 改)
- 數組元素查詢
- 數組遍歷
- 最值
- 展開語法
- join
- 排序問題
- 求和
- 顛倒數組
- 判斷是不是一個數組
- 二維數組
- 數組和字符串之間轉換
- 數組去重
- 將jquery對象轉為javascript對象
- 元素偏移量
- 獲取一個元素距離頂部的距離
- 可視區域寬高
- 布局視口 (移動設備)
- 文檔碎片
- 表格中的 thead tbody
- 獲取元素寬度
- 滾動區域寬高
- div滾動條設置
- 使用 offsetWidth 設置父元素寬度和子元素寬度之和一樣
- 字符串的方法
- js功能實現
- 點擊顯示 隱藏
- 點擊變色 兄弟元素隱藏.
- 點擊顯示隱藏區域.
- 兼容性問題.
- 選擇按鈕,
- 獲取外部樣式
- 點擊彈出下標
- 通過屬性改變img 的src
- 小米登錄 es6實現js
- try catch
- 小米登錄es5實現js
- js實現導航欄點擊加載多個頁面
- js實現網頁之間的跳轉和在指定div加載頁面
- iframe 高度實現自適應
- js 獲取滾動條距離頂端的距離
- jQuery animate() 方法 動畫效果
- fade(js實現遮罩層漸變色)
- js輪播實現
- 超哥輪播js
- 輪播動畫原理
- 數組實現瀑布流
- 電子表計時器date
- 從豆瓣接口上取數據實現搜索功能(重點!!!!)
- 封裝
- 不使用js-ajax 使用VueResource實現數據請求
- 需要常看的知識點
- 移動端響應布局rem
- rem+vw
- 原型
- JS的模塊化如何解決
- ES5和ES6模塊化寫法
- js內置對象
- 結構賦值es6
- 字符串模板 分割字符串
- 談基本數據類型中的方法(本不帶有方法)
- Math
- date
- 正則
- 備選字符集
- 連號的備選字符集
- replace() 查找替換(過濾)
- 量詞
- 不確定的數量
- search找下標
- test()檢驗是否包含正則表達式
- 實例
- 驗證電話號碼
- 郵箱驗證
- 將指定內容過濾(天貓 淘寶)
- 預定義字符集(簡化)
- 嚴格匹配 ^ $
- Ajax
- http get post
- $.get()和$.post()詳解
- jquery-ajax 數據請求
- 使用Vue Ajax在網頁中渲染數據
- axios向服務器端get,post數據(重點)
- 跨域
- 原生Ajax
- 原理步驟 json解析字符串
- 多態
- js中的面向對象
- js中的類和繼承
- 原型和原型鏈
- 參數表達式
- 字符串中常用的方法
- mock.js
- scrollReveal 滾動顯示
- Node.js模塊里exports與module.exports的區別