【问题标题】:How would I slow down the animation of this jquery slider我将如何减慢这个 jquery 滑块的动画
【发布时间】:2010-12-22 01:26:51
【问题描述】:

我有以下从http://css-tricks.com/startstop-slider/ 得到的代码 我想要做的是减慢动画速度我可以改变它之间的延迟时间,但它本身的动画速度很快而且看起来很突然。提前致谢

// SET THIS VARIABLE FOR DELAY, 1000 = 1 SECOND
var delayLength = 5000;

function doMove(panelWidth, tooFar) {
    var leftValue = $("#mover").css("left");

    // Fix for IE
    if (leftValue == "auto") { leftValue = 0; };

    var movement = parseFloat(leftValue, 10) - panelWidth;

    if (movement == tooFar) {
        $(".slide img").animate({
            "top": -600
        }, function() {
            $("#mover").animate({
                "left": 0
            }, function() {
                $(".slide img").animate({
                    "top": 40
                });
            });
        });
    }
    else {
        $(".slide img").animate({
            "top": -600
        }, function() {
            $("#mover").animate({
                "left": movement
            }, function() {
                $(".slide img").animate({
                    "top": 40
                });
            });
        });
    }
}

$(function(){

    var $slide1 = $("#slide-1");

    var panelWidth = $slide1.css("width");
    var panelPaddingLeft = $slide1.css("paddingLeft");
    var panelPaddingRight = $slide1.css("paddingRight");

    panelWidth = parseFloat(panelWidth, 10);
    panelPaddingLeft = parseFloat(panelPaddingLeft, 10);
    panelPaddingRight = parseFloat(panelPaddingRight, 10);

    panelWidth = panelWidth + panelPaddingLeft + panelPaddingRight;

    var numPanels = $(".slide").length;
    var tooFar = -(panelWidth * numPanels);
    var totalMoverwidth = numPanels * panelWidth;
    $("#mover").css("width", totalMoverwidth);

    $("#slider").append('<a href="#" id="slider-stopper">Stop</a>');

    sliderIntervalID = setInterval(function(){
        doMove(panelWidth, tooFar);
    }, delayLength);

    $("#slider-stopper").click(function(){
        if ($(this).text() == "Stop") {
            clearInterval(sliderIntervalID);
            $(this).text("Start");
        }
        else {
            sliderIntervalID = setInterval(function(){
                doMove(panelWidth, tooFar);
            }, delayLength);
            $(this).text("Stop");
        }

    });

});

【问题讨论】:

    标签: jquery animation performance


    【解决方案1】:

    } 之后的第一个参数假定为时间,以毫秒为单位。根据您的目的进行相应调整。

    $(".slide img").animate({
                "top": -600
            }, 500, function() {...
    

    【讨论】:

    • 非常感谢,现在一切都完美了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-19
    • 1970-01-01
    • 2016-04-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多