2

我是前端开发的新人,我面临的一个主要问题是我有 3 张图像放在彼此上,现在我想移动一张图像,所以另一张图像出现然后它消失了,第三张图像出现在一些之后时间间隔。

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

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

4

5 回答 5

4

非 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...
    });
});

如果你想要一些更花哨的东西,它有很多选择。

于 2012-10-05T08:03:29.813 回答
3

在这里你可以使用纯 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

于 2012-10-05T08:24:31.700 回答
1
arrayImageSource= ["Image1","Image2","Image3"];

setInterval(cycle, 2000);
var count = 0;

function cycle()
{
  image.src = arrayImageSource[count]
  count = (count === 2) ? 0 : count + 1;
}​

也许是这样的?

于 2012-10-05T08:13:04.297 回答
1

如果您的目标是良好的过渡和效果,我建议使用名为“jqFancyTransitions”的图像滑块

于 2012-10-05T08:13:55.817 回答
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/

于 2012-10-05T08:25:10.547 回答