純JS實(shí)現(xiàn)KeyboardNav(學(xué)習(xí)筆記)二
最終效果 KeyboardNav使用指南:這篇博客只是自己的學(xué)習(xí)筆記,供日后復(fù)習(xí)所用,沒有經(jīng)過精心排版,也沒有按邏輯編寫
這篇主要是添加css,優(yōu)化js編寫邏輯和代碼排版
GitHub項(xiàng)目源碼
預(yù)覽地址
左下角為網(wǎng)站的icon,"."代表網(wǎng)站無icon或未設(shè)置網(wǎng)站
按鍵盤上相應(yīng)的按鍵進(jìn)入對應(yīng)網(wǎng)站
鼠標(biāo)放上去可編輯并保存網(wǎng)站,除了初始網(wǎng)站,用戶編輯的網(wǎng)站存在本地cookies
清空cookies后保存在本地的網(wǎng)站將被清除,還原會初始狀態(tài)
CSS樣式美化按鍵
/*美化按鍵*/ /**/ /*}*/ .kbd{ margin: 0; padding: 0; border:0; width: 65px; height: 50px; /*線性漸變:0-70白色,70-100,fff-f3f3f3漸變*/ background: linear-gradient(to bottom, #fff 0%,#fff 70%,#f3f3f3 100%); border-radius: 7px; /*下方陰影,box-shadow5個最常用屬性,分別是左偏移,右偏移,模糊,擴(kuò)張,顏色*/ box-shadow: 0 5px 0 0 #D8DCDE; color: #767D81; font-family: Helvetical; vertical-align: top; /*用flex布局居中*/ display: inline-flex; align-items: center; justify-content: center; } .kbd_wrapper{ display: inline-block; vertical-align: top; /*這兩句一定要搭配使用!!!!*/ width: 65px; height: 55px; /*border:1px solid #3C3C3D;*/ border-radius: 7px; margin: 0 5px; /**/ box-shadow: 0 4px 3px 0 #3C3C3D,0 0 1px 0 #3C3C3D; /*下,一圈*/ }
一定要記住寫vertical-align: top;;避免inlineblock的bug
display: inline-block; vertical-align: top; /*這兩句一定要搭配使用!!!!*/CSS3中vh vw 單位的使用
參考:
張鑫旭時許相關(guān)單位vw vh
css3參考手冊-vh
vh:viewport height
vw:viewport width
“視區(qū)”所指為瀏覽器內(nèi)部的可視區(qū)域大小,即window.innerWidth/window.innerHeight大小,不包含任務(wù)欄標(biāo)題欄以及底部工具欄的瀏覽器區(qū)域大小。用flex布局絕對居中的三句話套路相對于視口的高度。視口被均分為100單位的vh
在父元素上寫
/*絕對居中父元素上的三行代碼*/ display: flex; justify-content: center; align-items: center;100%瀏覽器高度+絕對居中方法
100%瀏覽器高度方法:
html,body{ height: 100%; }
100%瀏覽器高度+絕對居中方法
main{ /*絕對居中父元素上的三行代碼*/ display: flex; justify-content: center; align-items: center; /*高度為瀏覽器高度*/ height: 100vh; }background
MDN
background: red url("./wall.jpg") no-repeat center center scroll;
red是當(dāng)圖片還沒有被加載出來的時候的背景顏色
縮放背景圖像-拉伸與覆蓋CSS 的 background-size 屬性能調(diào)整背景圖片的大小,從而替代了用原始大小顯示圖片的默認(rèn)行為。你可以隨意的縮放背景圖。
background-size:150px;
設(shè)置背景圖片大小寬高都為150px,并平鋪
特殊值: "contain" 和 "cover"
contain:鎖定比例的平鋪,高寬自適應(yīng)瀏覽器大小
例如:
cover:完全覆蓋,讓背景自適應(yīng)
使用谷歌開發(fā)者工具模擬慢網(wǎng)速的環(huán)境這時候背景圖片加載不出來,先會使用背景屬性中的紅色
favicon.ico如果想訪問icon就去網(wǎng)站根目錄下的favicon.ico,大部分網(wǎng)站適合.
imgxxxx = document.createElement("img"); if(hash[row[index2]]){//判斷這個是否存在 imgxxxx.src = "http://"+hash[row[index2]]+"/favicon.ico"; //加http協(xié)議,不然會認(rèn)為是路徑 } else{//undefined //如果src為空,就會進(jìn)入當(dāng)前的網(wǎng)址,導(dǎo)致圖片顯現(xiàn)不出來,所以給他一個存在的圖片 imgxxxx.src = "./point.png"; }
插入icon
效果:
onerror事件監(jiān)聽請求失敗事件
添加img get請求的onerror方法,當(dāng)出現(xiàn)個天使白,就將圖片變成.
imgxxxx.onerror = function (ev) { //onerror事件,監(jiān)聽img的get請求錯誤事件 ev.target.src = "./point.png"; //把沒有請求到的錯誤事件的src定為那個點(diǎn) };
編輯網(wǎng)址時,可以改變鍵盤里的圖標(biāo)
button2 = jfglkhj.target; img2 = button2.previousSibling; img2.src = "http://"+x+"/favicon.ico"; img2.onerror = function (ev) { ev.target.src = "./point.png"; };var聲明一個變量
如果不加var,那么變量就是全局變量.
優(yōu)化代碼給每一塊代碼添加函數(shù),將代碼由線性的變成樹
優(yōu)化代碼結(jié)構(gòu),將代碼由線性變?yōu)闃湫?這樣在代碼出錯的時候便于修改,能很快找到BUG的地方,只需要一層層的去找,無需看全部的代碼
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/113103.html
純JS實(shí)現(xiàn)KeyboardNav(學(xué)習(xí)筆記)二 這篇博客只是自己的學(xué)習(xí)筆記,供日后復(fù)習(xí)所用,沒有經(jīng)過精心排版,也沒有按邏輯編寫 這篇主要是添加css,優(yōu)化js編寫邏輯和代碼排版 GitHub項(xiàng)目源碼 預(yù)覽地址 最終效果 showImg(https://sfault-image.b0.upaiyun.com/202/564/2025649432-5adb193d75ef2_articlex); ...
摘要:取正值時,陰影擴(kuò)大取負(fù)值時,陰影收縮。默認(rèn)為,此時陰影與元素同樣大。如果沒有指定,則由瀏覽器決定通常是的值,不過目前取透明。 純JS實(shí)現(xiàn)KeyboardNav(學(xué)習(xí)筆記)一 這篇博客只是自己的學(xué)習(xí)筆記,供日后復(fù)習(xí)所用,沒有經(jīng)過精心排版,也沒有按邏輯編寫 GitHub項(xiàng)目源碼 預(yù)覽地址 最終效果 showImg(https://sfault-image.b0.upaiyun.com/...
摘要:取正值時,陰影擴(kuò)大取負(fù)值時,陰影收縮。默認(rèn)為,此時陰影與元素同樣大。如果沒有指定,則由瀏覽器決定通常是的值,不過目前取透明。 純JS實(shí)現(xiàn)KeyboardNav(學(xué)習(xí)筆記)一 這篇博客只是自己的學(xué)習(xí)筆記,供日后復(fù)習(xí)所用,沒有經(jīng)過精心排版,也沒有按邏輯編寫 GitHub項(xiàng)目源碼 預(yù)覽地址 最終效果 showImg(https://sfault-image.b0.upaiyun.com/...
摘要:函數(shù)式編程,一看這個詞,簡直就是學(xué)院派的典范。所以這期周刊,我們就重點(diǎn)引入的函數(shù)式編程,淺入淺出,一窺函數(shù)式編程的思想,可能讓你對編程語言的理解更加融會貫通一些。但從根本上來說,函數(shù)式編程就是關(guān)于如使用通用的可復(fù)用函數(shù)進(jìn)行組合編程。 showImg(https://segmentfault.com/img/bVGQuc); 函數(shù)式編程(Functional Programming),一...
閱讀 2075·2021-11-24 09:39
閱讀 790·2021-09-30 09:48
閱讀 982·2021-09-22 15:29
閱讀 2419·2019-08-30 14:17
閱讀 1892·2019-08-30 13:50
閱讀 1346·2019-08-30 13:47
閱讀 986·2019-08-30 13:19
閱讀 3425·2019-08-29 16:43