国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

vue 通過 Ctrl 、Shift 鍵 + 點(diǎn)擊鼠標(biāo)實(shí)現(xiàn) div 多選操作(1)

這篇具有很好參考價(jià)值的文章主要介紹了vue 通過 Ctrl 、Shift 鍵 + 點(diǎn)擊鼠標(biāo)實(shí)現(xiàn) div 多選操作(1)。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

接下來就是相關(guān)主要代碼的編寫問題,因?yàn)槊總€(gè)人的項(xiàng)目和需求是不一樣的,所以我就簡單分享一下自己的主要代碼邏輯。

代碼


首先在vue項(xiàng)目里面定義幾個(gè)變量哈。

data() {

return {

tableData: [], // 假設(shè)這個(gè)是上邊小div的列表,后臺數(shù)據(jù)請求回來的嗎,假設(shè)已經(jīng)有數(shù)據(jù)了哈,里面有唯一標(biāo)識符id

isshift: false, // 快捷鍵 shift 是否被按下

isctrl: false, // 快捷鍵 ctrl 是否被按下

selectedState: [], // 上方div圖切是否被多選中,如果多選了就把他的id放到這個(gè)列表里面,當(dāng)然可以不用,直接在相應(yīng)的列表對象加一個(gè)參數(shù)isSelected也行,具體看項(xiàng)目和個(gè)人編碼習(xí)慣哈。

shiftNum: ‘’, // shift 按下后選擇的第一個(gè)div下標(biāo),因?yàn)閟hift的時(shí)候要點(diǎn)兩個(gè)div都中間包裹的都要切換為被選中狀態(tài)

}

}

其次有一個(gè)鍵盤監(jiān)聽事件

// 監(jiān)聽鍵盤

keyDown() {

// 鍵盤按下事件

document.onkeydown = (e) => {

// 取消默認(rèn)事件

e.preventDefault();

//事件對象兼容

let e1 = e || event || window.event || arguments.callee.caller.arguments[0]

//鍵盤按鍵判斷:左箭頭-37;上箭頭-38;右箭頭-39;下箭頭-40 回車:13 ctrl:17 shift:16

switch (e1.keyCode) {

case 16:

this.isshift = true; // 如果shift按下就讓他按下的標(biāo)識符變?yōu)閠rue

break;

case 17:

this.isctrl = true; // 如果ctrl按下就讓他按下的標(biāo)識符變?yōu)閠rue

break;

}

}

// 鍵盤抬起事件

document.onkeyup = (e) => {

// 取消默認(rèn)事件

e.preventDefault();

//事件對象兼容

let e1 = e || event || window.event || arguments.callee.caller.arguments[0]

switch (e.keyCode) {

case 16:

this.shiftNum = ‘’

this.isshift = false; // 如果shift抬起下就讓他按下的標(biāo)識符變?yōu)閒alse

break;

case 17:

this.isctrl = false; // 如果ctrl抬起下就讓他按下的標(biāo)識符變?yōu)閒alse

break;

}

}

},

這樣ctrl和shift鍵的監(jiān)聽事件就完成了,上面的方法在頁面初始化完成的時(shí)候調(diào)用一下子哈,別忘了。

activated() {

this.keyDown()

}

接下來就是點(diǎn)擊小div的邏輯了。

給小div一個(gè)點(diǎn)擊事件,我還寫嗎?都知道哈,寫一下子吧, 不寫樣式了,當(dāng)然循環(huán)的時(shí)候不要用index,我這瞎寫的,不要計(jì)較哈,分享一下,主要是說多選功能。

好了,大體就是這個(gè)意思,然后點(diǎn)擊的時(shí)候把這個(gè)數(shù)據(jù)對象傳進(jìn)去,里面包含著一個(gè)表示這個(gè)div的唯一標(biāo)識符id。

然后就是最重要的多選的邏輯處理。

