使用定时效果移动图像

时间:2015-06-01 09:24:33

标签: jquery css image jquery-animate move

这个想法是我有一个带有一些图像的div(在水平线上)你只看到div中的第一个图像。 目前共有5张图片。 我想将图像从右向左移动离开div(和屏幕),在最后一个图像移动后,第一个图像将在前面(即整个循环) 要启动动画,请单击按钮。

现在就是这个诀窍,在每个不均匀编号的图像中,动画必须停止片刻。所以起始图像为1,然后传递数字2并在3处停止几秒钟然后传递数字4并在数字5处停止,之后图像再次继续到第一个并停止直到再次单击开始按钮。

我希望能够相当容易地扩展图像数量。

我目前在CSS / HTMl中所拥有的是

<body>

<div id="container">


    <div id="fotos">
        <div class="image"><img src="afb_stuk/1.png"/></div>
        <div class="image"><img src="afb_stuk/2.png"/></div>
        <div class="image"><img src="afb_stuk/3.png"/></div>

        <div style="clear:both"></div>
    </div>



</div>
<div id="start">
    <h2 class="text"></h2>
</div>
</body>

和css

body{
padding:0px;
margin:0px;
background-image:url(afb_stuk/background.jpg);
background-repeat:no-repeat;
background-size:cover;}


#container{
position:relative;
margin-left:50px;
margin-top:25px;
height:600px;
width:1250px;
border:solid thin red;
z-index:1;
/*overflow:hidden;*/}


#fotos{
position:relative;
height:80%;
width:12000px;}


.image{
height:600px;
width:1250px;
float: left;


.image img{
height:600px;
width:auto;}


#start{
position:relative;
margin:auto;
margin-top:-10px;
height:10px;
width:60px;

border-radius: 25px;
border: 2px solid #8AC007;
padding: 20px; }



.text{
margin-top:-10px;}

2 个答案:

答案 0 :(得分:0)

    <html>
    <head>
    <script>
    function start()
    {
    var y=1;
    var x=document.getElementById("image");
    setInterval(function(){check();},1000);
    function check()
    {
        if(y%2!=0)
            {
                setTimeout(function(){},3000);
            }
            x.src=''+(y%6)+'.jpg'+'';
        y++;
            if(y==6)
            start();
        }
    }
    </script>
    <style>
    body{
    padding:0px;
    margin:0px;
    background-image:url(afb_stuk/background.jpg);
    background-repeat:no-repeat;
    background-size:cover;}


    #container{
    position:relative;
    margin-left:50px;
    margin-top:25px;
    height:600px;
    width:1250px;
    border:solid thin red;
    z-index:1;
    /*overflow:hidden;*/}


    #fotos{
    position:relative;
    height:80%;
    width:12000px;}


    .image{
    height:600px;
    width:1250px;
    float: left;
    }

    .image img{
    height:600px;
    width:auto;}
    </style>
    </head>
    <body>

    <div id="container">
        <div id="fotos">
            <div class="image">
                <img src="1.jpg" id="image"/>
            </div>
        </div>
    </div>
    <button onclick="start()" id="new">Click to start!</button> 
    </div>
    </body>
    </html>

您的图片名称应为1,2,3,4.jpg等形式。 并尝试累积图像之间的延迟。

答案 1 :(得分:0)

我找到了一个非常好的youtube教程,包括一个小提琴。 我只是改变了一些效果(和图像宽度),以给我喜欢和想要的效果。 Thnx给所有帮助过我的人:) [1] http://jsfiddle.net/EjZzs/15/

$(function() {

//settings for slider
var width = 720;
var animationSpeed = 1000;
var pause = 3000;
var currentSlide = 1;

//cache DOM elements
var $slider = $('#slider');
var $slideContainer = $('.slides', $slider);
var $slides = $('.slide', $slider);

var interval;

function startSlider() {
    interval = setInterval(function() {
        $slideContainer.animate({'margin-left': '-='+width}, animationSpeed, function() {
            if (++currentSlide === $slides.length) {
                currentSlide = 1;
                $slideContainer.css('margin-left', 0);
            }
        });
    }, pause);
}
function pauseSlider() {
    clearInterval(interval);
}

$slideContainer
    .on('mouseenter', pauseSlider)
    .on('mouseleave', startSlider);

startSlider();

});

[2] https://youtu.be/KkzVFB3Ba_o