zoukankan      html  css  js  c++  java
  • vue模拟锚点定位加动画

    //模拟锚点跳转
    goAnchor(selector) {
                 let anchor = this.$el.querySelector(selector);
                 //document.documentElement.scrollTop = anchor.offsetTop;
                 
    let total = anchor.offsetTop;

                 // 平滑滚动,时长500ms,每10ms一跳,共50跳
                 // 获取当前滚动条与窗体顶部的距离
                 
    let distance = document.documentElement.scrollTop || document.body.scrollTop
                 // 计算每一小段的距离
                 
    let step = total/50;
                 (function smoothDown () {
                     if (distance < total) {
                         distance += step
                       // 移动一小段
                         
    document.body.scrollTop = distance
                         document.documentElement.scrollTop = distance
                       // 设定每一次跳动的时间间隔为10ms
                         
    setTimeout(smoothDown, 10)
                     } else {
                       // 限制滚动停止时的距离
                         
    document.body.scrollTop = total
                         document.documentElement.scrollTop = total
                     }
                 })()
             }

    <li
        class="pull-left"
        v-for="(item,index) in navList"
        :key="item.index"
        @click="goAnchor('#anchor-'+index)">
        <span class="icon"></span>
        <p class="hot-article">#{{item.hotArticle}}#</p>
        <p>{{item.words}}</p>
    </li>

  • 相关阅读:
    ACM-超级楼梯
    clientt.c
    call.c
    answer.c
    aa.c
    client.c
    service.c
    自己动手开发jQuery插件
    apache-commons-net Ftp 进行文件、文件夹的上传下载及日志的输出
    在Eclipse中制作SSH配置文件提示插件
  • 原文地址:https://www.cnblogs.com/shaozhu520/p/10131268.html
Copyright © 2011-2022 走看看