<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 来实现这个效果。 其实呢道理很简单,之所以这么做就是为了...
- 雅各出了别是巴,向哈兰走去。——创世纪28:10 有人根据圣经中关于雅各生平的记载推断,当年雅各为躲避兄弟以扫,离...