我正在使用div
,其中显示了四张图片
<script>
$(document).ready(function(){
var img1 = "<?php echo $product['image1']; ?>";
var img2 = "<?php echo $product['image2']; ?>";
var img3 = "<?php echo $product['image3']; ?>";
var img4 = "<?php echo $product['image4']; ?>";
$("#imgTag").fadeOut(8000).attr('src',img2);
});
</script>
<div id="imageDiv">
<img src="<?php echo $product['image1']; ?>" id="imgTag" />
</div>
现在我不知道如何将img3
img4
等其他图片放入src
属性中,并使其在无限循环中可重复。有没有办法实现这个是jquery图像在无限迭代中变化?
答案 0 :(得分:0)
试试这个......
$(document).ready(function(){
function blick_image(){
img1 ="https://homepages.cae.wisc.edu/~ece533/images/arctichare.png";
img2 = "https://homepages.cae.wisc.edu/~ece533/images/baboon.png";
img3 = "https://homepages.cae.wisc.edu/~ece533/images/boat.png";
var images = [img1,img2,img3];//creates array
images.forEach(function(element,index,arr){
alert(element);
});
}
setInterval(blick_image,1000);
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
在这里摆弄.. https://jsfiddle.net/fmmp74zv/
答案 1 :(得分:0)
我认为这可以满足您的需求:
$(document).ready(function(){
var images = [
1,
"http://t2.uccdn.com/en/images/5/9/2/img_causes_of_fever_in_cats_9295_300_150.jpg",
"http://www.jimvysearks.co.uk/blog/wp-content/uploads/2014/06/duck_surfing-300x150.jpg",
"http://brightworkcoresearch.com/wp-content/uploads/2013/12/beauty-in-nature-178495_1280-300x150.jpg",
"http://www.educationworld.com/sites/default/files/Sun1.jpg"
];
$("#imgTag").attr("src",images[images[0]]);
(function loopImages() {
++images[0];
if (images[0] == images.length) {images[0] = 1;}
$("#imgTag").fadeOut(8000,function(){
$(this).attr("src",images[images[0]]).fadeIn(500,function(){loopImages();});
});
})();
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="imageDiv">
<img src="" id="imgTag" />
</div>
&#13;
img1-4
vars更改为包含所有图片的数组。[0]
处,数组还包含当前图像的索引号。loopImages()
时(在src
更改后),此索引号都会递增,以便选择下一张图片:++images[0];
。if (images[0] == images.length) {images[0] = 1;}
。(function(){...})();
。这称为IIFE。这样,您无需在声明后手动调用该函数。 我从您的HTML中移除了src
,而是使用jQuery设置它,但显然没有必要按照您使用PHP设置它的方式(您的方式更好)。
我为了演示目的将图像更改为文字字符串,您可以将它们更改回PHP。
或者,您可以在调用函数时将index-number作为参数发送:
(function loopImages(i) {
$("#imgTag").fadeOut(8000,function(){
$(this).attr("src",images[i]).fadeIn(500,function(){loopImages(++i<images.length?i:0);});
});
})(1);
images
数组中的第一个索引,可以将其删除(请参阅下面的代码段)。loopImages(++i<images.length?i:0);
i
并检查该增量值是否仍然小于数组长度。i
一起发送
(3)如果不是,则发送0
,将索引号重置为数组中的第一个图像。就个人而言,我更喜欢这个选项,因为它更简洁。
$(document).ready(function(){
var images = [
"http://t2.uccdn.com/en/images/5/9/2/img_causes_of_fever_in_cats_9295_300_150.jpg",
"http://www.jimvysearks.co.uk/blog/wp-content/uploads/2014/06/duck_surfing-300x150.jpg",
"http://brightworkcoresearch.com/wp-content/uploads/2013/12/beauty-in-nature-178495_1280-300x150.jpg",
"http://www.educationworld.com/sites/default/files/Sun1.jpg"
];
$("#imgTag").attr("src",images[0]);
(function loopImages(i) {
$("#imgTag").fadeOut(8000,function(){
$(this).attr("src",images[i]).fadeIn(500,function(){loopImages(++i<images.length?i:0);});
});
})(1);
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="imageDiv">
<img src="" id="imgTag" />
</div>
&#13;