【问题标题】:custom delay in jQuery (cycle)jQuery中的自定义延迟(循环)
【发布时间】:2009-11-03 02:05:27
【问题描述】:

如何动态地改变循环插件的超时时间

这是我的尝试:page

这里是代码:

<script type="text/javascript">

$(function() {

    $('#delais').val(3);

    $('#plus').click(function(){$('#delais').val(parseInt($("#delais").val()) + 1)});
    $('#moins').click(function(){$('#delais').val(parseInt($("#delais").val()) - 1)});

    startSlideshow(<?php echo json_encode(glob("*.jpg"));?>);

    function startSlideshow(slides) {

         $('#slideshow').append  ('<img src="'+slides.shift()+'" />');
         $('#slideshow').append  ('<img src="'+slides.shift()+'" />');

        // start slideshow
        $('#slideshow').cycle({
            fx: 'scrollHorz',
            timeout:  parseInt($('#delais').val()),
            speed:    1500,
            prev:    '#prev',
            next:    '#next',
            pager:  '#nav',
            before:   onBefore
        });

        function onBefore(curr, next, opts, fwd) {

            if (!opts.addSlide) return; // on the first pass, addSlide is undefined (plugin hasn't yet created the fn yet)

            if (opts.slideCount == slides.length) return; // have we added all our slides?

            opts.addSlide('<img src="'+slides.shift()+'" />');// add our next slide
        };
    };
});
</script>

<style type="text/css">
... some style...
</style>
</head>
<body>

<div id="dump"><?php var_dump( glob("*.jpg"));?></div>

<div id="buttons">
    <input type="submit" id="prev" value="Précédent">
    <input type="submit" id="next" value="Suivant">

    <input type="submit" id="plus" value="+">
    <input type="submit" id="moins" value="-"> 
    delais : <input  type="text" id="delais" value="3" size="3">secondes
</div>

<div id="slideshow"></div>

<div id="nav"></div>

</body>
</html>

【问题讨论】:

  • 对我来说没问题 -- Macintosh/Safari 4,但您可能需要确保不能将超时时间减少到 0 以下。

标签: jquery timeout


【解决方案1】:

这里是解决方案:

$('#slideshow').cycle({
    fx: 'scrollHorz',
    timeout:  3000,
    speed:    1000,
    prev:    '#prev',
    next:    '#next',
        pager:  '#nav',
        timeoutFn : calculateTimeout, 
    before:   onBefore
});

    function calculateTimeout() {
        var timeout = $('#delais').val();
        timeout = timeout * 1000;
        return parseInt(timeout);
    }

【讨论】:

    猜你喜欢
    • 2012-09-19
    • 2014-01-08
    • 1970-01-01
    • 2013-02-07
    • 1970-01-01
    • 2018-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多