vue 锚点定位

<template>
<div class="details">
<div class="wrapper w">
<div class="benefit">
<div class="benfit-left">
//这个是页签
<div class="benefit-cell" ref="searchBar" :class="{'fixed': searchBarFixed}">
<div class="benefit-cell-title tabs">
<div class="wrapper-tab">
<span class="tab" :class="{'active1':index==current}" v-for="(item,index) in nav" v-on:click="tabSelect(index)">{{item.text}}</span>
<div v-if="searchBarFixed" class="insure-btn" @click="goInsured(detailsData.code)">立即投保</div>
</div>
</div>
</div>
//第一部分
<div class="benefit-cell" ref="introduce">
<div class="benefit-cell-content">
<!--todo:产品介绍-->
<div class="wrapper" v-html="detailsData.content"></div>
</div>
</div>
//第二部分
<div class="benefit-cell" ref="problem">
<div class="benefit-cell-title">
<h4>常见问题</h4>
<a class="benefit-cell-detail" v-if="subLink.notice_more" @click="goDetails(subLink.notice_more.key,subLink.notice_more.title,detailsData.id)">{{subLink.notice_more.title}}</a>
</div>
<div class="benefit-cell-content">
<!--todo:常见问题-->
<div class="wrapper" v-html="detailsData.notice"></div>
</div>
</div>
//第三部分
<div class="benefit-cell" ref="claims">
<div class="benefit-cell-title">
<h4>理赔说明</h4>
<a class="benefit-cell-detail" v-if="subLink.claim_notice" @click="goDetails(subLink.claim_notice.key,subLink.claim_notice.title,detailsData.id)">{{subLink.claim_notice.title}}</a>
</div>
<div class="benefit-cell-content">
<!--todo:理赔内容-->
<el-steps :active="contentClaims.length" align-center style="margin:60px 0">
<el-step :title="item.title" :description="item.info" v-for="(item,index) in contentClaims" :key="index"></el-step>
</el-steps>
</div>
<div class="benefit-cell-content" style="min-height:600px"> </div>
</div>
</div>
</div>
</div>
</div>
</template> <script>
import urls from "@/api/urls";
let offsetTop, problemTop, claimsTop;
export default {
components: {
"bg-header": header
},
data() {
return {
detailsData: {},
productType: '',
defaultAvatar,
current: 0,
subLink: '',
insureNotes: {},
searchBarFixed: false,
nav: [{
text: '产品介绍',
target: '#introduce'
}, {
text: '常见问题',
target: '#problem'
}, {
text: '理赔说明',
target: '#claims'
}],
code:'',
contentClaims:[]
}
},
created() {
this.id = this.$route.query.id
this.getInfo()
},
mounted() {
window.addEventListener("scroll", this.handleScroll);//页面加载的时候调滚动的方法
},
methods: {
handleScroll() { //滚动的方法
var scrollTop = document.documentElement.scrollTop || document.body.scrollTop; //这里的判断是为了兼容各个浏览器
offsetTop = this.$refs.searchBar.offsetTop;
problemTop = this.$refs.problem.offsetTop;
claimsTop = this.$refs.claims.offsetTop;
if(scrollTop > offsetTop) {
this.searchBarFixed = true;
} else {
this.searchBarFixed = false;
}
if(scrollTop >= problemTop && scrollTop < claimsTop) {
this.current = 1;
} else if(scrollTop >= claimsTop) {
this.current = 2;
} else {
this.current = 0;
}
console.log(offsetTop)
},
tabSelect(index) { //tab切换的方法
this.current = index;
// 锚点实时切换
let stepTop =
this.$refs.introduce.offsetTop let buyTop =
this.$refs.problem.offsetTop let evaluateTop =
this.$refs.claims.offsetTop
console.log(stepTop)
switch(index) {
case 0:
if(!document.documentElement.scrollTop){ //这里的判断是为了兼容各个浏览器
document.body.scrollTop = stepTop
}else{
document.documentElement.scrollTop = stepTop
}
break
case 1:
if(!document.documentElement.scrollTop){
document.body.scrollTop = buyTop
}else{
document.documentElement.scrollTop = buyTop
}
break
case 2:
if(!document.documentElement.scrollTop){
document.body.scrollTop = evaluateTop
}else{
document.documentElement.scrollTop = evaluateTop
}
break
default:
break
}
},
}
};
</script> <style scoped lang="less">
@import "../../assets/css/mixins";
.fixed {
position: fixed;
top: 0;
left: 0;
width: 100%;
z-index: 10;
background: #fff;
box-shadow: 2px 0px 20px rgba(0, 0, 0, 0.3);
.tabs {
width: 1200px;
margin:0 auto;
}
}
</style>

