目錄javascript
瀏覽器 | 內核 |
---|---|
IE | trident |
chrome | blink |
火狐 | gecko |
Safari | webkit |
PS:「瀏覽器內核」也就是瀏覽器所採用的「渲染引擎」,渲染引擎決定了瀏覽器如何顯示網頁的內容以及頁面的格式信息。css
html全稱HyperText Mackeup Language,翻譯爲html
超文本標記語言前端
,它不是一種編程語言,是一種描述性的標記語言,用於描述超文本內容的顯示方式。好比字體、顏色、大小等。html5
做用:HTML是負責描述文檔語義的語言。java
注意:HTML語言不是一個編程語言(有編譯過程),而是一個標記語言(沒有編譯過程),HTML頁面直接由瀏覽器解析執行。python
# ctrl + / 註釋 <!DOCTYPE html> # html5的聲明。隨着版本的變化而變化 <html lang='en'> # 開始標記 <head> <meta charset='utf-8'> # 元信息, charset屬性,名值對,配置網站信息 <title>Title</title> # 標題,搜索引擎首先查找title <link rel='stylesheet' href='index.css'> # 連接css文件 <script src='index.js'></script> # 鏈接js文件,彈出框 </head> <body>正文</body> </html>
# 行內嵌css,style段獨立 <style> body{ backgroud-color:red; } </style>
# js文件 var a='warning'; alert(a);
# h1-h6 <h1>一級標題</h1> <h2>二級標題</h2> 若是是h7,則認爲是普通文本
# 段落標記, 表示一個空格 <p>\ \ 段落</p>
<a href='localhost' target='_self' style='text-decoration:none; color:red;' title='小圓圈'>哈哈哈</a> <h6 id='#top'> <h6> <a href='#top' target='_self' style='text-decoration:none; color:red;' title='小圓圈'>實現跳轉</a>
<img src='路徑' alt='校花' width='200'>
換行標籤<br> 分割線<hr> 特殊字符© © <u>下劃線</u> <strong>字體加粗</strong> <em>斜體</em> <i>斜體2</i>
type表示順序a,A,1,I,i,start='3'從3開始 <ol type="A" start="3"> <li>echo</li> <li>dean</li> <li>henry</li> </ol>
type還有circle,默認實體的circle <ul type="square" > <li>python</li> <li>linux</li> <li>golong</li> </ul>
<dl> <li>python</li> <li>linux</li> <li>golong</li> </dl>
<table border="1px" cellspacing="0" width="50px"> <tr> <th>id</th> <th>name</th> </tr> <tr> <td>1</td> <td>henry</td> </tr> <tr> <td>2</td> <td>echo</td> </tr> </table>
# <form action='域名:端口號' method='get/post'> </form> # action默認self, method默認get 文本輸入框/密碼輸入框/表單按鈕 表單控件 # 請求的方式 get(明文,網址最大2k byte) / post(密碼,密文提交使用post)
# 文本輸入框 # get:明文不安全、網址欄顯示且內容不能超過2k,key:value&key2:value # post:安全,提交任意內容 <!--form表單--> <form action="提交服務器地址" method="post" enctype="multipart/form-data"> <p id="username"> <input type="text" name="username" value=""> </p> <p> <!--密文顯示--> <input type="password" name="pwd" value=""> </p> <!--單選,給每一個name定一個相同的名字產生互斥效果--> <h3>單選</h3> <input type="radio" name="gender" checked> 男 <input type="radio" name="gender"> 女 <!--多選--> <h3>多選</h3> <p> <input type="checkbox" name="A" checked>A <input type="checkbox" name="B">B <input type="checkbox" name="C">C </p> <!--單選+多選--> <h3>單選+多選</h3> <p> <select name="hobby" id="" multiple> <option value="musics">音樂</option> <option value="reading"selected>閱讀</option> <option value="movies">電影</option> </select> </p> <!--時間選擇--> <h3>時間選擇</h3> <input type="datetime-local"> <!--多行文本--> <p><textarea name="" cols="30" rows="10"></textarea></p> <!--提交表單--> <h3>提交表單</h3> <p><input type="submit" value="登陸"></p> </form>
# 命名,id和class <head> <style type='text/css'> #top{ # id選擇器 height=40px, # 盒子高 line-height=40px, # 行高 background-color:#333 text-align:center; # 水平居中(left,right,center) } a{ text-decoration:none; color:#b0b0b0; font-size=14 } </style> </head> <body> <div id='top'> <div calss='top-l'>小米頂部</div> <a href='#'>小米商城</a> <span class='sep'>|</span> <a href='#'>loi</a> <span class='sep'>|</span> <a href='#'>MIUI</a> <div calss='shop'>shop</div> <div calss='user_login'></div> # 從右往左 </div> <div id='nav'>導航</div> <div id='bottom'>底部</div> </body>
<form action=''> <label for='username'>用戶名</label> <input type='text' id='username'> <label for='pwd'>用戶名</label> <input type='text' id='pwd'> </form>
<form actin='https://www.baidu.com/s'> <input type='text' name='wd'> <input type='submit' value='百度一下'> </form>
<div style='color:red;'> henry </div>
<body> <div id='box' style='color:red;'> henry </div> </body>
在head標籤內部書寫sytle <style> /*css代碼/ </style>
<head> <style> #box{ backgroud=greenyellow; } </style> <link href='css/index.css' rel='stylesheet'> </head> <body> <div id='box' style='color:red;'> henry </div> </body>
<link href='css/index.css' rel='stylesheet'>
<style> /*類選擇器*/ .box{ width=200px, height=200px, backgroud-color:yellow } /*類選擇器*/ .active{ border-radius:200px; border-radius:4px; /*圓角*/ } /*id選擇器*/ #box{ color=red; } /*標籤擇器*/ div{ border:1px solid #000; } a{ text-decoration:none; 或 text-decoration:underline; } input{ border:none; /*邊框線*/ outline:none; /*外線*/ } #box{ /*內容的寬高*/ width:200px; height:200px; backgroud:red; /*border到內容的距離*/ padding:50px; /*表示上下爲0,左右爲10*/ padding:0 10px; /*上、左右、下*/ padding:0 10 20; padding-left/right/top/bottom /*外邊距*/ margin-lfet:30px; border:1px solid; } </style> <div class='box active' id='box'></div> <div class='box'></div> <div class='box'></div> <form actin='https://www.baidu.com/s'> <input type='text' name='wd'> <input type='submit' value='百度一下'> </form>
<style> .box{ width=200px; height=200px; background-color:yellow; /*顯示行內*/ display:inline; } a{ width=100px; height=40px; backgroud-color:red; /*顯示塊*/ display:block; /*left,right,center*/ text-align:center; /*行高等於文本高,垂直居中*/ line-height=40px; /*underline、overline、line-through(del標籤)*/ text-decoration:none; color:#333333; } </style>
/*重製樣式*/ <style> p,ul,ol,body{ margin=0; padding=0; } input,textarea{ boder:none; outline=0; } </style>
div:將網站分割成獨立的邏輯區域 division 分割jquery
span: 小區域標籤,在不影響文本正常顯示的狀況下,單獨設置對應的樣式linux
<style> span.active{ font-weight:bold; } </style> <p> <span class='active'>央視網消息</span>(新聞聯播):北京人民大會堂親切會見出席第九屆世界華僑華人社團聯誼大會和中華海外聯誼會五屆一次理事大會的全體表明,表明黨中央、國務院向你們表示熱烈歡迎和衷心祝賀,向世界各地華僑華人致以誠摯問候。 </p>
選擇器的做用:選中標籤es6
width:內容的寬度 height:內容的高度 border:邊框 padding:內邊距 margin: 外邊距
<style> div{ width:200px; height: 60px; background-color: red; text-align:center; line-height: 60px; } </style> <div> wusir </div>
讓行高等於盒模型的高度實現垂直居中
使用text-align:center;實現文本水平居中
text-decoration: none; none;無線 underline:下劃線 overline:上劃線 line-through:刪除線
reset.css
html,body,p,ul,ol{ margin: 0; padding: 0; } /*通配符選擇器 */ *{ margin: 0; padding: 0; } a{ text-decoration: none; } input,textarea{ border: none; outline: none; }
color,text-xxx,font-xxx,line-height,letter-spacing,word-spacing
若是選中了標籤 數選擇器的數量 id class 標籤 誰大優先級越高 若是同樣大,後面優先級越大 若是沒有選中標籤,當前屬性是被繼承下來,他們的權重爲0,與選中的標籤沒有可比性 都是繼承來的,誰描述的近,就顯示誰的屬性(就近(選中的標籤越近)原則),若是描述的同樣近,繼續數選擇器的數量。 !important 它設置當前屬性的權重爲無限大,大不過行內樣式的優先級
1.能夠設置高度,若是不設置寬度,默認是父標籤的100%的寬度 2.獨佔一行 p div ul ol li h1~h6 table tr form
1.不能夠設置寬高 2.在一行內顯示 a span b strong em i
1.能夠設置寬高 2.在一行內顯示 input img
對於a標籤,若是想設置a標籤的樣式,要做用於a標籤上,對於繼承性來講,a標籤不起做用的
「愛恨準則」
LoVe HAte
/*LoVe HAte*/ /*a標籤沒有被訪問時候設置的屬性*/ a:link{ /*color: red;*/ } /*a標籤被訪問時候設置的屬性*/ a:visited{ color:yellow; } /*a標籤懸浮時設置的屬性*/ a:hover{ color: deeppink; } /*a標籤被摁住的時候設置的屬性*/ a:active{ color: deepskyblue; }
input[type='text']{ background-color: red; } input[type='checkbox']{ } input[type='submit']{ }
p::first-letter{ color: red; font-size: 20px; font-weight: bold; } p::before{ content:'@'; } /*解決浮動佈局經常使用的一種方法*/ p::after{ /*經過僞元素添加的內容爲行內元素*/ content:'$'; }
參考:https://book.apeland.cn/details/351/
margin:在水平方向上不會出現問題,垂直方向上會出現塌陷問題
先參考一下:https://book.apeland.cn/details/355/
明天再詳細講浮動
a:link{} 沒有被訪問過期a標籤的樣式 a:visited{} 訪問事後的 a:hover{} 懸浮時 a:active{} 摁住的時候
<style> p::after{ /*行內元素*/ content:'&', color:red; font-size: 20px; } </style> <p>wusir</p>
font-family:'宋體','楷體';
文字間距:letter-spacing 英文單詞間距:word-spacing
font-weight:lighter| normal | bold |bolder| 100~900 字體加粗 font-style:italic;/*斜體*/
text-decoration:none| underline | overline | line-through
px: 絕對單位 固定不變的尺寸 em和rem :相對單位 -------> 和font-size有關 em:相對於當前的盒子 rem:相對於根元素(html)
em 首行縮進text-indent: 2em;
text-align:left | center | right | justify(僅限於英文,兩端對齊)
盒子必須有寬度和高度,再設置margin: 0 auto; 讓文本水平居中: text-align:center; 讓文本垂直居中:line-height = height 文本垂直居中:vertical-align: middle;
外邊距合併,「塌陷」 儘可能避免出現塌陷問題,只要設置一個方向的margin
1.float浮動屬性 2.設置盒子的顯示方式 display:inline | inline-block;
1.脫離標準文檔流,不在頁面上佔位置 「脫標」 2.文字環繞 設置浮動屬性的初衷 3.「貼邊」 現象: 給盒子設置了浮動,會找浮動盒子的邊,若是找不到浮動盒子的邊,會貼到父元素的邊,若是找到了,就會貼到浮動盒子的邊上 4.收縮效果 有點像 一個塊級元素轉成行內塊
佈局方案
做用:實現元素並排
脫離了標準文檔流,不在頁面上佔位置
貼邊現象
收縮效果
給父元素添加固定高度 (不靈活,後期不易維護)
內牆法:給最後一個浮動元素的後面添加一個空的塊級標籤,而且設置該標籤的屬性爲clear:both; 問題:冗餘
僞元素清除法 推薦你們使用 .clearfix::after{ content:''; display: block; clear: both; /*visibility: hidden;*/ /*height: 0;*/ }
overflow:hidden; 經常使用 由於overflow:hidden;會造成BFC區域,造成BFC區域以後,內部有它的佈局規則 計算BFC的高度時,浮動元素也參與計算 可是當心overflow:hidden它本身的本意
position:static | relative | absolute | fixed; 靜態 相對 絕對 固定
特徵:
做用:
作「子絕父相」佈局方案的參考
參考點:
以原來的盒子爲參考點
參考點
脫標了,在頁面上不佔位置
絕對定位:脫標 以top描述,它的參考點是以body的(0,0)爲參考點 以bottom描述,它的參考點是以瀏覽器的左下角爲參考點
子元素:絕對定位 以最近的父輩元素的左上角爲參考點進行定位 設置相對定位【壓蓋,有坑,保留原來的位置】,不會脫標,不會有任何變化
1.脫標 2.壓蓋 3.子絕父相
1.脫離標準文檔劉 2.貼邊 3.收縮 4.文字環繞
浮動帶來問題:不去計算浮動元素的高度,致使撐不起父盒子的高度
1.給父盒子添加固定高度 2.內牆法:給最後一個浮動元素添加一個空的塊級標籤,設置該標籤的屬性爲clear:both; 3.僞元素清除 給父元素添加一個類 .clearfix::after{ content:'', display:block; clear:both } 4.overflow:hidden; BFC區域
overflow:hidden;超出部分隱藏 overflow:scroll;出現滾動條 清除浮動
position: static | relative | absolute | fixed
1.給一個標準文檔流下的盒子單純的設置相對定位,與普通的盒子沒有任何區別 2.top|bottom|left|right 參考點:以原來的位置爲參考點 應用:1.微調元素 2.作「子絕父相」
現象: 1.脫標 2.壓蓋現象 參考點: 是否有定位(相對定位,絕對定位,固定定位)的祖先盒子進行定位,若是沒有定位的祖先盒子,以body爲參考點 重要: 「子絕父相」
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <link rel="stylesheet" href="css/reset.css"> <!--<link rel="stylesheet" href="css/index.css">--> <style> .box{ width: 200px; height: 200px; background-color: #000; margin: 100px auto; position: relative; transition: all .2s linear; # 動畫特效 } .box:hover{ top: -2px; box-shadow: 0 0 20px red; # 陰影部分 } </style> </head> <body> <div class="box"> </div> </body> </html>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> #box{ width: 300px; height: 300px; background-color: red; /*border-radius: 50%;*/ border-radius: 50px; # 圓角 border: 3px solid blue; } #box:hover{ background-color: #000; } </style> </head> <body> <div id="box"></div> </body> </html>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> * { padding: 0; margin: 0; } body { color: #fff; } ul { list-style: none; } #box { width: 1226px; height: 100px; margin: 0 auto; background-color: #000; } #box ul { /*overflow: hidden;*/ padding: 12px 0 0 30px; /*width: 500px;*/ height: 88px; /*background-color: red;*/ } #box ul li { float: left; width: 60px; height: 58px; /*padding-top: 30px;*/ } #box ul li.active { width: 100px; height: 88px; background-color: green; position: relative; } #box ul li.active .box { position: absolute; width: 234px; height: 600px; background-color: rgba(0, 0, 0, .5); top: 88px; left: -30px; z-index: 80; } .clearfix:after { content: ''; clear: both; display: block; } .swiper { width: 100%; height: 460px; } .container { width: 1226px; position: relative; margin: 0 auto; } .swiper span { display: inline-block; width: 41px; height: 69px; background: url("icon-slides.png") no-repeat 0 0; position: absolute; margin-top: -34px; top: 50%; cursor: pointer; } .swiper span.prev { background-position: -83px 0; left: 234px; } .swiper span.next { background-position: -124px 0; right: 0; } .swiper span.prev:hover{ background-position: 0 0; } .swiper span.next:hover{ background-position: -42px 0; } </style> </head> <body> <div id="box"> <ul class="clearfix"> <li class="active"> <div class="box"></div> </li> <li>2</li> <li>3</li> <li>4</li> <li>5</li> <li>6</li> </ul> </div> <div class="swiper"> <div class="container"> <img src="xmad.jpg" alt="" width="1226"> <span class="prev"></span> <span class="next"></span> </div> </div> </body> </html>
要浮動一塊兒浮動,有浮動清除浮動,浮動帶來的好處:實現元素並排
1.脫標 2.固定不變 3.提升層級 參考點: 以瀏覽器的左上角爲參考點
只適用與定位的元素,z-index:auto;
z-index只應用在定位的元素,默認z-index:auto; z-index取值爲整數,數值越大,它的層級越高 若是元素設置了定位,沒有設置z-index,那麼誰寫在最後面的,表示誰的層級越高。(與標籤的結構有關係) 從父現象。一般佈局方案咱們採用子絕父相,比較的是父元素的z-index值,哪一個父元素的z-index值越大,表示子元素的層級越高。
/*設置背景圖*/ background-image: url("xiaohua.jpg"); background-repeat: no-repeat; /*調整背景圖的位置*/ background-position: -164px -106px;
border-radius 設置圓角或者圓
box-shadow: 水平距離 垂直距離 模糊程度 陰影顏色 inset
1.腦圖 主要
2.小米商城 主要
3.預習 : https://book.apeland.cn/details/358/
預習
判斷一個變量是否是undefined,用typeof函數,typeof函數主要是返回的是字符串,主要這麼幾種:"number"、"string"、"boolean"、"object"、"function"、"undefined" null==undefined ======> true null===undefined ======> false
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <!--行內js--> <p id="" class="" style="" onclick="console.log(2);">mjj</p> <!--內嵌--> <script type="text/javascript"> //js代碼 </script> <script type="text/javascript" src="js/index.js"></script> </body> </html>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <script> var a = 1; # 定義一個變量 a ++;//a+=1; console.log(a); var a = 4; // 先讓a的值賦值給c 再對a++ var c = a ++; # 先賦值,再加1,a+=1 console.log(c);//4 console.log(a);//5*/ var c = ++a; # 先a+=1, 再賦值 console.log(c);//5 console.log(a);//5 </script> </body> </html>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <script> var name = 'wusir', age = 28; var str = name + '今年是' + age + '歲了,快要結婚了,娶了個黑姑娘'; #字符串拼接1 console.log(str); // es6的模板字符串 `` var str2 = `${name}今年是${age}歲了,快要結婚了,娶了個黑姑娘`; #字符串拼接2 console.log(str2); </script> </body> </html>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <script> var arr = [1,'2','mjj']; //解釋器 遇到var聲明的變量 會把var聲明的變量提高到全局做用域下 var i; var c; for(i = 0;i < arr.length;i++){ console.log(arr[i]); } function fn(){ var d = 4; } // console.log(i,c); </script> </body> </html>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <script> var score = 100; if(score > 80){ console.log('能夠吃雞了'); }else if(){ console.log('在家呆着'); }else if{ }else if{} var weather = prompt('請輸入今天的天氣'); switch (weather) { # switch: 把輸入的值和case的值對比 case '晴天': console.log('能夠去打籃球'); break; case '下雨': console.log('能夠睡覺'); break; default: console.log('學習'); break; } // == === var a = 2; var b = '2'; console.log(a == b);//比較的是值 console.log(a === b); //比較是值和數據類型 </script> </body> </html>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <script> var arr = [8,9,0]; //1.初始化循環變量 2.循環條件 3.更新循環變量 for(var i = 0;i < arr.length; i++){ console.log(arr[i]); } // 1到100之間的數 // while var a = 1; while(a <= 100){ console.log(a); a+=1; } </script> </body> </html>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <script> function fn() { switch (arguments.length) { case 2: console.log('2個參數') break; case 3: console.log('3個參數') break; default: break; } } fn(2, 3); fn(2, 3, 4) </script> </body> </html>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <script> //1.字面量建立方式 var obj = {}; obj.name = 'mjj'; obj.fav = function(){ //obj console.log(this); } obj.fav(); //點語法 set 和get console.log(obj.name); //構造函數 var obj2 = new Object(); console.log(obj2); obj2.name = 'wusir'; /*console.log(this); function add(x,y) { console.log(this.name); console.log(x); console.log(y); } // console.dir(add); // add(); // add.call(obj,1,2); add.apply(obj,[1,2]); (function () { console.log(this); })()*/ class Person{ constructor(name,age){ //初始化 this.name = name; this.age = age; } fav(){ console.log(this.name); } showName(){ } } var p = new Person('mjj',18); p.fav(); </script> </body> </html>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <script> //1,判斷當前數組是否爲數組,返回值是true,則證實是數組 var num = 123; var arr = ['red','green','yellow']; console.log(Array.isArray(arr)); console.log(arr.toString());//red,green,yellow console.log(num.toString()); console.log(typeof num.toString()); console.log(arr.join('^')); console.log(arr.push('purple')); //返回了數組的最新的長度 console.log(arr); console.log(arr.pop());//返回刪除的內容 console.log(arr); //往數組的第一項上添加內容 console.log(arr.unshift('gray','black')); console.log(arr); console.log(arr.shift()); console.log(arr); var names = ['女神','wusir','太白']; // names.splice() //對數組進行添加,刪除,替換操做 //name.slice(1) //對數組進行分割 // for(var i = 0; i < names.length; i++){ // names[i] // } names.forEach(function (index,item) { console.log(index); console.log(item); }); function fn(a,b) { //arguments.length 代指的實參的個數 //arguments它不是一個數組,它被稱爲叫僞數組 console.log(arguments); for(var i = 0; i < arguments.length; i++){ console.log(arguments[i]); } } fn(2,3,4); console.log(fn.length);//形參的個數 var str = ' mjj ' </script> </body> </html>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <script> var date = new Date(); console.log(date); console.log(date.getDate()); console.log(date.getMonth()+1); console.log(date.getFullYear()); console.log(date.getDay()); console.log(date.getHours()); console.log(date.getMinutes()); console.log(date.getSeconds()); console.log(date.toLocaleString()); var weeks = ['星期天','星期一','星期二','星期三','星期四','星期五','星期六']; console.log(weeks[date.getDay()]); var day = weeks[date.getDay()]; document.write(`<a href="#">${day}</a>`); var a = 1 < 2 ? "yes": "no"; console.log(a); </script> </body> </html>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <h2 id="time"></h2> <script> var timeObj = document.getElementById('time'); console.log(time); function getNowTime() { var time = new Date(); var hour = time.getHours(); var minute = time.getMinutes(); var second = time.getSeconds(); var temp = "" + ((hour > 12) ? hour - 12 : hour); if (hour == 0) { temp = "12"; } temp += ((minute < 10) ? ":0" : ":") + minute; temp += ((second < 10) ? ":0" : ":") + second; temp += (hour >= 12) ? " P.M." : " A.M."; timeObj.innerText = temp; } setInterval(getNowTime, 20) </script> </body> </html>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <script> var name = 'mjj'; console.log(window); console.log(window.name); </script> </body> </html>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <script> var obj = {name:'mjj'}; function add() { console.log(this.name); } // add(); // add.call(obj); // add.apply(obj,[]); //求最大值和最小值 var values = [1,2,36,23,43,3,41]; var max = Math.max.apply(null,values); console.log(max); var a = 1.49999999; console.log(Math.ceil(a));//天花板函數 console.log(Math.floor(a))//地板函數 console.log(Math.round(a))//四捨五入 // 隨機數 console.log(Math.random()); // min~ max //0.113131313 function random(min,max) { return min+Math.floor(Math.random()*(max-min)) } console.log(random(100, 400)); // rgb(237,100,10) </script> </body> </html>
bom對象 dom對象
基本數據類型:number,string,boolean,undefined,null 引用數據類型:Array,Object,Function
switch(name){ case 'xxx': break; case 'xxx': break; default: break; } for(var i = 0; i < 10; i ++){ } 三元運算 1 > 3 ? '真的' : '假的';
&& 跟py的and || or ! not i++ == 比較的值的 === 比較的值和數據類型
slice() 切片,有一個參數,從當前位置切到最後,兩個參數,顧頭不顧尾 substring() substr() 若是有兩個參數,第二個參數表示切字符串的個數 拼接字符串 concat() 返回新的字符串 + es6的模板字符串 `` 插入變量用${變量名} //獲取索引 indexOf() lastIndexOf() //獲取字符 charAt() //獲取字符的ASCII碼 charCodeAt() //轉大寫 toUppercase() //轉小寫 tolowercase() typeof 校驗當前變量的數據類型 trim() 清除左右的空格
toString() join('*') concat() # 數組拼接 //棧方法 後進先出 push() # 壓棧 pop() # 出棧 //堆方法 先進先出 unshift() shift() splice(起始位置,刪除的個數,添加的元素); 對數組的增長,刪除,替換 slice() reverse() sort() #排序 【後面的元素,只和第一個元素對比】 //迭代方法 for forEach() 僅能在數組對象中使用 在函數中arguments 這個對象是僞數組,不能使用這個方法,只能用for循環遍歷
var obj = { name:'mjj', age:18 } obj['name'] obj['fav'] = function(){} obj.name obj.fav = function(){} function fn(name){ var obj = {}; obj[name] = 'mjj'; return obj; } fn('age') //遍歷對象 for(var key in obj){ obj[key] }
1.建立方法 (1)普通函數 function fn(){ } fn(); (2)函數表達式 var fn = function(){} (3) 自執行函數 ;(function(){ this指向 必定是指向window })() 全局做用域下,函數做用域,自執行函數都指向了window,函數做用域中this指向能夠發生改變,可使用call()或者apply() var obj = {name:'mjj'}; function fn(){ console.log(this.name); } fn();//是空值,由於函數內部this指向了window fn.call(obj)//此時函數內部的this指向了obj 做用: 解決冗餘性代碼,爲了封裝 構造函數 new Object(); new Array(); new String(); new Number(); //使用構造函數來建立對象 function Point(x, y) { this.x = x; this.y = y; } Point.prototype.toString = function () { return '(' + this.x + ', ' + this.y + ')'; }; var p = new Point(1, 2); //es6用class來建立對象 class Person{ constructor(x,y){ this.x = x; this.y = y } toString(){ } } var p = new Person();
var date = new Date(); date.getDate(); date.getMonth(); date.getDay(); date.getHours(); date.getMinutes(); date.getSeconds() date.toLocaleString() 2018/08/21 21:30:23
Math.ceil();向上取整 天花板函數 Math.floor();向下取整,地板函數 Math.round();標準的四捨五入 隨機數 Math.random(); 獲取0到1之間的數 function random(min,max){ return Math.floor(Math.random()*(max-min)) + min; }
1.數值轉字符串 toString(); 數字+空的字符串 2.字符串轉數值 parseInt() 轉整數 parseFloat() 轉浮點型 Number()
var a = NaN # not a number isNaN(a) Infinity 無限大的
Browser Object Model 瀏覽器對象模型
【bom相關的api】
一次性任務
var timer = setTimeout(callback,2000); clearTimeout(timer);
週期性循環
var timer = setInterval(callback,2000); # 異步 //清除定時器 關閉 clearInterval(timer);
標籤,div span p
document.getElementById(); #經過id獲取元素 document.getElementsByTagName(); # 經過標籤名獲取與元素 document.getElementsByClassName(); # 經過類名獲取與元素
樣式操做
style()
box.style.color box.style.backgroundColor box.style.width ....
setAttribute(name,value); # 設置屬性 getAttribute(name);
onclick() # 點擊時間 onmouseover() #鼠標通過 onmouseout() #鼠標離開
Math.ceil() 向上取整 Math.floor() 向下取整 Math.random() 隨機數 Math.round() 四捨五入取整
function fn(){ console.log(this);//this指向了window } fn.call(obj); fn.apply(obj)
基本數據類型:number,string,boolean,undefined,null 引用數據類型:Array,Object,Function,Date
D:document 文檔 O:object 對象 M:model 模型
var b = document.getElementById() document.getElementsByTagName() var a = document.getElementsByClassName('active') b.setAttribute();
設置樣式 obj.style 設置屬性 obj.setAttribute(name,value); obj.getAttribute(name); obj.className obj.title
var op = document.createElement('p'); box.appendChild(op); box.insertBefore(newNode,oldNode) box.removeChild(op);
onclick onmouseover onmouseout onchange 聚焦 onselect 選中 onsubmit onload
setTimeout(callback,毫秒) 一次性任務,延遲操做,異步 setInterval(callback,毫秒) 週期性循環任務 動畫 css transtion tranform
innerText 只設置文本 innerHTML 即設置文本,又渲染標籤 針對與表單控件 inputText.value = '123'; <input placeholder=「請輸入密碼」>
jQuery是一個快速,小巧,功能豐富的JavaScript庫。 它經過易於使用的API在大量瀏覽器中運行, 使得HTML文檔遍歷和操做,事件處理,動畫和Ajax變得更加簡單。經過多功能性和可擴展性的結合,jQuery改變了數百萬人編寫JavaScript的方式。 操做: 獲取節點元素對象,屬性操做,樣式操做,類名,節點的建立,刪除,添加,替換 jquery核心:write less,do more 1.1 jquery對象轉換js對象 $('button')[0] 1.2 js對象轉換jquery對象 $(js對象)
- 基礎選擇器 - 高級選擇器 - 屬性選擇器 - 基本過濾選擇器
$('.box') jquery對象 僞數組 $('#box')[0] jquery對象轉js節點對象
- 基礎選擇器 #id $("#box") .class $(".box") element $("div") - 高級選擇器 後代選擇器 $("div p") 選擇p和p的子代的全部標籤 子代選擇器 $("div>p") 和p平級的都選 組合選擇器 $("div,p") 交集選擇器 $("div.box")
$('input[type=submit]') 屬性選擇器 <input type="submit" value='提交'>
基本過濾選擇器: :eq() 選擇一個 索引從0開始 :first 獲取第一個 :last 獲取最後一個 :odd 獲取奇數 :even 獲取偶數 過濾的方法: .eq() 選擇一個 索引從0開始 .children() 獲取親兒子 .find() 獲取的後代 .parent() 獲取父級對象 .siblings() 獲取除它以外的兄弟元素
經過調用.css()方法 若是傳入一個參數,看一下這個參數若是是一個字符串表示獲取值,若是是對象,表示設置多少屬性值,若是是兩個參數,設置單個屬性值
addClass() removeClass() toggleClass()
attr(name,value);//設置屬性 removeAttr(name);//刪除屬性
- 普通動畫 show() hide() toggle() 切換【開關】 - 捲簾門動畫 slideDown() slideUp() slideToggle() 捲簾門切換【開關】 - 淡入淡出效果 fadeIn() fadeOut() fadeToggle() 淡入淡出切換 - 自定義動畫 .animate({params},speed,callback) #callback回調函數 # 做用:執行一組CSS屬性的自定義動畫。 第一個參數表示:要執行動畫的CSS屬性(必選) 第二個參數表示:執行動畫時長(可選) 第三個參數表示:動畫執行完後,當即執行的回調函數(可選)
attr() #獲取屬性(id,class),設置屬性(id,class) removeAttr() #移除屬性
<body> <div id="box"> <div id="child"></div> </div> <input type="text"> <script src="js/jquery.js" type="text/javascript" charset="utf-8"></script> <script type="text/javascript"> // mouseover 鼠標穿過父級元素和子元素都會調用方法 $('#box').mouseover(function(){ console.log('移入進來了'); $('#child').slideDown(1000); }) $('#box').mouseout(function(){ console.log('移除了'); $('#child').slideUp(1000); }) $('#box').mouseenter(function(){ console.log('進來了'); $('#child').stop().slideDown(1000); }) $('#box').mouseleave(function(){ console.log('離開了'); $('#child').stop().slideUp(1000); }) $('#box').hover(function(){ $('#child').stop().slideDown(1000); },function(){ $('#child').stop().slideUp(1000); }) //默認加載頁面聚焦行爲 $('input[type=text]').focus(); $('input[type=text]').focus(function(){ //聚焦 console.log('聚焦了'); }) $('input[type=text]').blur(function(){ //聚焦 console.log('失去焦點了'); }) $('input[type=text]').keydown(function(e){ console.log(e.keyCode); switch (e.keyCode){ case 8: $(this).val(' ') break; default: break; } }) </script> </body>
表單提交事件
增 刪 改 查
<script type="text/javascript"> $(function(){ // 獲取首頁的數據 $.ajax({ url:'https://api.apeland.cn/api/banner/', # 接口 methods:'get', success:function(res){ console.log(res); if(res.code === 0){ var cover = res.data[0].cover; var name = res.data[0].name; console.log(cover); $('#box').append(`<img src=${cover} alt=${name}>`) } }, error:function(err){ console.log(err); } }) }) </script>
jQuery插件庫 https://www.jq22.com/
H5新標籤 在05年被普遍使用 #音頻 <audio src="static/BEYOND%20-%20情人.mp3" controls=""></audio> #畫布 【作小遊戲】 <canvas id="" width="" height=""></canvas> #視頻 <video src="static/速度與激情7_bd.mp4" controls=""></video>