1

我正在尝试使用wow.js添加 JavaScript 动画效果,因此我对其进行了初始化:

<head>
  <link rel="stylesheet" href="css/animate.css">
  <script src="js/wow.min.js"></script>
  <script>
     new WOW().init();
  </script>
</head>

我把类效果(wow slideInRight)放在我的里面div

<div class="row row-sm padder-lg ">

        <?php
        foreach ($top->tracks->track as $key => $value) 
        {
            if($key >= $this->config->item("items_top"))
                return false;
            $image = $value->image[3]->text;
                if($image == '')
            $image = $value->image[2]->text;
                if($image == '')
            $image = base_url()."assets/images/no-cover.png";
        ?>       
        <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
            <div class="item wow slideInRight">
                <img style="background:url('<?php echo $image; ?>')"/>  
            </div>
        </div>
        <?php
        }
        ?>
</div> 

问题在于,这个 JavaScript 不是显示每个项目的效果,而是同时显示所有项目的效果。在循环中使用此 JavaScript 的正确方法是什么?

4

1 回答 1

1

WOW.js 初始化应该放在<body>not in的末尾<head>,如下所示:

   <script src="js/wow.min.js"></script>
   <script>
     new WOW().init();
   </script>
  </body>
</html>

除此之外,请记住,当您在滚动时到达对象时 wowjs 会启动动画,您的所有项目都在同一行上,因此在同一高度,动画一起启动是正确的。

如果您需要它们按顺序开始(即最左边的第一个,然后其他的继续,直到您到达右边的最后一个)data-wow-delay="<number_of_seconds>s",请为您添加一个适当的 div,并增加 number_of_seconds。

编辑:

您可以按照以下方式做一些事情:

<div class="row row-sm padder-lg ">

        <?php

        $delay=0;

        foreach ($top->tracks->track as $key => $value) 
        {
            if($key >= $this->config->item("items_top"))
                return false;
            $image = $value->image[3]->text;
                if($image == '')
            $image = $value->image[2]->text;
                if($image == '')
            $image = base_url()."assets/images/no-cover.png";
        ?>       
        <div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
            <div class="item wow slideInRight" data-wow-delay="<?php echo $delay; ?>s">
                <img style="background:url('<?php echo $image; ?>')"/>  
            </div>
        </div>
        <?php
            $delay+=0.5;
        }
        ?>
</div> 

这是你需要的吗?

于 2015-03-17T13:03:52.883 回答