连续动画显示或隐藏元素而不淡化

时间:2012-05-21 15:48:39

标签: javascript html

我想依次连续显示和隐藏两个页面元素。

这是代码:

$(document).ready(function() {  
    var continuous = function () {
    setTimeout(function() { $("#Mass_alert").css('display','block'); $("#Devotion_alert").css('display','none'); },1500);
    setTimeout(function() { $("#Mass_alert").css('display','none'); $("#Devotion_alert").css('display','block'); },1500);
    };
    setInterval(continuous,500); 
});

这是HTML:

  <div id="Mass_alert" class="alert" style="position: relative; top: 3px; margin: 0 auto; text-align: center; width:100%; height: 20px;">Mass alert</div>
  <div id="Devotion_alert" class="alert" style="position: relative; top: 3px; margin: 0 auto; text-align: center; width:100%; height: 20px;">devotion alert</div>

我得到了正确的效果一次。我应该在上面的代码中更改什么才能产生连续效果。我不想使用fadeToggle,因为我实际上需要display:none设置。如果我不这样做,那么隐藏元素会留下空间干扰另一个元素的放置。

2 个答案:

答案 0 :(得分:2)

尝试:

setInterval(function () {
  $('#Mass_alert, #Devotion_alert').toggle();
}, 1500);

用:

<div id="Mass_alert" class="alert" style="position: relative; top: 3px; margin: 0 auto; text-align: center; width:100%; height: 20px;">Mass alert</div>
<div id="Devotion_alert" class="alert" style="position: relative; top: 3px; margin: 0 auto; text-align: center; width:100%; height: 20px; display: none;">devotion alert</div>​

演示:http://jsfiddle.net/qxMdA/1/

答案 1 :(得分:0)

尝试来回切换。

var a = false;
$(document).ready(toggle);
function toggle() {
    if (a) {
        $("#Mass_alert").css('display','block'); $("#Devotion_alert").css('display','none'); 
    }
    else
    {
        $("#Mass_alert").css('display','none'); $("#Devotion_alert").css('display','block'); 
    }

    a = !a;

    setTimeout(toggle, 1500);
}