zoukankan      html  css  js  c++  java
  • scroll滚动监听实现animate返回顶部(有坑)

    就是常见网页里滚动到一定高度,出现返回顶部按钮,触发事件按钮再消失。animate巨坑。

    html

    <div class="J_goTop"><img src="../res/static/img/totop.png" alt=""></div>

    js

    <script>
    $(document).scroll(function() {
        var scroH = $(document).scrollTop();  //滚动高度
        if (scroH >= 100) { // 显示
            $('.J_goTop').css("display", "block")  // $('.J_goTop').fadeIn();
        } else{ // 消失
            $('.J_goTop').removeAttr("style")  // $('.J_goTop').fadeOut();
        }
        // 点击事件 
        $('.J_goTop').click(function(){
          if(scroH!=0){// 判断好像无效 :)
            // 巨坑!!!执行animate前先结束这个循环动作
            $('body,html').stop().animate({}).animate({ // document,window对象不能执行animate
              scrollTop: '0px',
            }, 600);
            return false;
          }
        })
      });
    </script>

    css

    /* 回到顶部 */
    .J_goTop{
      position: fixed;
      bottom: 10%;
      right: 1%;
      cursor: pointer;
       2.5rem;
      height: 2.5rem;
      display: none;
    }
    .J_goTop img{ 100%;height: 100%}

    ps:一直以为是样式未及时清除…然后发现是jq中animate动画第二次点击事件没反应。

    原因:第一次触发后就一直在重复执行scroll=0的操作,导致无法进行第二次,也就是再次下拉会卡顿闪烁。

    解决:执行animate前,先结束这个上一次动作,再执行操作。

    $(‘body,html’).stop().animate({‘为空或具体操作’}).animate({
      scrollTop: ‘0px’,
    }, 600);

    借鉴:https://zhidao.baidu.com/question/542439686.html

  • 相关阅读:
    CF1324F Maximum White Subtree
    CF1204C Anna, Svyatoslav and Maps
    CF1187E Tree Painting
    CF1304E 1-Trees and Queries
    深入探究jvm之类装载器
    深入探究jvm之GC的算法及种类
    深入探究jvm之GC的参数调优
    spring源码解析之AOP原理
    spring注解扫描组件注册
    cas-client单点登录客户端拦截请求和忽略/排除不需要拦截的请求URL的问题
  • 原文地址:https://www.cnblogs.com/xiong88/p/12461052.html
Copyright © 2011-2022 走看看