6

我对 Nice Scroll 有疑问。它工作正常,但是当我加载 AJAX 图像时它不起作用。有趣的是,当我调整窗口大小、打开 Firebug 或其他什么时,它开始工作。

我该怎么做才能自动执行此操作?

我试过:

setTimeout(function(){
    $("window").trigger('resize');
}, 0);

AJAX加载后的功能,但它不起作用。

4

3 回答 3

14

当 div 上的内容发生变化时,您需要调用 nicescroll resize 方法。

$("your-div-name").getNiceScroll().resize()

请记住,如果 img 标签中未设置图像大小,则需要在所有图像完全加载后调用 resize。

于 2012-10-19T18:18:15.693 回答
2

除了 InuYaksa 的回答如果您无法访问实现,您可以在内容包装器上实现鼠标悬停功能作为解决方法。

// Call resize whenever mouse
$("#scroll-area").mouseover(function() {
  $("#scroll-area").getNiceScroll().resize();
});

来自:http ://eureka.ykyuen.info/2013/05/07/jquery-nicescroll-plugin-doesnt-work-for-dynamic-content/

改进的鼠标悬停解决方案

//in the case of scrolling content loaded via AJAX
    $(document).on('mouseover','#scroll-area', function () {
       $(this).getNiceScroll().resize();
    });

使用视口/换行

$(document).on('mouseover','#scroll-wrap', function () {

    var widget_wrap=$(this);
    var widget_viewport=$(this).parent();

    widget_viewport.getNiceScroll(widget_wrap).resize();

});
于 2014-10-09T13:00:46.707 回答
0

请您必须使用以下代码来解决您的问题。它适用于 ajax 负载。

$("MYSCROLLCONTAINERS").getNiceScroll().remove();
$("div[id^='ascrail']").remove();
jQuery("MYSCROLLCONTAINERS").niceScroll({
                autohidemode:false
            });

这对我有用。

于 2013-10-07T10:58:00.600 回答