javascript - 在可滚动部分的视口(viewport)中,如何更改元素的样式属性?

标签 javascript html css codeigniter

我在使用 Bootstrap 的 CodeIgniter 上使用 wow.js 时遇到问题,只有视口(viewport)中的元素显示而不是向下滚动所有元素都在那里但可见性等于隐藏并且不会改变它。

问题是我在一个可滚动的部分。

更新

我找到了解决方法 here ,因此为此目的,我使用 wow.js 制作动画,使用 isInViewport.min.js 制作触发。

我的:

<head>
  <link rel="stylesheet" href="css/animate.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js">            </script>
  <script src="js/wow.min.js"></script>      
</head>

我的模板:

        <section  id="scrollab" class="scrollable  w-f-md" style="position:fixed; z-index:1">  
                  <div id="target"  style="height:100%;">                  
                    <?php getPage($page); ?>
                  </div> <!-- /target -->
        </section>

我的 View :(这是页面目标)

<!DOCTYPE html>  
<script src="isInViewport.min.js"></script>
<div class="row row-sm padder-lg ">
    <?php
    foreach ($top->feed->entry as $key => $value) 
    {
        $value->title->label = str_ireplace( "- ".$value->artist->label, "",  $value->title->label);
        if($key >= $this->config->item("items_top"))
            continue;
        $image = $value->image[2]->label;
        if($image == '')
            $image = base_url()."assets/images/no-cover.png";
        $image = str_ireplace("170x170", "200x200", $image);
    ?>      
    <div class="wow bounceInUp col-sm-4" style="visibility:hidden;">
        <div class="item " >
            <div class="pos-rlt ">
                <figure class="effect-main-2">
                    <img class="img-full" src="<?php echo $image; ?>"/>                     
                    <figcaption>
                        <div style="overflow:hidden;"></div>
                        <div class="item-overlay opacity">
                            <span class="text-center">
                                <i class="icon-control-play"></i>    
                            </span>                
                        </div>                       
                    </figcaption>
                </figure>
            </div>
        </div>
    </div>      

    <script>
       new WOW().init();
    </script>

然后,在与建议相同的 View 中,我添加了这个脚本:

    <script>
      var scrollable = $('#scrollab');
          scrollable.on('scroll.wow', function(){
          scrollable.find('.wow:not(.animated):in-viewport').removeAttr('style').addClass('animated');
        }));
    </script>

</div> 

现在一切正常,谢谢大家。

最佳答案

我想我能够重现并解决您的问题。基本上 :in-viewport 不包含在 jquery 伪选择器中。所以你需要一个像http://www.appelsiini.net/projects/viewport这样的插件使其能够正常工作。还要确保此插件已加载到您的页面中。

这里是 :in-viewport 的工作示例 http://jsfiddle.net/tfLp17oz/

关于javascript - 在可滚动部分的视口(viewport)中,如何更改元素的样式属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29460729/

相关文章:

JavaScript 日期和年份

javascript - 如何在asp.net mvc中注销当前用户

javascript - 如何在javascript中控制验证

javascript - 如何在页面上移动图像并使其实时保持位置?

javascript - SVG DOM 对象间距/重叠

javascript - 如何从元素中删除所有继承和计算的样式?

jquery - 如果输入值等于特定文本,则显示 div

javascript - URL 管理工具?

javascript - MathJax 在 Jquery .click 事件中不起作用

html - CSS - IE-11 中输入框闪烁光标的 z-index 问题