我是Front End Development的新人,我面临的一个主要问题是我有3个图像放在彼此,现在我想移动一个图像,所以另一个图像出现然后它去了,第三个图像来了经过一段时间后才会起来。
我想在我的网站上的同一位置上放置三张图片,但只想在一段时间后一个接一个地看到这三张图片。 请帮忙我怎么做?
我可以使用marquee属性或javascript ???
答案 0 :(得分:4)
非jQuery选项
如果您不想沿着jquery路线走,可以试试http://www.menucool.com/javascript-image-slider。设置非常简单,您只需要确保您的图片位于ID为slider
的div中,并且div与您的某个图片具有相同的尺寸。
jQuery Option
jQuery cycle plugin将帮助您实现这一目标。它需要jquery才能工作,但它不需要太多的设置来创建一个简单的滑动幻灯片。
$(document).ready(function() {
$('.slideshow').cycle({
fx: 'fade' // choose your transition type, ex: fade, scrollUp, shuffle, etc...
});
});
如果你想要更有趣的东西,它有many options。
答案 1 :(得分:3)
在这里你去PURE JavaScript解决方案:
编辑我添加了图片轮播...查看实时示例(链接如下)
<script>
var current = 0;
var rotator_obj = null;
var images_array = new Array();
images_array[0] = "rotator_1";
images_array[1] = "rotator_2";
images_array[2] = "rotator_3";
var rotate_them = setInterval(function(){rotating()},4000);
function rotating(){
rotator_obj = document.getElementById(images_array[current]);
if(current != 0) {
var rotator_obj_pass = document.getElementById(images_array[current-1]);
rotator_obj_pass.style.left = "-320px";
}
else {
rotator_obj.style.left = "-320px";
}
var slideit = setInterval(function(){change_position(rotator_obj)},30);
current++;
if (current == images_array.length+1) {
var rotator_obj_passed = document.getElementById(images_array[current-2]);
rotator_obj_passed.style.left = "-320px";
current = 0;
rotating();
}
}
function change_position(rotator_obj, type) {
var intleft = parseInt(rotator_obj.style.left);
if (intleft != 0) {
rotator_obj.style.left = intleft + 32 + "px";
}
else if (intleft == 0) {
clearInterval(slideit);
}
}
</script>
<style>
#rotate_outer {
position: absolute;
top: 50%;
left: 50%;
width: 320px;
height: 240px;
margin-top: -120px;
margin-left: -160px;
overflow: hidden;
}
#rotate_outer img {
position: absolute;
top: 0px;
left: 0px;
}
</style>
<html>
<head>
</head>
<body onload="rotating();">
<div id="rotate_outer">
<img src="0.jpg" id="rotator_1" style="left: -320px;" />
<img src="1.jpg" id="rotator_2" style="left: -320px;" />
<img src="2.jpg" id="rotator_3" style="left: -320px;" />
</div>
</body>
</html>
答案 2 :(得分:1)
arrayImageSource= ["Image1","Image2","Image3"];
setInterval(cycle, 2000);
var count = 0;
function cycle()
{
image.src = arrayImageSource[count]
count = (count === 2) ? 0 : count + 1;
}
也许是这样的?
答案 3 :(得分:1)
如果您的目标是良好的过渡和效果,我建议使用名为“jqFancyTransitions”的图像滑块
答案 4 :(得分:1)
<html>
<head>
<script type="text/javascript">
window.onload = function(){
window.displayImgCount = 0;
function cycleImage(){
if (displayImgCount !== 0) {
document.getElementById("img" + displayImgCount).style.display = "none";
}
displayImgCount = displayImgCount === 3 ? 1 : displayImgCount + 1;
document.getElementById("img" + displayImgCount).style.display = "block";
setTimeout(cycleImage, 1000);
}
cycleImage();
}
</script>
</head>
<body>
<img id="img1" src="./img1.png" style="display: none">
<img id="img2" src="./img2.png" style="display: none">
<img id="img3" src="./img3.png" style="display: none">
</body>
</html>