我创建了两个脚本,一个具有向上滑动和向下滑动的命令,这些命令在加载页面时对定时器起作用。第二个是单击事件,其中单击链接时执行slideup / down命令。这两个脚本分开工作,但我不能让它们一起工作。
这是定时的滑动/缩小脚本:
$(document).ready(function() {
$('.slide-out-div').hide();
$('.slide-out-div')
.delay(5000)
.slideDown(300);
$('.slide-out-div')
.delay(5000)
.slideUp(500);
});
这是点击脚本:
window.onload = function() {
$(document).('#clickme').click(function () {
if ($('.slide-out-div').is(":hidden")) {
$('.slide-out-div').slideDown("slow");
} else {
$('.slide-out-div').slideUp("slow");
}
});
};
这应该如何工作是在页面加载时,框会在几秒后向下滑动,然后如果没有使用该框,它会在几秒后滑动。此时,可以单击链接以使框根据其当前位置向上或向下滑动。
非常感谢任何让这两者结合起来的帮助:)
答案 0 :(得分:6)
你可以使用像这样的超时函数:
<强> Working Example 强>
$(document).ready(function () {
var timer;
$('.slide-out-div').slideDown('slow', function () {
timer = setTimeout(function () {
$('.slide-out-div').slideUp("slow");
}, 5000);
});
$('#clickme').click(function () {
if ($('.slide-out-div').is(":hidden")) {
$('.slide-out-div').slideDown('slow', function () {
timer = setTimeout(function () {
$('.slide-out-div').slideUp("slow");
}, 5000);
});
} else {
$('.slide-out-div').slideUp('slow');
clearTimeout(timer);
}
});
});
答案 1 :(得分:1)
使用回调函数 -
$('.slide-out-div')
.delay(5000)
.slideDown(300, function () {
$('.slide-out-div') // execute when slideDown is complete
.delay(5000)
.slideUp(500);
});
$('#clickme').click(function () {
if ($('.slide-out-div').is(":hidden")) {
$('.slide-out-div').end().slideDown("slow");
} else {
$('.slide-out-div').end().slideUp("slow");
}
});
答案 2 :(得分:1)
您是否尝试过.clearQueue()
?
$(document).ready(function () {
var slideOut = $('.slide-out-div'), //cache DOM lookup
tease = function () { //functionize this, in case you want to re-use it
slideOut.slideDown(300);
slideOut.delay(5000).slideUp(500);
};
$('#clickme').click(function (e) {
/*
* clearQueue() clears the [default] animation queue
* so the slide-out div will behave correctly
* if #clickme is clicked while tease() is running.
*/
if (slideOut.is(":hidden")) {
slideOut.clearQueue().slideDown("slow");
} else {
slideOut.clearQueue().slideUp("slow");
}
e.preventDefault();
return false;
});
tease(); //tease with the slide-out
});
答案 3 :(得分:0)
尝试使用这个简单的代码进行切换
<div class="panel">
<br />
<br />
<p>The panel text or login and registraion form goes here....</p>
<p>sanwebcorner.com</p>
</div>
<p class="slide"><a href="#" class="pull-me">Slide Up/Down</a></p>
$(document).ready(function() {
$('.pull-me').click(function() {
$('.panel').slideToggle('slow');
});
});