用Vue实现根据hash高亮选项卡

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
<style>
a {
	color: #555;
}
.active {
	color: red;
}
</style>
</head>
<body>
<main id="box">
  <div class="tab">
    <a v-for="tab in tabs" :href="tab.href" :class="{active:tab.href==myhash}">{{tab.title}}</a>
  </div>
</main>
<script src="https://cdn.jsdelivr.net/npm/vue"></script> 
<script>
var vm=new Vue({
	el:'#box',
	data:{
		tabs: [
			{
				title: '所有任务',
				href: '#all'
			},
			{
				title: '未完成任务',
				href: '#unfinished'
			},
			{
				title: '完成的任务',
				href: '#finished'
			}
		],
		myhash:'#all' //存储当前hash值
	}
});	
function watchHashChange(){
	var hash = window.location.hash;
	if(hash!=''){
		vm.myhash = hash;  //将hash值传过去
	}else{
		vm.myhash = '#all'; //否则用默认值
	}
}
watchHashChange();
window.addEventListener('hashchange',watchHashChange);
</script>
</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值