vue循环实现锚点点击并平滑过渡

Posted 野猪佩奇007

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue循环实现锚点点击并平滑过渡相关的知识,希望对你有一定的参考价值。

项目场景:

pc端项目左侧为类别悬浮,点击右侧中心内容平滑过度到锚点点击位置


问题描述:

主要在于不是css实现,css实现很多,但是是vue循环出的,添加各个对应的类名也不同


解决方案:

循环给每一个添加点击事件并传入id名称加动态index拼接

<div :class="isname==index?'l-yellow':''" @click="upmaod(index)" 
v-for="(item,index) in shoplist" :key="index">
	<a href="javascript:void(0);" @click="goAnchor('#shoplist'+index)">{{item.name}}</a>
</div>

 <div class="e-product" :id="'shoplist'+index" v-for="(item,index) in shoplist" :key="index">
 //锚点命名id也为动态拼接

:class="isname==index?'l-yellow':''" @click="upmaod(index)" //用于点击改变左侧点击到的样式添加类名

vue js实现:

goAnchor(selector) {
      var anchor = this.$el.querySelector(selector);
      anchor.scrollIntoView({
        behavior: "smooth", // 平滑过渡
        block: "start", // 上边框与视窗顶部平齐
      });
    },

即可实现css般丝滑过渡

以上是关于vue循环实现锚点点击并平滑过渡的主要内容,如果未能解决你的问题,请参考以下文章

vue监听滚动事件 实现动态锚点

考虑到动态内容高度,使用 vue 过渡平滑展开/折叠过渡

如何获得光滑的滑块以在循环中平滑过渡

如何在 html 导航栏点击之间获得平滑过渡

JQuery 实现 锚点跳转

Vue/CSS,如何在两个交替元素之间进行平滑的高度过渡(包括小提琴)