其实方法很简单,也是走了很多弯路,见别人用的各种方法,但是自己都实现不了,等到实现的时候才发现原来如此简单,只需要几句代码即可。
做的是对bilibili首页仿写的一个小项目,虽然很简陋就是了。
下面上一下页面的截图:
功能很简单,点击右侧导航栏能够跳转到对应位置的内容分类上,同时右侧导航栏的点击之后将变色。
首先先看一下比较生硬的效果是什么样的:
这个是平滑的效果:
其实最最关键的代码只有几句,现贴出来如下:
jump(index) {
this.jumpid = index; //用于点击右侧导航栏的时候,选中部分显示背景色
let jumpitem = document.getElementsByName("jumpitem"); //得到所有的title,包括游戏,音乐,番剧这些
jumpitem[index].scrollIntoView({
behavior:'smooth',
block:'start'
});
},
其中,函数scrollIntoView起了决定性的作用。
behavior要写成smooth
block可以写start,也可以是end,当然,默认是start
完整代码:
<template>
<div class="content">
<div class="dh" name="jumpitem" ref="content1" :id="'id'+index">动画</div>
<div class="donghua">
<ul class="firstPart">
<li v-for="(item, index) in list" :key="index">
<a href=""