vue 锚点定位的更多相关文章

  1. vue滑动吸顶以及锚点定位

    Vue项目中需要实现滑动吸顶以及锚点定位功能.template代码如下: <template> <div class="main"> <div id= ...

  2. html中设置锚点定位的几种常见方法(#号定位)

    在html中设置锚点定位我知道的有几种方法,在此和大家分享一下: 1.使用id定位: <a href="#1F">锚点1</a> <div id=&q ...

  3. 【TRICK】解决锚点定位向下浮动Xpx问题

    1. 问题描述 页面滚动后,菜单栏会固定在页头,当锚点定位时,菜单会遮盖部分定位后的内容,所以需要在锚点定位后自动向下漂移Xpx. 2. 解决办法 a. 利用空div 占位,如下: <a hre ...

  4. 当锚点定位遇上position: fixed

    <!DOCTYPE html><html> <head> <title>当锚点定位遇上position: fixed</title> < ...

  5. Android tabLayout+recyclerView实现锚点定位

    原文链接:https://mp.weixin.qq.com/s/L3o2i3WTmg1ScXEYDS8YCg 在上一篇文章 Android 实现锚点定位中,我们介绍了tablayout+scrollV ...

  6. Android 实现锚点定位

    相信做前端的都做过页面锚点定位的功能,通过<a href="#head"> 去设置页面内锚点定位跳转. 本篇文章就使用tablayout.scrollview来实现an ...

  7. 锚点定位,jquery定位到页面指定位置

    jquery锚点定位 $('body,html').animate({scrollTop: $('#ter1').offset().top}, 500);#ter1是你要定位的id对象,500是0.5 ...

  8. js实现锚点定位

    js实现锚点定位的原理是,算出定位的标签距离顶部的高度,点击触发标签,重新赋值滚动条的高度到达指定位置. <!DOCTYPE html> <html> <head> ...

  9. html锚点定位不准确问题

    问题描述 当顶部固定时,点击锚点,会跳转到锚点以下. <style> #one,#two,#three{ height: 500px; } #top{ position: fixed; h ...

随机推荐

  1. .csv文件内容分隔符

    CSV文件默认以英文逗号做为列分隔符,换行符作为行分隔符.  如果不提供网页形式只用命令行或二进制程序输出数据到CSV,只需要将数据段按,分割,行按\n分割,写入到一个.csv文件即可.  但有时字段 ...

  2. 「JavaSE 重新出发」05.03.01 利用反射分析类

    在 java.lang.reflect 包中有三个类 Field, Method 和 Constructor 分别用于描述类的域.方法和构造器. Class 类中的 getFields, getMet ...

  3. Book---强连通分量

    这几天一直在做强连通,现在总结一小下 1.定义 在一个有向图中,如果任意的两个点都是相互可达的,就说这个图是强连通的,有向图的极大强连通子图,称为强连通分量 2.求法 学的是白书上的tarjan算法 ...

  4. Uva 11324 The Largest Clique【强连通 DAG动规 spfa】

    白书上的例题 做一遍tarjan后,缩点,每一个scc节点的权为它的结点数,做一次DAG上的动规,求出路径上的最大点权和,就可以了 #include<cstdio> #include< ...

  5. sdoi2013 spring(hash+容斥)

    大体思路是先求出来\(f[i]\)代表有至少\(i\)个位置相同的点对数. 然后就已经没什么好害怕的了(跟BZOJ3622一样) 然后这个\(f[i\)]怎么求呢? 最无脑的方法就是枚举位置,然后\( ...

  6. [JZOJ]100046【NOIP2017提高A组模拟7.14】收集卡片

    Star 计划订购一本将要发行的周刊杂志,但他可不是为了读书,而是-- 集卡. 已知杂志将要发行 N 周(也就是 N 期),每期都会附赠一张卡片.Star 通 过种种途径,了解到 N 期杂志附赠的卡片 ...

  7. java方法名的重载

    方法的重载:方法名相同,参数不同,按照参数类型进行匹配 创建一个Simple 类,然后定义了两个方法 package cuteSnow; public class Simple { // 方法的重载, ...

  8. C# .net IDE Rider入门

    话说史上最强IDE Visual Studio 所向披靡数十载尚无敌手,现在Intellij带着统一IDE界的目标来挑战VS的霸主地位.了解Rider后发现,哎哟亮点多多,还不错哦! Rider是一款 ...

  9. 【【henuacm2016级暑期训练】动态规划专题 L】Civilization

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 给一个森林. 就是由很多棵树组成.. 然后会询问你其中一棵树的最长链. 初始状态的最长链可以用两遍dfs分别找最长路得到. 然后要求 ...

  10. 2015 Multi-University Training Contest 7 hdu 5375 Gray code

    Gray code Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total S ...