5

我正在使用无限滚动 js(行为设置为 twitter)在索引页面上加载新内容。我担心的是,如何在通过无限滚动加载的新帖子上重新启动动画?我已经详细描述了所遵循的页面结构,如果有人可以分享相同的解决方案,我将不胜感激。

<!DOCTYPE html>
 <html lang="en">
  <head></head>
  <body>
   <div class="animsition">
    <header class="header"></header>
    <main class="main">
     <section class="main-body">
      <div id="infinite-scroll">
       <article class="post">
        <div class="post-body">
         <h2 class="post-title">
          <a href="" class="nav-link" title=""></a>
         <h2>
        </div>
       </article>
      </div>
      <div class="pagination">
       <a href="" class="next">Load Older Items</a>
      </div>
     </section>
    </main>
   <footer class="footer"></footer>  
  </div>
 </body>
</html>

这是JS,

$(".animsition").animsition({
 inClass : 'fade-in',
 outClass : 'fade-out',
 linkElement : '.nav-link',
 overlay : false
});

$(function() {
 $("#infinite-scroll").infinitescroll({ 
  navSelector: ".pagination",
  nextSelector: ".next",
  itemSelector: ".post",
  behavior: "twitter"
 },
function(newElements){

});
4

1 回答 1

0

我遇到了同样的问题(animsition + 无限滚动)并且在 SO 或其他任何地方都找不到一个好的答案,所以我对animsition.js 源进行了一些小手术,结果很好。

如果您查看第 66 行(在当前状态下),您将看到 animsition 绑定到链接点击和插入动画的位置。

$(options.linkElement).on("click." + namespace, function(event) {
  ...
}

如果我们改为使用一点Javascript 事件委托,那么我们可以有效地说“绑定到现在和将来页面上的所有锚点/链接”。所以像...

$("body").on("click." + namespace, options.linkElement, function(event) {
  ...        
});

这只是我现在的一个黑客,但我稍后会回去(当我不在项目的枪下时)做一个适当的分叉、测试、拉取请求等,并尝试让它进入主要项目。希望这对您和其他任何人现在都有效。

于 2015-07-24T17:16:35.020 回答