How to animate slimScroll using jQuery

南楼画角 提交于 2019-12-07 10:18:42

问题


How can I animate this using jQuery? I'm trying to create a smooth scroll-to function when the user clicks the span p1c1. The slimScroll is working, but I'm not sure how to incorporate an animation function into this. Should I try tweening?

$('.p1c1').on("click", function(){
    var fromTop = $('.p2c1').position().top;
    $("#panel2").slimScroll({ scrollTo: fromTop  });
});

This is the type of animation I'm trying to do, but within my slimScroll panel:

$('html, body').animate({
    scrollTop: $(".middle").offset().top
}, 2000);

Here is the slimScroll library: https://github.com/rochal/jQuery-slimScroll/


回答1:


I was looking for the same thing but couldn't find an existing solution - so I've made a simple fork of rochal's code. You can find it here: https://github.com/edragame/jQuery-slimScroll

The only change I made was to add an animate option, like so:

$("#panel2").slimScroll({ scrollTo: fromTop, animate: true });

Let me know if that helps.




回答2:


"Animate: true" does not work.

You have to cut out the "if (isJump)" part in jquery.slimscroll.js and replace it with this:

if (isJump)
      {
        delta = y;
        var offsetTop = delta / me[0].scrollHeight * me.outerHeight();
        offsetTop = Math.min(Math.max(offsetTop, 0), maxTop);
        bar.css({ top: offsetTop + 'px' });
        me.animate(
          { scrollTop: delta + 'px' },
          1200
        );
      }
      if (!isJump){
        me.scrollTop(delta);
      }


来源:https://stackoverflow.com/questions/18523732/how-to-animate-slimscroll-using-jquery

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!