摘要:案例說明使用原生完成桌面操作級(jí)應(yīng)用,對于原生的掌握情況而言,是一個(gè)較為全面的綜合型案例。本次課從事件相關(guān)的功能入手,給大家?guī)碓敿?xì)的分享。
案例說明:
使用原生 JS 完成桌面操作級(jí)應(yīng)用,對于原生 JS 的掌握情況而言,是一個(gè)較為全面的綜合型案例。本次課從事件(event)相關(guān)的功能入手,給大家?guī)碓敿?xì)的分享。
案例相關(guān)知識(shí)點(diǎn)學(xué)習(xí)
原生DOM操作 >> https://study.miaov.com/study...
原生Event事件 >> https://study.miaov.com/study...
ES6相關(guān)語法 >> https://study.miaov.com/study...
案例思路流程
頁面基本結(jié)構(gòu)及樣式
html:
css:
創(chuàng)建文件夾
點(diǎn)擊 createBtn 時(shí),創(chuàng)建一個(gè)新的 .file 放入 #box 中
文件的鼠標(biāo)移入移出及選中操作
文件本身是動(dòng)態(tài)創(chuàng)建的,所以在頁面加載完成之后去添加事件的話頁面上并沒有相關(guān)元素,但是在文件創(chuàng)建之后在添加事件的話,就需要每次創(chuàng)建完都添加一次事件,為了提高程序的性能,這里我們使用事件代理,把事件統(tǒng)一代理在box上處理
鼠標(biāo)移入處理: 在鼠標(biāo)移入之后,判斷如果是 .file 就直接 改變 .file 的樣式,如果 .file 的子級(jí) 就先找到父級(jí) .file 然后再改變樣式
點(diǎn)擊改變選中狀態(tài): 點(diǎn)擊時(shí)判斷是否點(diǎn)擊的是 i 標(biāo)簽(模擬的復(fù)選框) 是的話,就切換選中狀態(tài)
鼠標(biāo)移出:跟鼠標(biāo)移入一樣先找到 .file ,然后找到 .file 下的復(fù)選框,判斷復(fù)選框是否選中,沒有選中時(shí),還原 .file 樣式
文件的全選和全不選
全選復(fù)選框的狀態(tài)發(fā)生改變時(shí),根據(jù)復(fù)選框狀態(tài)選中或不選中文件
創(chuàng)建判斷是否全選的的函數(shù),在 .file 的 checked 狀態(tài)改變時(shí),調(diào)用這個(gè)函數(shù),判斷當(dāng)前是否全選
每次創(chuàng)建文件時(shí),肯定不在是全選了,所以在創(chuàng)建文件后,取消全選狀態(tài)
文件夾框選操作
鼠標(biāo)按下時(shí),創(chuàng)建 selection,鼠標(biāo)移動(dòng)時(shí)改變 selection 大小,鼠標(biāo)抬起時(shí)刪除 selection
碰撞檢測:獲取兩個(gè)元素的可視區(qū)坐標(biāo),對比坐標(biāo),排除所有不可能碰撞的情況剩下的就是碰撞
鼠標(biāo)在移動(dòng)的時(shí)候,找到所有 file 依次和 selection 進(jìn)行碰撞檢測,如果碰撞就添加選中狀態(tài),否則取消選中狀態(tài),然后調(diào)用 setCheckedAll() 方法判斷是否全選
總結(jié)
按照上邊步驟我們就可以把網(wǎng)盤的這些基本功能給實(shí)現(xiàn)出來,當(dāng)然在這里邊有些點(diǎn)我們可以把它總結(jié)出來,也都是常用的一些思路或處理方式
1)事件委托的使用,事件委托可以極大的提高我們的代碼性能,尤其是在一些需要頻繁更新的視圖上, 事件委托不只可以提高性能,也可以精簡我們的代碼邏輯
2)碰撞檢測的思路,碰撞檢測這里我們使用了一種排除思路,排除了所有不可能之后,唯一剩余的就碰撞的情況
3)拖拽的思路,用當(dāng)前位置 - 初始位置得到手指移動(dòng)距離,另外拖拽在 PC 端最好加給最頂層,否則滑動(dòng)過快,容易甩掉元素
更多素材在這里喲~~https://study.miaov.com/bbs?c...
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/113987.html
摘要:那今天就來談?wù)劙俣染W(wǎng)盤和阿里云盤到底相互之間的競爭,是不是會(huì)對百度網(wǎng)盤有所影響。而且目前阿里云盤還沒有真正納入阿里云體系下。畢竟百度網(wǎng)盤通過這么多年的發(fā)展,擁有的數(shù)據(jù)量和用戶量,短期還是不可能被替代的。實(shí)際上關(guān)于互聯(lián)網(wǎng)網(wǎng)盤、云盤的競爭一直沒有停止過,早年我們知道的115、百度、360等平臺(tái)都有相繼在個(gè)人和企業(yè)云盤市場競爭,最終能被個(gè)人接納且一直發(fā)展較好的百度網(wǎng)盤。而且這幾年的發(fā)展我們很多個(gè)人...
摘要:馬太效應(yīng)加劇,百度網(wǎng)盤的第一之位定會(huì)越來越穩(wěn),唯一能夠威脅百度網(wǎng)盤的只有騰訊微云。一般來說市場份額的大小決定著企業(yè)在市場中的話語權(quán),在個(gè)人云盤行業(yè)馬太效應(yīng)加強(qiáng)情況下,百度網(wǎng)盤與騰訊微云的話語權(quán)得到進(jìn)一步提升。熱鬧是你們的,我什么都沒有,用來形容當(dāng)前的個(gè)人云盤行業(yè)最為貼切。云服務(wù)行業(yè)有無數(shù)資本搭臺(tái),和許多企業(yè)唱戲,好不熱鬧。市場調(diào)研公司W(wǎng)ikibon發(fā)布了2018年云市場回顧以及2019展望報(bào)...
摘要:主機(jī)內(nèi)置免費(fèi)的網(wǎng)盤加速功能,百度網(wǎng)盤超級(jí)會(huì)員。百度網(wǎng)盤對非超級(jí)會(huì)員限制下載速度操作指南,登錄主機(jī)。,選擇需要下載的大文件資源,下載速度可達(dá)。下載速度文件大小小時(shí)小時(shí)下載成本下載文件,若使用主機(jī)的帶寬,單次下載所需的流量費(fèi)用為元。VASP軟件官網(wǎng):[www.vasp.at]安裝步驟安裝依賴包yum -y install cmake pkgconfig yum groupinstall Deve...
摘要:百度網(wǎng)盤周年活動(dòng)火爆進(jìn)行中原價(jià)元的百度網(wǎng)盤將以周年特惠價(jià)元開售,直降百元以上。現(xiàn)在,百度網(wǎng)盤已經(jīng)開啟周年活動(dòng)開始了,可以直接搶購點(diǎn)擊進(jìn)入百度網(wǎng)盤周年活動(dòng)本屆百度網(wǎng)盤周年慶,百度網(wǎng)盤價(jià)會(huì)不會(huì)迎來新低,我們拭目以待。百度網(wǎng)盤9周年活動(dòng)火爆進(jìn)行中!原價(jià)298元的百度網(wǎng)盤SVIP將以9周年特惠價(jià)178元開售,直降百元以上。現(xiàn)在,百度網(wǎng)盤已經(jīng)開啟9周年活動(dòng)開始了,可以直接搶購! 點(diǎn)擊進(jìn)入:百度網(wǎng)...
摘要:這篇文章中,老蔣介紹在我自己也在使用的一款付費(fèi)堅(jiān)果云盤,在眾多免費(fèi)網(wǎng)盤云盤橫行的時(shí)代,很多人會(huì)認(rèn)為付費(fèi)云盤肯定沒有生存空間。同時(shí),老蔣還會(huì)用到同步備份文檔密碼庫。老蔣并沒有將重要的賬戶信息備份在上面,還是有些擔(dān)心安全問題的。老蔣在前面的文章中有提到阿里云盤、百度云盤,在這幾天已經(jīng)看不到阿里云盤火熱的討論。實(shí)際上,無論是哪個(gè)服務(wù)商的軟件,都固然有一定的用戶,但是最終選擇的,能長期堅(jiān)持下來使用的...
閱讀 880·2021-11-15 11:38
閱讀 1600·2021-09-24 09:48
閱讀 838·2021-09-24 09:47
閱讀 2270·2021-08-26 14:15
閱讀 3497·2019-08-30 11:09
閱讀 2602·2019-08-29 16:55
閱讀 1582·2019-08-26 14:01
閱讀 3032·2019-08-23 16:47