zoukankan      html  css  js  c++  java
  • vue锚点

    第一种:

    router.js中添加

    mode: 'history',
       srcollBehavior(to,from,savedPosition){
        if(to.hash){
      return {
    selector:to.hash
     }
      }
     }
    

    组件:

    <template>
    <div>
    <ul class="list">
    <li><a href="#1" rel="external nofollow" >星期1</a></li>
    <li><a href="#2" rel="external nofollow" >星期2</a></li>
    <li><a href="#3" rel="external nofollow" >星期3</a></li>
    <li><a href="#4" rel="external nofollow" >星期4</a></li>
    <li><a href="#5" rel="external nofollow" >星期5</a></li>
    <li><a href="#6" rel="external nofollow" >星期6</a></li>
    <li><a href="#7" rel="external nofollow" >星期7</a></li>
    </ul>
    <div class="main_con" id="1">11111111111111111111111111111111</div>
    <div class="main_con" id="2">22222222222222222222222222222222222</div>
    <div class="main_con" id="3">33333333333333333333333333333333333333</div>
    <div class="main_con" id="4">444444444444444444444444444444444444444</div>
    <div class="main_con" id="5">555555555555555555555555555555555555555</div>
    <div class="main_con" id="6">666666666666666666666666666666666666666</div>
    <div class="main_con" id="7">7777777777777777777777777777777777777777</div>
    </div>
    </template>
    <script>
    export default {
    data(){
    return {
    }
    }
    }
    </script>
    <style>
    .list{
     100%;
    height: 50px;
    }
    li{
     11%;
    height: 50px;
    line-height: 50px;
    text-align: center;
    border: 1px solid #ccc;
    color: #ff6c00;
    float: left;
    list-style: none!important;
    }
    .main_con{
     100%;
    height: 200px;
    border: 1px solid #ccc;
    line-height: 200px;
    text-align: center;
    color: blue;
    }
    </style>
    //前端全栈学习交流圈:866109386
    //面向1-3经验年前端开发人员
    //帮助突破技术瓶颈,提升思维能力
    

    第二种:

    写一个方法 组件

    <template>
     <div>
      <div><a href="javascript:void(0)" rel="external nofollow" rel="external nofollow" @click="goAnchor('#anchor-'+index)" v-for="index in 20"> {{index}} </a></div>
      <div :id="'anchor-'+index" class="item" v-for="index in 20">{{index}}</div>
    </div>
      </template>
    <script>
    export default{
    data(){
    return {
    }
    },
    methods: {
      goAnchor(selector) {
         var anchor = this.$el.querySelector(selector)
         document.documentElement.scrollTop = anchor.offsetTop
      }
     }
    }
    </script>
    <style>
    .item{
     100%;
    height: 200px;
    line-height: 200px;
    text-align: center;
    }
    </style>
    //前端全栈学习交流圈:866109386
    //面向1-3经验年前端开发人员
    //帮助突破技术瓶颈,提升思维能力
    

    第三种: 自定义指令

    <template>
    <div>
      <div><a href="javascript:void(0)" rel="external nofollow" rel="external nofollow" v-anchor="index" v-for="index in 20"> {{index}} </a></div>
      <div :id="'anchor-'+index" class="item" v-for="index in 20" >{{index}}</div>
    </div>
    </template>
    <script>
    export default{
    data(){
    return {
    }
    }
    }
    </script>
    <style>
    .item{
     100%;
    height: 200px;
    line-height: 200px;
    text-align: center;
    }
    </style>
    

    main.js 定义全局指令 方便其他地方复用

    Vue.directive('anchor',{
    inserted : function(el,binding){
    el.onclick = function(){
      document.documentElement.scrollTop = $('#anchor-'+binding.value).offset().top
    }
    }
    })

    如果路由有问题

    就用方法

    <div style="position:fixed;top:10%;right:13%;">
                <div style="margin-bottom:15px"><a @click.prevent="custormAnchor('info1')" rel="external nofollow" class="topFloat">1</a></div>
                <div style="margin-bottom:15px"><a @click.prevent="custormAnchor('info2')" rel="external nofollow" class="topFloat">2</a></div>
                <div style="margin-bottom:15px"><a @click.prevent="custormAnchor('info3')" rel="external nofollow" class="topFloat">3</a></div>
                <div style="margin-bottom:15px"><a @click.prevent="custormAnchor('info4')" rel="external nofollow" class="topFloat">4</a></div>
            </div>

    全局minx定义方法

    custormAnchor(anchorName) {
                // 找到锚点
                let anchorElement = document.getElementById(anchorName);
                // 如果对应id的锚点存在,就跳转到锚点
                if(anchorElement) { 
                    anchorElement.scrollIntoView()
                }
            },
  • 相关阅读:
    Mvc+三层(批量添加、删除、修改)
    js中判断复选款是否选中
    EF的优缺点
    Git tricks: Unstaging files
    Using Git Submodules
    English Learning
    wix xslt for adding node
    The breakpoint will not currently be hit. No symbols have been loaded for this document."
    Use XSLT in wix
    mfc110ud.dll not found
  • 原文地址:https://www.cnblogs.com/ll15888/p/12036979.html
Copyright © 2011-2022 走看看