Vue 資料雙向繫結實現二級下拉懸浮選單
Vue 的v-bind實現二級下拉懸浮選單
專案中需要做出類似二級選單的功能,原本是想偷懶直接用現有的Element UI框架,但是發現雖然格式漂亮但是需要看明白各個程式碼的意思才能修改成自己想要的極其簡單的動態效果,果斷放棄。
然後想到Jquery,雖然可以實現,但是轉念一想肯定會需要直接對DOM進行操作。去百度了一下,果不其然,程式碼一大堆。我現在不是在用Vue麼,v-bind試一試?說做就做!
1.首先完成滑鼠懸浮出現新的div的效果(簡單)
直接上程式碼!
html部分程式碼如下:
<template>
<div class="person_img" >
<img id="person_img" :src="img_url" @mouseover="person_info()" @mouseout="cl_person_info()"/>
</div>
<div v-show="person_con" class="hidden_div" >
<div>{{userid}}</div>
<div>個人設定</div>
<div>賬戶中心</div>
<div>退出登入</div>
</div>
</template>
//@mouseover、@mouseout和 v-show="person_con" 用來控制懸浮出現和消失的效果
js部分程式碼如下
<script>
name:'',
data(){
return{
placeholder:'搜尋課程',
token:'',//判斷是否登入的引數,在載入主頁時直接判斷
person_con:false,
userid:'',
}
},
methods:{
person_info(){
this.person_con = true;
},
cl_person_info(){
this.person_con = false;
},
}
</script>
很簡單,這樣就實現了滑鼠經過個人頭像(person_img)時,下面會出現個人資訊person_con。
下面是關鍵,怎麼實現滑鼠經過個人頭像到個人資訊的div時個人資訊的div不消失,繼而進行更多的業務操作呢?
自然的想法就是給再給person_con加上@mouseover和@mouseout。
2.實現滑鼠經過個人頭像到個人資訊的div時個人資訊的div不消失
html部分程式碼如下:
<template>
<div class="person_img" >
<img id="person_img" :src="img_url" @mouseover="person_info()" @mouseout="cl_person_info()"/>
</div>
//新增@mouseover和@mouseout
<div v-show="person_con" class="hidden_div" @mouseover="person_infoContinue()" @mouseout="cl_person_infoContinue()" >
<div>{{userid}}</div>
<div>個人設定</div>
<div>賬戶中心</div>
<div>退出登入</div>
</div>
</template>
js部分程式碼如下
<script>
name:'',
data(){
return{
placeholder:'搜尋課程',
token:'',//判斷是否登入的引數,在載入主頁時直接判斷
person_con:false,
userid:'',
}
},
methods:{
person_info(){
this.person_con = true;
},
cl_person_info(){
this.person_con = false;
},
person_infoContinue(){
this.person_con = true;
},
cl_person_infoContinue(){
this.person_con = false;
},
}
</script>
到此,還不能實現完整的功能,因為現在程式碼還不完善。為啥?因為在滑鼠移出個人頭像時,person_con又變為false了,這就導致person_infoContinue()和 cl_person_infoContinue()其實是不起效果的。那又該怎麼辦呢?自然的想法就是再新增一箇中間變數,在cl_person_info()方法中,我利用這個變數進行判斷。
js部分程式碼如下
<script>
name:'',
data(){
return{
placeholder:'搜尋課程',
token:'',//判斷是否登入的引數,在載入主頁時直接判斷
person_con:false,
isperson_infoContinue:false,//增加
userid:'',
}
},
methods:{
//不變
person_info(){
this.person_con = true;
},
//增加判斷
cl_person_info(){
if(this.isperson_infoContinue = true){
this.person_con = true;
}else{
this.person_con = false;
}
},
//滑鼠進入到新的div時讓中間變數為true
person_infoContinue(){
this.person_con = true;
this.isperson_infoContinue = true;
},
cl_person_infoContinue(){
this.isperson_infoContinue = false;
this.person_con = false;
},
}
</script>
到此,就利用簡單的邏輯判斷true和false完成了懸浮二級選單的功能。
相關文章
- 手動簡單實現Vue雙向資料繫結Vue
- js 實現vue的雙向資料繫結JSVue
- vue資料雙向繫結的實現原理Vue
- Vue雙向繫結實現Vue
- 基於vue實現的雙向資料繫結Vue
- Vue 中雙向繫結 Vs 單向資料流Vue
- JavaScript實現簡單的雙向資料繫結JavaScript
- vue實現prop雙向繫結Vue
- 雙向資料繫結實現原理
- javascript實現雙向資料繫結JavaScript
- css滑鼠懸浮下拉選單效果CSS
- vue雙向資料繫結原理Vue
- Vue資料雙向繫結原理Vue
- HTML+CSS+JQuery實現下拉選單滑鼠懸浮顯示下拉選單,取消隱藏HTMLCSSjQuery
- 簡要實現vue雙向繫結Vue
- JavaScript實現HTML導航欄下拉選單[懸浮顯示]JavaScriptHTML
- 手動實現vue元件間的雙向資料繫結Vue元件
- 從單向到雙向資料繫結
- angular雙向繫結簡單實現Angular
- 剖析Vue原理&實現雙向繫結MVVMVueMVVM
- 梳理vue雙向繫結的實現原理Vue
- Vue雙向繫結原理,教你一步一步實現雙向繫結Vue
- 滑鼠懸浮緩慢下拉導航選單
- 淺析vue的雙向資料繫結Vue
- vue中的雙向資料繫結原理Vue
- 簡單實現一個雙向繫結
- angular雙向繫結—(按鈕+下拉)Angular
- 深入理解Proxy 及 使用Proxy實現vue資料雙向繫結Vue
- 5分鐘教你實現Vue雙向繫結Vue
- vue實踐:元件雙向繫結Vue元件
- vue 雙向繫結(v-model 雙向繫結、.sync 雙向繫結、.sync 傳物件)Vue物件
- 在winform中如何實現雙向資料繫結?ORM
- mvvm-simple雙向繫結簡單實現MVVM
- Vue雙向繫結初探Vue
- vue雙向繫結原理Vue
- Vue 中實現雙向繫結的 4 種方法Vue
- JS雙向資料繫結JS
- 通過原生js實現資料的雙向繫結JS