经过一段时间后,一个接一个地显示图像

时间:2012-10-05 08:01:34

标签: javascript html

我是Front End Development的新人,我面临的一个主要问题是我有3个图像放在彼此,现在我想移动一个图像,所以另一个图像出现然后它去了,第三个图像来了经过一段时间后才会起来。

我想在我的网站上的同一位置上放置三张图片,但只想在一段时间后一个接一个地看到这三张图片。 请帮忙我怎么做?

我可以使用marquee属性或javascript ???

5 个答案:

答案 0 :(得分:4)

非jQuery选项

如果您不想沿着jquery路线走,可以试试http://www.menucool.com/javascript-image-slider。设置非常简单,您只需要确保您的图片位于ID为slider的div中,并且div与您的某个图片具有相同的尺寸。


jQuery Option

jQuery cycle plugin将帮助您实现这一目标。它需要jquery才能工作,但它不需要太多的设置来创建一个简单的滑动幻灯片。

查看'super basic' demo

$(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>

一个有效的例子:
http://simplestudio.rs/yard/rotate/rotate.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>​

小提琴:http://jsfiddle.net/SReject/F7haV/