【问题标题】:scroll not appear after ajax call fullpage.jsajax调用fullpage.js后不出现滚动
【发布时间】:2015-05-02 15:59:58
【问题描述】:

我正在使用带有fullpage.js 的 ajax 来获取图库图像并在其上应用同位素,在我单击打开图库的链接(转到目标部分)后,页面的滚动不会出现,我不能滚动,但如果我重新调整浏览器的大小,滚动就会出现..

/* HTML */

<div class="section" id="textscroll">
    <div class="s" data-anchor="stext">
        <div class="container">
            <div class="ajax_content"></div>
        </div>
    </div>
</div>

/* JS */

$('#fullpage').fullpage({
        anchors: ['home', 'about', 'gallery'],
        keyboardScrolling: false,
        autoScrolling: true,
        loopHorizontal: false,
        scrollOverflow: true,
        controlArrows: false
});

$('.gallery-link').on('click','a',function(){

      var url = "directory/gallery_ajax.php";
      var postid = $(this).attr('data-post');

      $('.loading').addClass('active');

          $.ajax({
             type : 'post',
             url  : url,
             data : {
                    action : 'user_clicked',
                    postid : postid
             },
             success : function( response ) {

                $('.ajax_content').html('<div class="content" id="gallery-container"><div class="isotope">'+response+'</div></div>');
                var $container = $('.isotope').isotope({
                       itemSelector: '.item',
                       masonry: {
                         columnWidth: 160,
                         isFitWidth: true
                           }
                    });
                    $container.imagesLoaded( function() {
                         $('.loading').removeClass('active');
                         $.fn.fullpage.moveTo(3,0);
                         $container.isotope( 'layout' );
                    });
             },
             error: function( message ){
                     console.log(message);
             }
          });
            return false;
});

【问题讨论】:

  • "$('.ajax_content').html "在你的响应函数中是滚动html的内容吗?
  • 是的,它包含大约 50 张图片,滚动应该应用于整个页面(部分)

标签: javascript jquery ajax fullpage.js slimscroll


【解决方案1】:

在响应函数中调用“$('.ajax_content').htm”后,您需要再次初始化滚动插件,因为您更改了 dom,并且必须重新初始化插件以计算新的页面尺寸

【讨论】:

  • fullpage.js 方法的问题不能检测页面是否有滚动,因为有内容的页面(部分)需要滚动,.slimScrollDiv 应该包装内容,但在我的情况下,在我调整浏览器大小之前,该类不会出现!
  • 我按照所有步骤更新了最新版本的 fullpage.js 和 slimScroll 包含在包中,但没有任何改变! :\ .. 有什么方法可以立即使用 jQuery 调整窗口大小,只是根据调整大小的动作显示滚动!
  • 我在这里找到了答案:stackoverflow.com/questions/26986136/…
  • 非常感谢你救了我!最后 .. (reBuild) 的工作原理类似于再次调整大小 .. 感谢您的帮助
【解决方案2】:

你可以使用:

$.fn.fullpage.reBuild();

文档Link

【讨论】:

    猜你喜欢
    • 2016-05-19
    • 2014-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多