selectImage(item, index) {

if (this.isctrl) { // 如果按下的是ctrl

let str = item.id // 這行代碼沒必要,但是案例是根據(jù)我項(xiàng)目改的,就懶得刪了

let i = this.selectedState.indexOf(str) // 判斷選中列表中是否包含這個(gè)點(diǎn)擊的div

if (i < 0) {

this.selectedState.push(str) // 如果不包含就加進(jìn)去

} else {

this.selectedState.splice(i, 1); // 如果包含就刪,表示按下ctrl鍵點(diǎn)一下選中,在點(diǎn)一下取消選中

}

} else if (this.isshift) { // 如果按下的是shift

if (this.shiftNum === ‘’) { // 如果還沒點(diǎn)下第一個(gè)div

this.shiftNum = index // 讓第一個(gè)div的下標(biāo)賦值給shiftNum

let str = item.id

let i = this.selectedState.indexOf(str)

if (i < 0) {
自我介紹一下,小編13年上海交大畢業(yè),曾經(jīng)在小公司待過,也去過華為、OPPO等大廠,18年進(jìn)入阿里一直到現(xiàn)在。

深知大多數(shù)前端工程師,想要提升技能,往往是自己摸索成長或者是報(bào)班學(xué)習(xí),但對于培訓(xùn)機(jī)構(gòu)動(dòng)則幾千的學(xué)費(fèi),著實(shí)壓力不小。自己不成體系的自學(xué)效果低效又漫長,而且極易碰到天花板技術(shù)停滯不前!

因此收集整理了一份《2024年Web前端開發(fā)全套學(xué)習(xí)資料》,初衷也很簡單,就是希望能夠幫助到想自學(xué)提升又不知道該從何學(xué)起的朋友,同時(shí)減輕大家的負(fù)擔(dān)。

vue 通過 Ctrl 、Shift 鍵 + 點(diǎn)擊鼠標(biāo)實(shí)現(xiàn) div 多選操作(1),程序員,vue.js,計(jì)算機(jī)外設(shè),前端

vue 通過 Ctrl 、Shift 鍵 + 點(diǎn)擊鼠標(biāo)實(shí)現(xiàn) div 多選操作(1),程序員,vue.js,計(jì)算機(jī)外設(shè),前端

既有適合小白學(xué)習(xí)的零基礎(chǔ)資料,也有適合3年以上經(jīng)驗(yàn)的小伙伴深入學(xué)習(xí)提升的進(jìn)階課程,基本涵蓋了95%以上前端開發(fā)知識點(diǎn),真正體系化!

vue 通過 Ctrl 、Shift 鍵 + 點(diǎn)擊鼠標(biāo)實(shí)現(xiàn) div 多選操作(1),程序員,vue.js,計(jì)算機(jī)外設(shè),前端

由于文件比較大,這里只是將部分目錄截圖出來,每個(gè)節(jié)點(diǎn)里面都包含大廠面經(jīng)、學(xué)習(xí)筆記、源碼講義、實(shí)戰(zhàn)項(xiàng)目、講解視頻,并且會(huì)持續(xù)更新!

如果你覺得這些內(nèi)容對你有幫助,可以掃碼獲取?。。▊渥ⅲ呵岸耍?/strong>

vue 通過 Ctrl 、Shift 鍵 + 點(diǎn)擊鼠標(biāo)實(shí)現(xiàn) div 多選操作(1),程序員,vue.js,計(jì)算機(jī)外設(shè),前端

最后

vue 通過 Ctrl 、Shift 鍵 + 點(diǎn)擊鼠標(biāo)實(shí)現(xiàn) div 多選操作(1),程序員,vue.js,計(jì)算機(jī)外設(shè),前端

vue 通過 Ctrl 、Shift 鍵 + 點(diǎn)擊鼠標(biāo)實(shí)現(xiàn) div 多選操作(1),程序員,vue.js,計(jì)算機(jī)外設(shè),前端

由于文檔內(nèi)容過多,為了避免影響到大家的閱讀體驗(yàn),在此只以截圖展示部分內(nèi)容,詳細(xì)完整版的JavaScript面試題文檔,或更多前端資料可以點(diǎn)此處免費(fèi)獲取。文章來源地址http://www.zghlxwxcb.cn/news/detail-849734.html

F.jpg" />

最后

[外鏈圖片轉(zhuǎn)存中…(img-SYSztIYj-1712217005184)]

[外鏈圖片轉(zhuǎn)存中…(img-3u6ND0TS-1712217005184)]

由于文檔內(nèi)容過多,為了避免影響到大家的閱讀體驗(yàn),在此只以截圖展示部分內(nèi)容,詳細(xì)完整版的JavaScript面試題文檔,或更多前端資料可以點(diǎn)此處免費(fèi)獲取。

到了這里,關(guān)于vue 通過 Ctrl 、Shift 鍵 + 點(diǎn)擊鼠標(biāo)實(shí)現(xiàn) div 多選操作(1)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包