最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于vue中對(duì)鼠標(biāo)劃過(guò)事件的處理方式詳解

 更新時(shí)間:2018年08月22日 15:22:28   作者:Dear_Mr  
今天小編就為大家分享一篇基于vue中對(duì)鼠標(biāo)劃過(guò)事件的處理方式詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

鼠標(biāo)事件進(jìn)行監(jiān)聽(tīng)

需求中,在一個(gè)table(組件)表中,對(duì)于其中一列(該列為圖片列),當(dāng)鼠標(biāo)劃過(guò)該列的某個(gè)單元格子(圖片)時(shí),需要展示出該單元格子對(duì)應(yīng)的遮罩層

翻閱了一些博客,發(fā)現(xiàn)好多都提到了mouse事件,如mouseover、mouseout、mouseenter、mouseleave,在之后我自己也通過(guò)這種方法進(jìn)行了嘗試。

<template>
 <el-table
 :data="tableData"
 stripe
 style="width: 100%">
 <el-table-column
  prop="pic"
  label="圖片"
  width="180">
  <template slot-scope="scope">
   <div slot="wrapper" class="name-wrapper">
   <div class="img-mask" @click="toShowDialog(props.row)" :ref="'mask' + props.rowIndex">文字</div>
   <div @mouseover="changeMask(props.rowIndex)" @mouseout="changeMask(props.rowIndex)">
    <img src="...">
   </div>
   </div>
  </template>
 </el-table-column>
 </el-table>
</template>

...
changeMask(index) {
 let vm = this;
 let mask = vm.$refs['mask' + index];

 if(mask.style.display == 'none') {
 mask.style.display = 'block';
 }else {
 mask.style.display = 'none';
 }
}

最后在查看結(jié)果中發(fā)現(xiàn),在劃過(guò)的時(shí)候是會(huì)觸發(fā)鼠標(biāo)事件,但是會(huì)出現(xiàn)閃動(dòng)的清空,當(dāng)鼠標(biāo)一直放在該單元格上的時(shí)候,遮罩層也會(huì)消失和出現(xiàn)反復(fù)切換。為緩解這種情況,還對(duì)changeMask中的顯示和隱藏進(jìn)行setTimeout延時(shí),結(jié)果并不理想,不推薦這樣使用。

CSS方式實(shí)現(xiàn)

這種方法,只需要保留上面代碼中的主體部分,不需要ref和mouse事件這些,主要是通過(guò)opacity去控制遮罩層的顯示和隱藏的。具體的樣式代碼如下:

.wrapper {
 position: relative;
 .img-mask {
 position: absolute;
 background: rgba(0, 0, 0, 0.5);
 z-index: 10;
 //設(shè)置left、right、top、bottom的原因是使得遮罩層上的文字顯示在該層的最中間
 left: 0;
 right: 0;
 top: 0;
 bottom: 0;
 //透明度為0,則就是不可見(jiàn)
 opacity: 0;
 }
 &:hover {
 .img-mask {
  opacity: 1;
 }
 }
}

這種方法達(dá)到了預(yù)期的效果,體驗(yàn)也很好,推薦使用。

table中動(dòng)態(tài)ref

首先,這部分并不是針對(duì)遮罩層顯示隱藏的,而是處理表格中某一列或者很多單元格添加ref的。這個(gè)其實(shí)在第一種方法中就已經(jīng)也出來(lái)了,現(xiàn)在做下總結(jié)。

:ref="'mask' + props.rowIndex"這種方法對(duì)例如表格這樣一列中的每個(gè)單元格都對(duì)應(yīng)著一個(gè)附加的東西,而這些東西的位置又是不同的,可以實(shí)現(xiàn)對(duì)每個(gè)單元格進(jìn)行ref綁定,在事件處理函數(shù)中,通過(guò)傳遞props.rowIndex得到下標(biāo),最終通過(guò)this.$ref['mask' + props.rowIndex]得到對(duì)應(yīng)的元素,然后對(duì)其css進(jìn)行相關(guān)控制(只是舉例)。

拓展知識(shí):vue鼠標(biāo)劃過(guò)移入移出觸發(fā)函數(shù)介紹

如下所示:

<ul>>
 <li class="" v-on:mouseover="changeActive($event)" v-on:mouseout="removeActive($event)"></li>
</ul>
methods:{
  // 鼠標(biāo)移入加入class
  changeActive($event){
    $event.currentTarget.className="active";
  },
  removeActive($event){
    $event.currentTarget.className="";
  }
}

