3

我正处于建立网站的最后阵痛中,而客户想要一个启动页面。我的不是质疑为什么,我的目的是获得报酬并飞...

所以,这是我正在寻找的事件序列:

启动页面打开。徽标淡入。使用点击进入。徽标淡出。网站的第一个“真实”页面打开。

我已经完成了前三个事件,第四个。在打开第一个真实页面之前,它会让徽标淡出。

这是我所拥有的:

<div class="logo_container link" data="commercials.php">
<img src="images/logo_intro.jpg" alt="intro" />
</div>

<script type="text/javascript">

$(function() {

    $('.logo_container').hide();

    $('.logo_container').fadeIn(1000);

   $(".link").click(function(e) {
        $('.logo_container').fadeOut(1000);
        window.location = $(this).attr("data");
    });
});

</script>

</div>

但我没有得到淡出。它只是跳转到window.location中调用的属性,即commercials.php。

4

3 回答 3

6

你必须window.location像这样在你的回调方法中使用:

$(".link").click(function(e) {
        $('.logo_container').fadeOut(1000, function(){
           window.location = $(this).attr("data");
        }); 
});

否则window.location将与淡出事件同时调用

于 2012-05-02T14:14:03.220 回答
1

您需要使用回调来查看淡出何时完成。

文档中的示例:

$('#clickme').click(function() {
  $('#book').fadeOut('slow', function() {
    // Animation complete.
  });
});

将动画完整行替换为window.location = $(this).attr("data");

于 2012-05-02T14:14:32.890 回答
0

开始淡出后立即更新,因此window.location您永远没有机会看到它。.location通过适合您的框架的方法延迟更改(例如,在 MooTools 中它将是链式的 - 我不知道 jquery),或者只是使用标准将其安排在未来 1000 毫秒后发生setTimeout()

于 2012-05-02T14:16:53.030 回答