以下脚本设置为淡出,然后淡入下一个横幅集。我想知道如何将其修改为交叉淡入淡出,以便下一个横幅集在现有横幅上淡出,然后消失。它会看起来更清洁。修改以使脚本交叉淡化而不是淡出然后淡入
我见过一堆用于交叉淡入淡出的脚本;然而,因为这个脚本淡化了“儿童”元素,不知道如何修改它们来完成这项工作。
如果有更好的方式来做到这一点,请让我知道,
$(function() {
/* SET PARAMETERS */
var change_img_time = 9000;
var transition_speed = 1000;
var simple_slideshow = $("#graphic_1"),
listItems = simple_slideshow.children('.banner'),
listLen = listItems.length,
i = 0,
changeList = function() {
listItems.eq(i).fadeOut(transition_speed, function() {
i += 1;
if (i === listLen) {
i = 0;
}
listItems.eq(i).fadeIn(transition_speed);
});
};
listItems.not(':first').hide();
setInterval(changeList, change_img_time);
});
HTML/PHP(只是让你们都可以看到数据的外观)
$rotban1 = $db1->query("SELECT background_image, background_image_alt, foreground_image, foreground_image_alt, text FROM banner") or die ('Unable to execute query. '. mysqli_error($db1con));
$slidecount == 0;
if ($rotban1->num_rows > 0) {
while ($slide = $rotban1->fetch_assoc()) {
echo '<div class="banner">';
echo '<img class="background_image" alt="'. $slide['background_image_alt'] .'" src="'. $slide['background_image'] .'">';
echo '<img class="foreground_image" alt="'. $slide['foreground_image_alt'] .'" src="'. $slide['foreground_image'] .'">';
if (!empty($slide['text'])) { echo '<h1>'. $text .'</h1>'; }
echo '</div>';
}
}
您是否尝试过倒车动画?先调用'fadeIn',然后在'fadeIn'的完整回调中调用'fadeOut'。这样,你就不会有一段时间没有看到任何东西。 –
它破坏了....顶部项目淡出,没有东西在那里....除非我做错了什么 – KDJ
你改变了'listItems.eq(i).fadeOut(transition_speed,function(){... 'listItems.eq(i).fadeIn(transition_speed,function(){...'with'listItems.eq(i).fadeOut(transition_speed);''fadeIn'内完成回调? –