




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第vue實現(xiàn)導航欄下拉菜單本文實例為大家分享了vue實現(xiàn)導航欄下拉菜單的具體代碼,供大家參考,具體內容如下
先看效果:
下拉菜單鋪滿全屏
div.../div
div.../div
.nav{
position:relative;
.dropdown-content{
position:absolute;
width:100%;
//拉滿
}
方法一:鼠標移入移出事件
使用的是vue的transition組件以及鼠標事件@mouseenter和@mouseleave
.dropdown-enter-active{
animation:expand-contract1sease;
.dropdown-leave-active{
animation:expand-contract1seasereverse;
@keyframesexpand-contract{
0%{
overflow:hidden;
opacity:0;
max-height:0;
100%{
max-height:300px;
//大于等于下拉菜單的高度
opacity:1;
}
優(yōu)點:
1、結構層次清楚
2、多個導航需要下拉菜單,且結構相似內容不同,只需要重新渲染數(shù)據即可。
缺點:
1、使用了事件處理相對復雜
案例代碼
template
div
!--導航欄--
divref="navRef"
div@mouseenter="isShow=false"導航欄1/div
div@mouseenter="showDropDown('2')"導航欄2/div
div@mouseenter="showDropDown('3')"導航欄3/div
div@mouseenter="isShow=false"導航欄4/div
div@mouseenter="isShow=false"導航欄5/div
/div
!--下拉菜單--
transitionname="dropdown"
divv-show="isShow"@mouseleave="hideDropDown"
div
divv-for="(item,index)inanalog":key="index"
{{item}}
/div
/div
/div
/transition
/div
/template
script
exportdefault{
data(){
return{
isShow:false,
navTop:0,
//模擬下拉菜單內容
analog:[],
};
mounted(){
//導航欄距頁面高度=元素頂部距頁面距離+元素本身高度
this.navTop=
this.$refs.navRef.getBoundingClientRect().top+
this.$refs.navRef.offsetHeight;
methods:{
showDropDown(val){
if(!this.isShow)this.isShow=true;
if(val==="2"){
this.analog=["菜單1","菜單1","菜單1","菜單1","菜單1"];
}else{
this.analog=["菜單22","菜單22","菜單22","菜單22","菜單22"];
}
},
hideDropDown(e){
//e.pageY:鼠標指針相對頁面的偏移量
if(this.isShowe.pageY=this.navTop)this.isShow=false;
},
/script
stylelang="scss"scoped
//下拉菜單收縮展開
@keyframesexpand-contract{
0%{
opacity:0;
height:0;
//max-height:0;
100%{
opacity:1;
height:300px;
//max-height:300px;
//大于等于下拉菜單的高度
.dropdown-enter-active{
animation:expand-contract0.6s;
.dropdown-leave-active{
animation:expand-contract0.6sreverse;
//內容變化
@keyframesmenu{
0%{
opacity:0;
100%{
opacity:1;
//導航欄
.nav{
position:relative;
display:flex;
width:100%;
height:80px;
line-height:80px;
background-color:#eee;
border-bottom:1pxsolid#ccc;
.nav-item{
position:relative;
margin:020px;
cursor:pointer;
transition:all0.3slinear;
::before{
content:"";
position:absolute;
bottom:0;
left:0;
height:2px;
width:100%;
background-color:#1678e9;
transform:scale(0);
transition:all0.4slinear;
}
:hover{
color:#1678e9;
::before{
transform:scale(1);
}
}
.dropdown-content{
position:absolute;
width:100%;//拉滿
overflow:hidden;
.dropdown-menu{
padding:10px8px15px;
color:white;
background-color:rgba($color:#ccc,$alpha:0.5);
border-radius:4px;
/*animation:menu0.6s;*/
.menuItem{
width:100%;
white-space:nowrap;
padding:10px16px;
font-size:16px;
color:#000;
cursor:pointer;
transition:all0.3s;
border-radius:4px;
:hover{
background-color:#ccc;
}
}
/style
方法二:hover
將下拉菜單需要下拉的導航欄下一級下,使用hover控制元素,nav-item不要設置相對定位,以免定位時下拉菜單寬度不能100%鋪滿導航欄寬度。
將菜單初始高度設為0
優(yōu)點:
1、簡單明了,不需要事件,js等操作
缺點:
1、每個下拉菜單獨立,也就是說切換導航欄,下拉菜單顯示隱藏也會動畫堆疊
2、每個導航標題都需要單獨寫下拉菜單,結構層次變多
案例代碼
template
div
!--導航欄--
div
divspan導航欄1/span/div
div
span導航欄2/span
!--下拉菜單--
div
div
div菜單1/div
div菜單菜單1/div
div菜單2/div
div菜單菜單菜單1/div
div菜單3/div
/div
/div
/div
divspan導航欄3/span/div
div
span導航欄4/span
!--下拉菜單--
div
div
div菜單1/div
div菜單菜單1/div
div菜單2/div
div菜單菜單菜單1/div
div菜單3/div
/div
/div
/div
divspan導航欄5/span/div
/div
/div
/template
script
exportdefault{
data(){
return{
isShow:false,
};
mounted(){},
methods:{},
/script
stylelang="scss"scoped
.nav{
position:relative;
display:flex;
width:100%;
height:80px;
line-height:80px;
background-color:#eee;
border-bottom:1pxsolid#ccc;
.nav-item{
//position:relative;
margin:020px;
cursor:pointer;
transition:all0.3slinear;
.nav-item-title{
position:relative;
display:block;
height:inherit;
width:inherit;
::before{
content:"";
position:absolute;
bottom:0;
left:0;
height:2px;
width:100%;
background-color:#1678e9;
transform:scale(0);
transition:all0.4slinear;
}
:hover{
color:#1678e9;
::before{
transform:scale(1);
}
}
}
:hover.dropdown-content{
height:300px;
}
//下拉菜單
.dropdown-content{
position:absolute;
top:80px;//為導航欄高度
left:0;//設置為0,不然會直接定位到父元素下方
width:100%;
height:0;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 吉林省吉林市第二中學2025屆物理高二下期末聯(lián)考試題含解析
- 銀行科技考核管理辦法
- 重慶績效管理辦法細則
- 能源數(shù)據標簽分組的智能預測與優(yōu)化管理-洞察闡釋
- 隧道開挖班組管理辦法
- 北碚區(qū)娛樂設施管理辦法
- 集團商務招待管理辦法
- 集團財務資產管理辦法
- 湖北省“荊、荊、襄、宜”四地七校考試聯(lián)盟2025屆物理高二下期末達標測試試題含解析
- 勞動合同收藏版
- 股東出資情況表模板
- 甘肅省天水市甘谷縣第一中學2025屆物理高一下期末質量檢測試題含解析
- GB/T 4074.5-2024繞組線試驗方法第5部分:電性能
- 熱水袋燙傷RCA分析2022
- 業(yè)主提前裝修免責協(xié)議
- 2024年上海市計算機一級考試復習題庫(含答案)
- 新生兒吸痰護理課件
- 礦井通風工技師(高級技師)理論考試題庫
- 《急救知識普及》課件
- 《應急救援知識》課件
- 智慧物業(yè)管理方案
評論
0/150
提交評論