<div class="top">
<div class="container">
<a href="#" class="loge"></a>//loge图片
//导航栏内容
<div class="header-navs">
<ul class="navs">
<li v-for="item in navs" class="nav">
<template v-if="item.type">
<a href="javascript: void(0);" class="nav-item"
@mouseenter="evtHeaderEnter(item.type)" @mouseleave="evtHeaderLeave()">{{item.name}}</a>
</template>
<template v-else>
<a :href="item.sourceUrl" target="_blank" class="nav-item">{{item.name}}</a>
</template>
</li>
</ul>
</div>
//搜索框
<div class="header-search">
<ul class="hot-word" transition="fadeOut" v-show="hotStatus">
<li class="hot-item" v-for="item in hotItems">{{item}}</li>
</ul>
<input @focus="evtIptFocus" @blur="evtIptBlur" class="search-ipt" type="search" name="search" value="">
<label class="search-btn" for="search"><i class="icon-search"></i></label>
<ul class="search-result clearfix">
<li v-for="item in results">
<span class="item-name">{{item.name}}</span>
<span class="item-num">约有{{item.number}}件</span>
</li>
</ul>
</div>
</div>
//隐藏的导航栏的具体内容
<div class="header-menu" @mouseenter="evtHeaderEnter()" @mouseleave="evtHeaderLeave()" v-show="headerStatus" transition="fadein">
<ul class="menus clearfix">
<li class="product" v-for="item in currentPhones">
<a :href="item.sourcePath">
<img :src="item.imgUrl" alt="" class="product-img"/>
</a>
<div class="product-name">{{item.name}}</div>
<div class="product-price">{{item.price}}</div>
</li>
</ul>
</div>
</div>
//这里就主要写方法,数据自己随意添加
export default {
data (){
return {
hotStatus: true,
headerStatus: false,
tids: '',
currentPhones: this.xiaomi,
hotItems: ['红米pro', '小米笔记本air'],
}
methods: {
evtIptFocus () {
$('.header-search').addClass('search-active')
$('.search-result').show()
this.hotStatus = false
},
evtIptBlur () {
$('.header-search').removeClass('search-active')
$('.search-result').hide()
this.hotStatus = true
},
evtHeaderEnter (menuType) {
if (menuType) {
this.currentPhones = this[menuType]
}
this.headerStatus = true
clearTimeout(this.tids)
},
evtHeaderLeave () {
let self = this
this.tids = setTimeout(function () {
self.headerStatus = false
}, 300)
}
},
}
如果想看完整的项目请搜:https://github.com/wendaosanshou/mi-by-vue
用vue实现导航栏操作
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 所说的吸顶效果就是在页面没有滑动之前,导航栏的效果如下图所示: 当页面向上滑动之后,导航栏始终固定在页面的上方。 ...
- 静静等了5分钟竟不知道如何写我这第一篇文章。每次都想好好的学习学习,有时间多敲敲代码,写几篇自己的文章。今天终于开...
- 今天心血来潮,想着模仿 QQ 空间的样式,用 Swift 来实现这个效果。 其实呢道理很简单,之所以这么做就是为了...