最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue監(jiān)聽滾動實(shí)現(xiàn)錨點(diǎn)定位(雙向)示例

 更新時間:2019年11月13日 11:34:48   作者:樂夫天命兮  
今天小編大家分享一篇Vue監(jiān)聽滾動實(shí)現(xiàn)錨點(diǎn)定位(雙向)示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

在項目需求中需要實(shí)現(xiàn)一個滾軸聯(lián)動錨點(diǎn)的功能

效果圖如下:

功能代碼demo如下:

<template>
 <div class="container">
  <div class="wrapper">
   <div class="section" style="height:500px;width:100%" v-for="(item, index) in list" :key="index" :style="{'height':index==0?'1000px':'500px'}">
    <div style="width:100%;height:100%;font-size:30px;text-align:center;font-weight:bold;color:#fff;" :style="{'background':item.backgroundcolor}">{{item.name}}</div>
   </div>
  </div>
  <div id="nac" style="height:500px;"></div>
  <nav style="position:fixed;right:30px;top:300px;">
  <a class="nav1" v-for="(item, index) in navList" :key="index" @click="jump(index)" :class="index==0?'current':''">{{item}}</a>
  </nav>
 </div>
</template>
<script>
 export default {
  data(){
   return {
    scroll: '',
    list: [{
    name: "第一條",
    backgroundcolor: "#90B2A3"
    }, {
    name: "第二條",
    backgroundcolor: "#A593B2"
    }, {
    name: "第三條",
    backgroundcolor: "#A7B293"
    }, {
    name: "第四條",
    backgroundcolor: "#0F2798"
    }, {
    name: "第五條",
    backgroundcolor: "#0A464D"
    }],
    navList: [1, 2, 3, 4, 5]
   }
  },
  methods: {
   dataScroll: function () {
    this.scroll = document.documentElement.scrollTop || document.body.scrollTop;
   },
   jump(index) {
    let jump = document.getElementsByClassName('section');
    // 獲取需要滾動的距離
    let total = jump[index].offsetTop;
    // Chrome
    document.body.scrollTop = total;
    // Firefox
    document.documentElement.scrollTop = total;
    // Safari
    window.pageYOffset = total;
    // $('html, body').animate({
    // 'scrollTop': total
    // }, 400);
   },
   loadSroll: function () {
    var self = this;
    var $navs = $(".nav1");
    var sections = document.getElementsByClassName('section');
    for (var i = sections.length - 1; i >= 0; i--) {
     if (self.scroll >= sections[i].offsetTop - 100) {
      $navs.eq(i).addClass("current").siblings().removeClass("current")
      break;
     }
    }
   }
  },
  watch: {
   scroll: function () {
    this.loadSroll()
   }
  },
  mounted() {
   window.addEventListener('scroll', this.dataScroll);
  }
 }
</script>

<style>
 * {
 padding: 0;
 margin: 0;
 }
 .nav1 {
  display: block;
  width: 40px;
  height: 40px;
  text-align: center;
  line-height: 40px;
  background: #eee;
  margin: 10px 0;
 }
 .current {
  color: #fff;
  background: red;
 }
</style>

以上這篇Vue監(jiān)聽滾動實(shí)現(xiàn)錨點(diǎn)定位(雙向)示例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

洛南县| 郯城县| 绥滨县| 邢台市| 隆林| 含山县| 长乐市| 大竹县| 盘山县| 河池市| 灌阳县| 日喀则市| 宿迁市| 萍乡市| 盐边县| 浦东新区| 金溪县| 连平县| 莆田市| 根河市| 贺兰县| 江北区| 岳普湖县| 元氏县| 加查县| 柘城县| 万宁市| 峨边| 锡林郭勒盟| 宁波市| 游戏| 常德市| 丽江市| 措美县| 黄龙县| 诏安县| 晋宁县| 丹阳市| 普定县| 比如县| 绥棱县|