动态 jQuery Waypoints 循环

Dynamic jQuery Waypoints Loop

我正在努力处理一个循环的语法,该循环会动态设置 jQuery Waypoints。

目前我有这个代码 -

HTML 标记

我想为每个 'process-anchor' 创建一个 jQuery 航点

<div class="container">
   <div class="process-anchor-1"></div>
   <div class="process-anchor-2"></div>
   <div class="process-anchor-3"></div>
   <div class="process-anchor-4"></div>
   <div class="process-anchor-5"></div>
</div>

<div class="image-list">
    <div class="process-image"><img src="test.jpg"/></div>
    <div class="process-image"><img src="test.jpg"/></div>
    <div class="process-image"><img src="test.jpg"/></div>
    <div class="process-image"><img src="test.jpg"/></div>
    <div class="process-image"><img src="test.jpg"/></div>
</div>

Javascript代码(当前)

var process_fixed_anchor_1 = $('.process-anchor-1').waypoint({
      handler: function(direction) {
         $(".process-image-1").toggleClass("fade-in");
      }
});

我想 运行 通过并创建 waypoints 但是锚点 DIV 的数量可能会改变。我怎样才能将上面的代码编辑为动态的,这样我就不必每次都具体化了?

谢谢,

DIM3NSION

仍然不太清楚您要完成的任务,但在给定未知数量的锚 div 的情况下,我将如何动态地将 waypoints 分配给页面:

标记

我已将 class="trigger-anchor" 添加到您的锚点 div,希望找到一种更容易接近的方式来定位这些 div。还要在你的 process-image-* 上放置一个共同的 class 而不是让它们都是唯一的。

<div class="container">
    <div class="process-anchor-1" class="trigger-anchor">
        <div class="process-image"><img src="test.jpg"/></div>
    </div>
    <div class="process-anchor-2" class="trigger-anchor">
        <div class="process-image"><img src="test.jpg"/></div>
    </div>
    <div class="process-anchor-3" class="trigger-anchor">
        <div class="process-image"><img src="test.jpg"/></div>
    </div>
    <div class="process-anchor-4" class="trigger-anchor">
        <div class="process-image"><img src="test.jpg"/></div>
    </div>
    <div class="process-anchor-5" class="trigger-anchor">
        <div class="process-image"><img src="test.jpg"/></div>
    </div>
</div>

JavaScript

我将 运行 .each() class="trigger-anchor" 由 waypoints 构建的元素。这样我就不必声明 var loops = 5; 或类似的东西。

<script type="text/javascript">

    // Wait until our DOM is ready
    $( document ).ready( function() {

        // Keep Track of how many we make and store 
        // our instances in an array to access if 
        // we need to later
        var anchors = array();

        $( '.trigger-anchor' ).each( function() {

            var tmp_instance = $( this ).waypoint({
                handler: function(direction) {
                    $( this ).children('process-image').toggleClass("fade-in");                        
                }
            });

            anchors.push( tmp_instance );

        } );

    } );

</script>

看看这是否有助于让您朝着正确的方向前进。

根据 Waypoints 网站 http://imakewebthings.com/waypoints/guides/jquery-zepto/,您可以完成以下相同的事情(waypoints 将循环并用每个实例填充您的数组)。我在我的网站上使用了这种方法。

//within your document.ready function

var anchors = array();

anchors = $( '.trigger-anchor' ).waypoint({
    handler: function(direction) {
        $(this).children('process-image').toggleClass("fade-in");
    }
});

//ALTERNATE METHOD
//you can also include your handler in the waypoint call

anchors = $( '.trigger-anchor' ).waypoint(function(){
    $(this).children('process-image').toggleClass("fade-in");
});