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()
                }
            },
  • 相关阅读:
    外部编辑Infopath的表单模板(xsn)
    安装SQL Server 2008时可能遇到性能计数器不一致的情况
    Windows应用程序中使用Windows验证方式要注意的地方
    在MOSS 2007中使用Web Capture这个WebPart
    MOSS 配置SSO的时候可能遇到"您没有执行此操作的权限"的错误
    基于Web的操作系统,是否有可能?
    ASP.NET 中对于异常的处理
    在读取站点地图时自动应用安全设置
    JavaScript中的Window窗口对象【转载】
    当动态TSQL语句遇到除零的问题
  • 原文地址:https://www.cnblogs.com/ll15888/p/12036979.html
Copyright © 2011-2022 走看看