javascript - JQuery 功能列表滑动延迟

标签 javascript jquery jquery-plugins delay timedelay

这就是我正在尝试做的事情。我在 3 个不同的列中滑动 3 个 div。我想对此脚本进行延迟,以便 3 列以相同的速度变化,但它们在不同的时间变化。这是 JavaScript

/*
* FeatureList - simple and easy creation of an interactive "Featured Items" widget
* Examples and documentation at: http://jqueryglobe.com/article/feature_list/
* Version: 1.0.0 (01/09/2009)
* Copyright (c) 2009 jQueryGlobe
* Licensed under the MIT License: http://en.wikipedia.org/wiki/MIT_License
* Requires: jQuery v1.3
*/
(function($) {
$.fn.featureList = function(options) {
    var tabs    = $(this);
    var output  = $(options.output);

    new jQuery.featureList(tabs, output, options, speed);
    return this;    
};

$.featureList = function(tabs, output, options, speed) {
    function slide(nr) {
        if (typeof nr == "undefined") {
            nr = visible_item + 1;
            nr = nr >= total_items ? 0 : nr;
        }

        tabs.removeClass('current').filter(":eq(" + nr + ")").addClass('current');

        output.stop(true, true).filter(":visible").fadeOut();
        output.filter(":eq(" + nr + ")").fadeIn(function() {
            visible_item = nr;  
        });
    }

    var options         = options || {}; 
    var total_items     = tabs.length;
    var visible_item    = options.start_item || 0;

    options.pause_on_hover      = options.pause_on_hover        || true;
    output.pause_on_hover       = output.pause_on_hover         || true;
    options.transition_interval = options.transition_interval   || speed;

    output.hide().eq( visible_item ).show();
    tabs.eq( visible_item ).addClass('current');

    tabs.click(function() {
        if ($(this).hasClass('current')) {
            return false;   
        }

        slide( tabs.index( this) );
    });

    if (options.transition_interval > 0) {
        var timer = setInterval(function () {
            slide();
        }, options.transition_interval);

        if (options.pause_on_hover) {
            tabs.mouseenter(function() {
                clearInterval( timer );

            }).mouseleave(function() {
                clearInterval( timer );
                timer = setInterval(function () {
                    slide();
                }, options.transition_interval);
            });
        }
        if (output.pause_on_hover) {
            output.mouseenter(function() {
                clearInterval( timer );

            }).mouseleave(function() {
                clearInterval( timer );
                timer = setInterval(function () {
                    slide();
                }, options.transition_interval);
            });
        }
    }
};
})(jQuery);

$(document).ready(function() {
$.featureList(
    $("#sliderSelection li"),                       //Your Menu
    $("#slider img"),                               //Your Content
    {start_item:0},                                 //Starting Item
    5000                                            //Change Speed
);
$.featureList(
    $("#graphicSelect li"),                         
    $("#featuredDesign .design"),           
    {start_item:0},                                 
    1000
);
$.featureList(
    $("#webSelect li"),                         
    $("#featuredWeb .web"),             
    {start_item:0},                                 
    1000                                            
);
$.featureList(
    $("#marketSelect li"),                          
    $("#featuredMarket .market"),           
    {start_item:0},                                 
    1000                                            
);
});

我只想添加一个delay()作为第五个参数。我的 HTML 大约有 300 行长,我的 css 也同样长,所以我不会让页面陷入困境。任何帮助将非常感激! http://jqueryglobe.com/article/feature-list

最佳答案

您可以尝试用 setTimeout( f, timeOut ) 函数包装所有“$.featureList()”部分,确保您已设置正确设置超时参数

setTimeout(function() {
  $.featureList(
    $('#sliderSelection li'),                       //Your Menu
    $('#slider img'),                               //Your Content
    {start_item:0},                                 //Starting Item
    5000)                                          //Change Speed
} , 1000);

setTimeout(function() {
  $.featureList(
    $('#graphicSelect li'),
    $('#featuredDesign .design'),
    {start_item:0},                                 
    1000)
} , 2000);
setTimeout(function() {
  $.featureList(
    $('#webSelect li'),
    $('#featuredWeb .web'),             
    {start_item:0},                                 
    3000)                                          
  } , 1000);

setTimeout(function() {
  $.featureList(
    $('#marketSelect li'),
    $('#featuredMarket .market'),
    {start_item:0},                                 
    1000)                                          
} , 1000);

编辑:抱歉,我确信之前的代码可以正常工作。我已经更新它以确保它没问题。 证明位于:http://jsfiddle.net/uDrg5/2/

关于javascript - JQuery 功能列表滑动延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6364677/

相关文章:

javascript - AngularJS 和 Firebase auth ngShow 和 ngClick 延迟?

php - 将 JSON 数据发布到外部 URL

javascript - 我无法获取之前的 td

javascript - 带有 PopState 和 AJAX 的 HTML 5 History API 不断重新加载页面

JQUERY UI Accordion 在窗口调整大小时调整大小?

javascript - 键(窗口)不返回所有成员

javascript - 如何使用 javascript 创建表格

jquery - 连续暂停循环遍历表元素

javascript - 无法让简单的 jquery 脚本在 WordPress 页面上运行

jquery - 如何使用 Jquery 制作数字动画