摘要:取正值時(shí),陰影擴(kuò)大取負(fù)值時(shí),陰影收縮。默認(rèn)為,此時(shí)陰影與元素同樣大。如果沒有指定,則由瀏覽器決定通常是的值,不過目前取透明。
純JS實(shí)現(xiàn)KeyboardNav(學(xué)習(xí)筆記)一
最終效果 KeyboardNav使用指南:這篇博客只是自己的學(xué)習(xí)筆記,供日后復(fù)習(xí)所用,沒有經(jīng)過精心排版,也沒有按邏輯編寫
GitHub項(xiàng)目源碼
預(yù)覽地址
左下角為網(wǎng)站的icon,"."代表網(wǎng)站無icon或未設(shè)置網(wǎng)站
按鍵盤上相應(yīng)的按鍵進(jìn)入對(duì)應(yīng)網(wǎng)站
鼠標(biāo)放上去可編輯并保存網(wǎng)站,除了初始網(wǎng)站,用戶編輯的網(wǎng)站存在本地cookies
清空cookies后保存在本地的網(wǎng)站將被清除,還原會(huì)初始狀態(tài)
數(shù)據(jù)結(jié)構(gòu)的使用哈希,數(shù)組
做出來導(dǎo)航頁面
實(shí)際上數(shù)組就是hash
數(shù)組帶方括號(hào)其實(shí)是hash的一種簡寫.
且數(shù)組是對(duì)象.
JS錯(cuò)誤:沒有被處理的 語法錯(cuò)誤 :不期待的字符串]
意思就是這里不應(yīng)該有字符串]
語法錯(cuò)誤
text-transform: uppercase; /*文本小寫變大寫*/
#mainxxxx{ display: inline-block; } main{ text-align: center; } /*mainxxx這個(gè)div居中*/
#mainxxxx>div:nth-child(2){ margin-left: 1em; }
#mainxxxx>div:nth-child(2)代表mainxxxx的名為div的第二個(gè)子元素.
定位kbd里面的button,并添加hover
kbd>button{ position: absolute; right: 0; bottom: 0; display: none; /*絕對(duì)定位到右下角*/ } kbd:hover>button{ display: inline-block; /*鼠標(biāo)浮到kbd上才出現(xiàn)*/ }box-shadow使用指南
inset
默認(rèn)陰影在邊框外。
使用inset后,陰影在邊框內(nèi)(即使是透明邊框),背景之上內(nèi)容之下。
這是頭兩個(gè)
如果兩者都是0,那么陰影位于元素后面。這時(shí)如果設(shè)置了
這是第三個(gè)
這是第四個(gè)
相關(guān)事項(xiàng)查看
最常用的是后五個(gè)值,例子:
/* offset-x | offset-y | color */ box-shadow: 60px -16px teal; /* offset-x | offset-y | blur-radius | color */ box-shadow: 10px 5px 5px black; /* offset-x | offset-y | blur-radius | spread-radius | color */ box-shadow: 2px 2px 2px 1px rgba(0, 0, 0, 0.2); /* inset | offset-x | offset-y | color */ box-shadow: inset 5em 1em gold; /* Any number of shadows, separated by commas */ box-shadow: 3px 3px red, -1em 0 0.4em olive;循環(huán)遍歷二元數(shù)組
//遍歷keys,生成kbd標(biāo)簽 var index = 0; while (index< keys["length"]){ var divxxxx = document.createElement("div"); mainxxxx.appendChild(divxxxx); row = keys[index]; index2 = 0; while (index2鍵盤監(jiān)聽事件
這個(gè)hash容納你所需要的所有細(xì)節(jié):
例如altkey可以看出你再按m的時(shí)候是否同時(shí)按了alt//監(jiān)聽鍵盤被按事件 document.onkeypress = function (sjdhfakdhjlsdka) { //sjdhfakdhjlsdka這個(gè)參數(shù) 包含你想要知道的所有信息,是一個(gè)hash key = sjdhfakdhjlsdka["key"];//得到用戶的鍵 website = hash[key];//獲取網(wǎng)站地址 // location.href = "http://"+website;//將鍵變成新的網(wǎng)站的地址 //location.href當(dāng)前地址欄.地址 // window.open("http://"+website,"_blank"); //window.open 窗口.打開 "_blank"新窗口打開. }button編輯hash(event的target)//每一個(gè)kbd里面加入button buttonxx = document.createElement("button"); buttonxx.textContent = "編輯"; // 每一個(gè)button的id都是row[index2],即kbd里面的內(nèi)容,以便區(qū)分 buttonxx.id = row[index2]; //添加button點(diǎn)擊事件 buttonxx.onclick = function (jfglkhj) { //☆☆☆☆這里不能用this,也不能用buttonxx,因?yàn)閎uttonxx只是一個(gè)容器,每一次循環(huán),里面放的東西都不一樣 // 最后他里面放的東西是最后那個(gè)createElement("button").所以不行 //例如 // console.log(buttonxx); // 不管按那個(gè)鍵,所有的打印出來的都是最后一個(gè)button //解決方法:使用 jfglkhj.target ,指的就是當(dāng)前完整元素. // 例如: // console.log(jfglkhj); //console.log(jfglkhj.target); // console.log(jfglkhj.target.id); key = jfglkhj.target.id;//比如說v //或者jfglkhj["target"]["id"]; x = prompt("給我一個(gè)網(wǎng)址");//比如說mtt.com hash[key] = x;//賦值 }; kbdxxxx.appendChild(buttonxx);如果使用buttonxx
使用console.log(jfglkhj.target);
console.log(jfglkhj.target.id);
localStorage初步理解沒有辦法讓js變量在下一個(gè)頁面出現(xiàn),無法改變js源代碼.只能把hash這個(gè)變量存到j(luò)s之外的地方.
問題解決思路:
每次變更hash就找一個(gè)地方備份,下次刷新,就覆蓋原來的hash一變就存,一刷新就覆蓋.
查看localStorage
localStorage,只要編輯了,我就存x = prompt("給我一個(gè)網(wǎng)址");//比如說mtt.com hash[key] = x;//賦值 // 問題:刷新之后編輯的網(wǎng)址沒有了 // 解決方法:使用localStorage,只要變就備份,只要刷新就覆蓋 //如果hash變更,只要編輯了,我就存 localStorage.setItem("zzz",JSON.stringify(hash));//JSON.stringify(hash)把hash變成字符串,存到zzz變量里備份 //上面這句代碼的作用:localStorage里有很多桶,吧hash存到zzz這個(gè)桶里 //每一次編輯,就把新的hash存到 瀏覽器里 //然后把這個(gè)瀏覽器里的hash覆蓋原來的就可以了 //熟悉原理:一變更就存檔上面是備份hash代碼
//把localStorage里hash,zzz拿出來 var hashINLocalStorage = JSON.parse(localStorage.getItem("zzz")|| "null"); if(hashINLocalStorage){ //如果hashINLocalStorage不為空,第二次刷新就不為空了. hash = hashINLocalStorage;//覆蓋hash }上面是覆蓋代碼
位置:
經(jīng)測(cè)試,緩存清空localStorage就沒有了
其他 程序員評(píng)分與努力程度的關(guān)系
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/52214.html
摘要:取正值時(shí),陰影擴(kuò)大取負(fù)值時(shí),陰影收縮。默認(rèn)為,此時(shí)陰影與元素同樣大。如果沒有指定,則由瀏覽器決定通常是的值,不過目前取透明。 純JS實(shí)現(xiàn)KeyboardNav(學(xué)習(xí)筆記)一 這篇博客只是自己的學(xué)習(xí)筆記,供日后復(fù)習(xí)所用,沒有經(jīng)過精心排版,也沒有按邏輯編寫 GitHub項(xiàng)目源碼 預(yù)覽地址 最終效果 showImg(https://sfault-image.b0.upaiyun.com/...
純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); ...
純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); ...
摘要:彩票項(xiàng)目實(shí)戰(zhàn)學(xué)習(xí)記錄一完整走了一遍課程,覺得還不錯(cuò)。支持正版人人有責(zé)零基礎(chǔ)教學(xué)解析彩票項(xiàng)目下面是項(xiàng)目課程的目錄路線一個(gè)項(xiàng)目分為三部分業(yè)務(wù)邏輯,自動(dòng)構(gòu)建系統(tǒng),模擬數(shù)據(jù)和真實(shí)數(shù)據(jù)接口處理。 彩票項(xiàng)目實(shí)戰(zhàn)學(xué)習(xí)記錄(一) 完整走了一遍課程,覺得還不錯(cuò)。 總結(jié): es6的知識(shí)點(diǎn)說得還算清楚,主要是為了了解和使用,不是深究,所以淺嘗即止即可,所以覺得還不錯(cuò)。 完整還原了項(xiàng)目開發(fā)的代碼設(shè)計(jì)和開發(fā)過...
閱讀 2538·2021-10-12 10:12
閱讀 1720·2019-08-30 15:52
閱讀 2454·2019-08-30 13:04
閱讀 1741·2019-08-29 18:33
閱讀 967·2019-08-29 16:28
閱讀 454·2019-08-29 12:33
閱讀 2062·2019-08-26 13:33
閱讀 2366·2019-08-26 11:36