2014-03-06 112 views
0

我有一个div,我需要在页面加载时从右侧滑出并保持锁定在窗口的右侧。这将是巨大的,如果它可能会推迟约5秒钟,然后滑出从窗口右侧滑动DIV

<script type="text/javascript"> 
    $("#slide").animate({width: 'toggle'}, 500); 
</script> 

HTML

<div id="slide"><img src="live.jpg"></div> 

我在想什么?

+0

[.delay](http://api.jquery.com/delay/)延迟执行,你所缺少的是你改变的宽度不是元素的位置,动画的左或右风格。 –

+0

我需要改变位置@PatrickEvans – user3357774

+0

这就是为什么我说你必须动画'左'或'右'风格,'动画({右:“100px”},500)' –

回答

0

你可以尝试几个选项。

如果你想使用.animate(),你需要从它的初始状态改变位置。所以,在你的CSS,你会想你的div的初始状态设置为东西是关闭的页面,如

#slide { 
    position: absolute; 
    right: 999em; 
} 

有了这一套,加入.animate()将动画您向指定属性您指定的值,因此请在动画完成后指定您希望div的最终位置。

$("#slide").delay(5000).animate({right: 0}, 500); 

另一种方法是使用了jQuery addClass()方法。如果你这样做,你会想在你的样式表中定义两个类。第一堂课将是你div的初始状态,同样位于屏幕外;第二类将是你的div结束的地方。对于动画,只需使用一个CSS动画是这样的:

.div-start { 
    position: absolute; 
    right: 999em; 
    transition: right 4s ease-in; 
    -webkit-transition: right 4s ease-in; 
    -moz-transition: right 4s ease-in; 
} 

.div-animate { 
    right: 0; 
} 

然后在你的jQuery,做到这一点:

$('yourDiv').addClass("div-animate"); 

编辑: 您还可以使用的setTimeout这个要把它火5后秒,像这样: setTimeout(function(){('yourDiv')。addClass(“div-animate”); },5000);

+0

我如何摆脱底部的滚动条,因为它的关闭屏幕? – user3357774

+0

这些可能是你的溢出设置处于缺省状态的结果,它会添加滚动条。将您的溢出属性设置为隐藏在您正在获取滚动条的任何属性上。 – Jim

+0

所以 'div {overflow:hidden; }' – Jim

0
$(document).ready(function(){ 
    $('#slide').delay(5000).animate({"width":"20%"}, 0500); 
}); 

这会在页面完全加载后将您的动画延迟5秒,然后将内容滑动到20%的宽度。下面是一个例子:http://jsfiddle.net/EdjjH/

0
$(document).ready(function(){ 
    $("#slide").delay(5000); 
    $("#slide").animate({ 
     width: '500px', 
     height: '500px', 
    }); 
}); 

这里是小提琴:看着它时jsfiddle 这拨弄有一个5秒的延迟,所以要患者。