gpt4 book ai didi

jquery - 在 jQuery 中选择下一张图像

转载 作者:行者123 更新时间:2023-12-01 00:53:09 25 4
gpt4 key购买 nike

我有以下 HTML 标记。

<div class="caption">
<img class='active' alt='My Caption' src='path/to/image' />
<div>My Caption</div>
</div>
<div class="caption">
<img alt='My Caption 2' src='path/to/image' />
<div>My Caption 2</div>
</div>

标题通过一些 JS 被放置在 alt 标签的那些 DIV 内。

        $('#slider img').each(function() {
$(this).wrap('<div class="caption"></div>').after('<div>' + $(this).attr('alt') + '</div>');
$('.caption').width($(this).width()).children('div').each(function() {
$(this).css({width: $(this).siblings('#slider img').width() -10, opacity: 0.5, display: 'block'});
});
});

我遇到的问题是当尝试让我的图像“滑动”时,它之前工作得很好,但现在我添加了字幕,但遇到了一些麻烦。

这是应该发生的事情:
它遍历每个图像,将类设置为事件状态并使图像淡入淡出,在没有标题的情况下它工作得很好,但现在我有了标题,它将事件类放在有标题的 div 上。

这是我的 JS

function simpleSlider(){
var $active = $('#slider img.active');

if($active.length == 0) $active = $('#slideshow img:last');

var $next = $active.next('img').length ? $active.next()
: $('#slider img:first');

$next.css({opacity: 0.0})
.addClass('active')
.animate({opacity: 1.0}, 1000, function() {
$active.removeClass('active');
$active.css({opacity: 0.0});
})
}

如何让它选择下一张图像,而不是显示“我的标题”的 div?

抱歉,如果这没有多大意义。

最佳答案

当你说:

var $next = $active.next('img').length ? $active.next()
: $('#slider img:first');

它假设下一个图像是直接邻居(因此在您的情况下$active.next('img').length将始终为0,因为有周围没有图像)。但由于您已将图像包装在容器元素内,您现在必须使用不同的方法进行遍历。

我会按照以下方式进行:

function simpleSlider() {


var $active = $('.caption.active');

if ($active.length == 0) $active = $('.caption:last');

var $next = $active.next('.caption').length ? $active.next() : $('.caption:first');

$next.css({
opacity: 0.0
}).addClass('active').animate({
opacity: 1.0
}, 1000, function() {
$active.removeClass('active');
$active.css({
opacity: 0.0
});
})
}

参见a working demo

编辑:

如果这些图像被覆盖并且隐藏的图像应始终淡入已显示的图像,您可以通过执行以下操作轻松解决此问题:

a.将行 $active.removeClass('active') 移到回调之外

b.添加以下 CSS:

.caption{
z-index: 100;
}
.caption:not(.active){
z-index: 0;
}

请注意,:not() 伪选择器并不适用于所有浏览器(即旧版 IE),但您会明白的。

这是another fiddle

关于jquery - 在 jQuery 中选择下一张图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10207721/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com