jquery - 每个 child 都做同样的事情,但有时间间隔

标签 jquery

我希望 #house 子图像添加类 .active 但不是同时添加(当前我的脚本就是这样做的),首先我想要第一个 img 元素获取类 .active 然后第二个并无限循环

    function ind(){
        $('#house').children().toggleClass('active');
    }
    setInterval(ind,2000);
        <div id="house">
            <img class="saxli" src="saxli.png">
            <img class="roof" src="roof.png">
            <img class="door" src="door.png">
            <img class="sabole" src="sabole.png">
            <img class="window1" src="window1.png">
            <img class="window2" src="window2.png">
        </div>
        .active {
            transform: scale(1.1);
        }

最佳答案

要实现此目的,您需要在每 2 秒调用一次的 ind() 函数中计算出哪个元素具有 active 类,然后将其移动到下一个img。如果没有元素具有该类,或者最后一个元素具有该类,则使第一个 img 再次处于事件状态。试试这个:

var $imgs = $('#house img');

function ind() {
  var $current = $imgs.filter('.active').removeClass('active');
  var $target = $current.next();
  if ($target.length === 0)
    $target = $imgs.first();
    
  $target.addClass('active');
}

ind(); // call on page load
setInterval(ind, 2000); // call every 2 seconds
img {
  display: inline-block;
  border: 1px solid #C00;
  width: 50px;
  height: 50px;
}

.active {
  transform: scale(1.1);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="house">
  <img class="saxli" src="saxli.png">
  <img class="roof" src="roof.png">
  <img class="door" src="door.png">
  <img class="sabole" src="sabole.png">
  <img class="window1" src="window1.png">
  <img class="window2" src="window2.png">
</div>

关于jquery - 每个 child 都做同样的事情,但有时间间隔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57022808/

相关文章:

javascript - 更新 CSS 过渡

javascript - Bootstrap 日期选择器未在隐藏的输入字段上对齐

jquery - 激活Rails link_to ajax ,用jquery调用

javascript - 如何让 div 在点击时加载而不是在页面加载时加载?

jquery - qTip:当元素可见时显示工具提示

jquery - 使用 jQuery 获取属性名称值

javascript - 当用户进入我的网站时查找并存储邮政编码

jquery - 单击 div 时如何将类添加到 div 内的跨度?

javascript - jquery IF 在 iphone 上没有按预期工作

javascript - 获取最近的 anchor 标记的值和href?