使用jquery以不同的间隔滑动图像

问题描述 投票:0回答:1

我有一个非常长的图像,需要在我创建的HTML #container中从左向右移动。

该图像包含大约4幅画作,滑块需要使用舒适的速度,并在其中一个painintgs位于中间时停止几秒钟。然后继续到图像中的下一幅画。

它应该从按钮点击开始,并在第一幅可见的画作上开始和结束

<div id="container">
    <img class="img" src="panorama.png"/>
</div>
<div id="start">
    <h2 class="text">Start</h2>
</div>

$(document).ready(function()
{
    $('#start').click(function()        
    {           
        var change_img_time     = 5000; 
        var transition_speed    = 100;      
        $('#container img');
        {

        }           
    });
});
jquery html css slider jquery-animate
1个回答
0
投票

我这样做了:FIDDLE


javascript / jQuery:


$(document).ready(function(){

    // My controls (in miliseconds)
    var change_img_time  = 1000;
    var transition_speed = 1000;

    // Image properties
    var image = $("div#container > img.img");
    var aQuarter = image.width() / 4;
    var copyIMG = image.clone();
    image.after( copyIMG );
    copyIMG.css({
        "margin-top": 0 - image.innerHeight(),
        "margin-left": copyIMG.width()
    });
    image = image.add(copyIMG);
    var relative = $("<div>").css({
        "position": "relative",
        "padding": "0"
    });
    $("div#container").wrapInner(relative);

    // Setting container-div width and height
    $("div#container").css({
        "width": aQuarter,
        "height": image.height()
    });

    // Start-event
    $("div#start").on("click", function startImageEvent() {
        if (image.is(":animated")) return;
        image
            .animate({
                "margin-left": "-=" + aQuarter
            }, transition_speed)
            .delay(change_img_time)
            .animate({
                "margin-left": "-=" + aQuarter
            }, transition_speed)
            .delay(change_img_time)
            .animate({
                "margin-left": "-=" + aQuarter
            }, transition_speed)
            .delay(change_img_time)
            .animate({
                "margin-left": "-=" + aQuarter
            }, transition_speed, function(){
                image.not(copyIMG).css("margin-left", "0");
                copyIMG.css({"margin-left": copyIMG.width()});
                $("div#start").one("click", startImageEvent);
            });
    });

});

而css也很重要:


div#container {
    overflow: hidden;
    z-index: 2;
}
div#start {
    float: left;
    padding: 0 20px;
    margin: 30px;
    border: 1px dotted #f00;
    cursor: pointer;
}
div#container img.img {
    float: left;
}

我试图使代码清晰易读,但如果您有任何疑问,请告诉我。

希望能帮助到你。

© www.soinside.com 2019 - 2024. All rights reserved.