jQuery面板在页面加载时向下滑动然后向上滑动

时间:2011-05-04 09:20:58

标签: jquery delay slidedown slideup

这应该很简单,但是我无法让它按原样运行。

以下代码应该能够执行以下操作。页面完成加载后,页面顶部的div(div#panel)应向下滚动到视图中。延迟几秒后,div应该向外滚动到视图之外。当用户点击触发器时,div也应该能够上下切换/滑动。

提前感谢您的意见/建议。

$(document).ready(function() {

    $("div#panel").slideDown("slow");
    setTimeout(function(){ 
    $("div#panel").slideUp("slow"); 
    }, 5000);

});

$(document).ready(function() {

    // Expand Panel
    $("#open").click(function(){
        $("div#panel").slideDown("slow");
    }); 

    // Collapse Panel
    $("#close").click(function(){
        $("div#panel").slideUp("slow"); 
    });         
});

3 个答案:

答案 0 :(得分:5)

您必须先hide()面板,以便它可以滑入视图。

$(document).ready(function(){
    $("div#panel").hide();

    var autoTimer = null;

    autoTimer = setTimeout(function(){
        $("div#panel").slideDown("slow");
        autoTimer = setTimeout(function(){
            $("div#panel").slideUp("slow");
        }, 5000);
    },2000);

    $("#open").click(function(){
        $("div#panel").slideDown("slow");
        if(autoTimer) clearTimeout(autoTimer);
        autoTimer = null;
    });

    $("#close").click(function(){
        $("div#panel").slideUp("slow");
        if(autoTimer) clearTimeout(autoTimer);
        autoTimer = null;
    });         
});

演示:http://jsfiddle.net/X9Vn4/6/

答案 1 :(得分:3)

你也可以试试这个。在slideDown完成执行时加载slideUp。

$('#id').slideDown(500, function(){
   setTimeout(function(){$('#id').fadeOut(500)}, 1500);
});

答案 2 :(得分:0)

Try this :
$(document).ready(function(){
   setTimeout('slide_div()',5000);
  $('#open').click(function(){
      $('#pane1').slideDown('slow');
  });

  $('#close').click(function(){
      $('#pane1').slideUp('slow');
  });
});

function slide_div()
{
   $('#pane1').slideToggle();
 }