我是前端开发的新人,我面临的一个主要问题是我有 3 张图像放在彼此上,现在我想移动一张图像,所以另一张图像出现然后它消失了,第三张图像出现在一些之后时间间隔。
我想在我的网站的同一位置上放置三张图片,但只想在一段时间后一张接一张地看到这三张图片。请帮助我如何做到这一点?
我可以使用 marquee 属性或 javascript 吗???
我是前端开发的新人,我面临的一个主要问题是我有 3 张图像放在彼此上,现在我想移动一张图像,所以另一张图像出现然后它消失了,第三张图像出现在一些之后时间间隔。
我想在我的网站的同一位置上放置三张图片,但只想在一段时间后一张接一张地看到这三张图片。请帮助我如何做到这一点?
我可以使用 marquee 属性或 javascript 吗???
非 jQuery 选项
如果您不想走 jquery 路线,可以尝试http://www.menucool.com/javascript-image-slider。设置同样简单,您只需确保您的图像位于 id 为的 div 中,slider
并且该 div 与您的图像之一具有相同的尺寸。
jQuery 选项
jQuery 循环插件将帮助您实现这一点。它需要 jquery 才能工作,但不需要太多设置即可创建简单的幻灯片幻灯片。
看看“超级基本”演示:
$(document).ready(function() {
$('.slideshow').cycle({
fx: 'fade' // choose your transition type, ex: fade, scrollUp, shuffle, etc...
});
});
如果你想要一些更花哨的东西,它有很多选择。
在这里你可以使用纯 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>
arrayImageSource= ["Image1","Image2","Image3"];
setInterval(cycle, 2000);
var count = 0;
function cycle()
{
image.src = arrayImageSource[count]
count = (count === 2) ? 0 : count + 1;
}
也许是这样的?
如果您的目标是良好的过渡和效果,我建议使用名为“jqFancyTransitions”的图像滑块
<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>
小提琴:http: //jsfiddle.net/SReject/F7haV/