Scroll if element is not visible

前端 未结 9 718
旧时难觅i
旧时难觅i 2020-12-14 17:57

how to determine, using jquery, if the element is visible on the current page view. I\'d like to add a comment functionality, which works like in facebook, where you only sc

9条回答
  •  佛祖请我去吃肉
    2020-12-14 18:27

    Improving Loktar's answer, fixing the following:

    1. Scroll up
    2. Scroll to a display:none element (like hidden div's etc)

      function scrollToView(element){
          var offset = element.offset().top;
          if(!element.is(":visible")) {
              element.css({"visibility":"hidden"}).show();
              var offset = element.offset().top;
              element.css({"visibility":"", "display":""});
          }
      
          var visible_area_start = $(window).scrollTop();
          var visible_area_end = visible_area_start + window.innerHeight;
      
          if(offset < visible_area_start || offset > visible_area_end){
               // Not in view so scroll to it
               $('html,body').animate({scrollTop: offset - window.innerHeight/3}, 1000);
               return false;
          }
          return true;
      }
      

提交回复
热议问题