JQuery在列表中一次显示/隐藏一个图像
我有一个横幅图像列表JQuery在列表中一次显示/隐藏一个图像,jquery,javascript,html,Jquery,Javascript,Html,我有一个横幅图像列表 <ul id="banners"> <li><img src="image1.png" /></li> <li><img src="image2.png" /></li> <li><img src="image3.png" /></li> </ul> 使用,如何让它们每隔几秒钟一次显示一个?我想您可以使用j
<ul id="banners">
<li><img src="image1.png" /></li>
<li><img src="image2.png" /></li>
<li><img src="image3.png" /></li>
</ul>
使用,如何让它们每隔几秒钟一次显示一个?我想您可以使用jquery的隐藏和显示方法。如果你想得到幻想,你可以做动画,像fadein或fadeout。我相信这种改变需要使用的不是jquery,而是纯javascript。我不确定jquery是否有一个更短的方法,但我肯定你可以用javascript实现它。您可能会考虑使用javascripts计时工具,以及一些分支来显示和隐藏不同的图像,这可能需要将“活动图像”之类的特殊类应用于您正在显示的图像。从您的销售代表的角度来看,您可能在总体上更有知识,但我希望能有所帮助。我认为您可以使用jquery的隐藏和显示方法。如果你想得到幻想,你可以做动画,像fadein或fadeout。我相信这种改变需要使用的不是jquery,而是纯javascript。我不确定jquery是否有一个更短的方法,但我肯定你可以用javascript实现它。您可能会考虑使用javascripts计时工具,以及一些分支来显示和隐藏不同的图像,这可能需要将“活动图像”之类的特殊类应用于您正在显示的图像。从您的销售代表的角度来看,您可能在总体上更有知识,但我希望能有所帮助。这里有一个以1.5秒为间隔随机更改图像的示例: Html:
Javascript:
(function() {
var lis = document.querySelectorAll('#banners > li');
var hideAllImages = function() {
for(var i=0; i<lis.length; i++) {
lis[i].setAttribute('style', 'display: none');
}
}
var showImage = function(index) {
lis[index].setAttribute('style', 'display: block');
}
var showRandomImage = function() {
var index = Math.floor(Math.random() * lis.length);
hideAllImages();
showImage(index);
}
showRandomImage();
setInterval(showRandomImage, 1500);
})();
(函数(){
var lis=document.queryselectoral(“#banners>li”);
var hideAllImages=函数(){
对于(var i=0;i,这里有一个以1.5秒为间隔随机更改图像的示例:
Html:
Javascript:
(function() {
var lis = document.querySelectorAll('#banners > li');
var hideAllImages = function() {
for(var i=0; i<lis.length; i++) {
lis[i].setAttribute('style', 'display: none');
}
}
var showImage = function(index) {
lis[index].setAttribute('style', 'display: block');
}
var showRandomImage = function() {
var index = Math.floor(Math.random() * lis.length);
hideAllImages();
showImage(index);
}
showRandomImage();
setInterval(showRandomImage, 1500);
})();
(函数(){
var lis=document.queryselectoral(“#banners>li”);
var hideAllImages=函数(){
对于(var i=0;i,这里有一个小函数,它将每1s切换每个子元素的可见性
#banners li {
display: none;
}
我已经删除了这些图像,因为我只是在这里提供一个可视化演示-切换
元素
-简化演示
要循环此过程,请观察以下内容,时间
是我们希望显示每个元素的时间
var time = 1000; // 1s
function toggle() {
$('#banners li').each(function(index, value) {
setTimeout(function() {
$(value).show().siblings().hide();
}, time * (index + 1));
});
}
toggle();
setInterval(toggle, $('#banners li').length * time);
-演示用setInterval
包装,这里有一个小函数,它将切换每个子元素的可见性
元素-一次一个-每1s
#banners li {
display: none;
}
我已经删除了这些图像,因为我只是在这里提供一个可视化演示-切换
元素
-简化演示
要循环此过程,请观察以下内容,时间
是我们希望显示每个元素的时间
var time = 1000; // 1s
function toggle() {
$('#banners li').each(function(index, value) {
setTimeout(function() {
$(value).show().siblings().hide();
}, time * (index + 1));
});
}
toggle();
setInterval(toggle, $('#banners li').length * time);
-使用setInterval
包装的演示将无限期地在图像中循环。这样,它就不会在第三个图像之后结束
$(function(){
setInterval(function(){
var $el = $(".s");
$el.removeClass("s")
.next("li")
.addClass("s")
.closest("ul")
.append($el);
},500);
});
如果是这样的想法,这样的东西将无限期地在图像中循环。这样它就不会在第三张图像之后结束
$(function(){
setInterval(function(){
var $el = $(".s");
$el.removeClass("s")
.next("li")
.addClass("s")
.closest("ul")
.append($el);
},500);
});
尝试利用.toggle()
,递归调用complete
回调(如果存在下一个元素),否则先调用父元素complete
回调li
子元素
$(“#bannars li:first”)。切换(3000,功能幻灯片(){
$(this).toggle(3000,function(){
$(this.nextElementSibling | | this.parentElement.firstElementChild)
.切换(3000,滑动)
})
})
#横幅李{
显示:无;
列表样式:无;
}
-
-
-
尝试使用.toggle()
,递归调用complete
回调(如果下一个元素存在),否则首先调用父元素上的complete
回调li
子元素
$(“#bannars li:first”)。切换(3000,功能幻灯片(){
$(this).toggle(3000,function(){
$(this.nextElementSibling | | this.parentElement.firstElementChild)
.切换(3000,滑动)
})
})
#横幅李{
显示:无;
列表样式:无;
}
-
-
-
当你试图自己解决这个问题时,你在哪里陷入困境?这叫做幻灯片,有数千个插件可用,jQuery循环浮现在脑海中。当你试图自己解决这个问题时,你在哪里陷入困境?这叫做幻灯片,有数千个插件可用,jQuery循环浮现在脑海中。