javascript - 交换两个具有相同类的 div

标签 javascript jquery

我有点被这个小部分困住了,无法继续我的项目。 基本上我想做的是在具有相同类的两个 div 之间淡入/淡出,但保持函数尽可能短。

我已经做了以下操作,但显然只有当两个 div 都隐藏在乞讨中并且我需要在加载时显示默认标题(第一个 div)并且 2 秒后我想交换到另一个标题,然后它才会保留时,它才会起作用循环往复。

HTML:

<div class="ref-title">Sample Title #1</div>
<div class="ref-title">Sample Title #2</div>

JS:

function titleSwap () {
    $('.ref-title:hidden:first').fadeIn(500).delay(2000).fadeOut(500, function () {
        $(this).appendTo($(this).parent());
        titleSwap();
    });
} titleSwap();

CSS:

.ref-title {
    display: none;
}

JS Fiddle Demo

所以我需要第一个 div 显示为 block ,然后它会消失,另一个会出现并继续这样......有什么提示吗?

最佳答案

JSFiddle - 将隐藏类添加到您想要以隐藏方式启动的 div,然后按如下方式更改函数应该可以。

HTML

<div class="ref-title">Sample Title #1</div>
<div class="ref-title hidden">Sample Title #2</div>

CSS

.hidden {
    display: none;
}

JS

(function titleSwap() {
    $('.ref-title').not('.hidden').delay(2000).fadeOut(500, function () {
        var $me = $(this);
        $('.ref-title.hidden').removeClass('.hidden').hide().fadeIn(500, function () {
            $(this).removeClass('hidden');
            $me.addClass('hidden');
            titleSwap();
        });
    });
})();

此外,如果您不想在标记内包含 DIV 上的隐藏类,则可以使用 $('.ref-title:nth-child(2)').addClass( 'hidden');titleSwap 函数之前将类添加到第二个 DIV。

关于javascript - 交换两个具有相同类的 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20420002/

相关文章:

javascript - 使用 JQuery 追加列表值

javascript - 这些是正确的事件监听器语义吗?

javascript - 延迟脚本与预加载链接有何不同?

javascript - 在关闭特定标签之前使用 JS 选择 HTML 标签

jquery选择表 'td'中的输入框直到下一个 'th'

javascript - jQuery UI Slider 拒绝显示自定义句柄

javascript - 突出显示表行中项目之间的差异

javascript - 当我点击提交按钮时,我的电子邮件没有发送,为什么?

javascript:如何获取 json 对象的最高层作为数组?

javascript - 使用 BootstrapVue 的 VueJs Form textarea 和文本格式问题