以上這篇基于vue中對(duì)鼠標(biāo)劃過(guò)事件的處理方式詳解就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 在vue中實(shí)現(xiàn)antd的動(dòng)態(tài)主題的代碼示例

    在vue中實(shí)現(xiàn)antd的動(dòng)態(tài)主題的代碼示例

    在需求開(kāi)發(fā)階段,鑒于項(xiàng)目采用了antd作為基礎(chǔ)組件庫(kù),確保組件外觀與antd一致變得尤為重要,這包括顏色、字體大小及尺寸等樣式的統(tǒng)一,然而,截至當(dāng)前antd-vue尚未實(shí)現(xiàn)這一便捷的CSS變量特性,但理解其背后的實(shí)現(xiàn)機(jī)制后,我們可以自行構(gòu)建這一功能,需要的朋友可以參考下
    2024-07-07
  • vue3使用svg圖標(biāo)的方式總結(jié)

    vue3使用svg圖標(biāo)的方式總結(jié)

    在Vue?3中,可以使用多種方式來(lái)使用SVG圖標(biāo),這篇文章主要為大家總結(jié)了五個(gè)常用的方式,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解下
    2023-08-08
  • vue 路由頁(yè)面之間實(shí)現(xiàn)用手指進(jìn)行滑動(dòng)的方法

    vue 路由頁(yè)面之間實(shí)現(xiàn)用手指進(jìn)行滑動(dòng)的方法

    下面小編就為大家分享一篇vue 路由頁(yè)面之間實(shí)現(xiàn)用手指進(jìn)行滑動(dòng)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨跟隨小編過(guò)來(lái)看看吧
    2018-02-02
  • 在組件中修改vuex中state的具體實(shí)現(xiàn)方法

    在組件中修改vuex中state的具體實(shí)現(xiàn)方法

    在組件中修改 Vuex 中的 state,根據(jù)使用的 Vue 版本(Vue 2 或 Vue 3)不同,有不同的操作方式,但總體思路都是借助 Vuex 提供的 mutations 或 actions 來(lái)實(shí)現(xiàn),以下分別介紹兩種版本下的具體實(shí)現(xiàn)方法,需要的朋友可以參考下
    2025-02-02
  • 關(guān)于Element-ui中Table表格無(wú)法顯示的問(wèn)題及解決

    關(guān)于Element-ui中Table表格無(wú)法顯示的問(wèn)題及解決

    這篇文章主要介紹了關(guān)于Element-ui中Table表格無(wú)法顯示的問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • vue彈出的添加信息組件中el-radio單選框無(wú)法點(diǎn)擊的解決方案

    vue彈出的添加信息組件中el-radio單選框無(wú)法點(diǎn)擊的解決方案

    在彈出的添加信息組件中,單選框無(wú)法切換是因?yàn)闆](méi)有默認(rèn)值,通過(guò)判斷初始化時(shí)的值并賦初始值,雖然實(shí)現(xiàn)了初始值的展示,但導(dǎo)致單選框無(wú)法切換,為了解決這個(gè)問(wèn)題,更改了上級(jí)組件傳值的方式,直接帶參傳值,避免了對(duì)象處理
    2026-03-03
  • vue3獲取ref實(shí)例結(jié)合ts的InstanceType問(wèn)題

    vue3獲取ref實(shí)例結(jié)合ts的InstanceType問(wèn)題

    這篇文章主要介紹了vue3獲取ref實(shí)例結(jié)合ts的InstanceType問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • vue單文件組件lint error自動(dòng)fix與styleLint報(bào)錯(cuò)自動(dòng)fix詳解

    vue單文件組件lint error自動(dòng)fix與styleLint報(bào)錯(cuò)自動(dòng)fix詳解

    這篇文章主要給大家介紹了關(guān)于vue單文件組件lint error自動(dòng)fix與styleLint報(bào)錯(cuò)自動(dòng)fix的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-01-01
  • Vue數(shù)字輸入框組件使用方法詳解

    Vue數(shù)字輸入框組件使用方法詳解

    這篇文章主要為大家詳細(xì)介紹了Vue數(shù)字輸入框組件的使用方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-02-02
  • Vue實(shí)現(xiàn)Dialog封裝

    Vue實(shí)現(xiàn)Dialog封裝

    在寫業(yè)務(wù)的時(shí)候很常見(jiàn)的一個(gè)場(chǎng)景就是需要在不同的頁(yè)面調(diào)用同一個(gè)表單,常用的交互就是把表單以彈窗的形式展示,本文主要介紹了Vue實(shí)現(xiàn)Dialog封裝,感興趣的可以了解一下
    2021-07-07

最新評(píng)論

东乡| 抚顺县| 定边县| 绥棱县| 沿河| 嘉峪关市| 新河县| 斗六市| 铁岭县| 浏阳市| 依安县| 随州市| 乃东县| 收藏| 保定市| 和政县| 张北县| 巴林右旗| 磴口县| 驻马店市| 渝北区| 潼关县| 西安市| 泰顺县| 双城市| 奉贤区| 佛冈县| 施甸县| 乌拉特中旗| 阳泉市| 任丘市| 巴林左旗| 四平市| 离岛区| 浠水县| 都匀市| 鸡东县| 古丈县| 山阴县| 磐安县| 固始县|