图像fadein没有闪烁与jquery

时间:2012-09-12 09:26:34

标签: jquery html image fade

当我点击一个链接时,我试图淡入图像,但这让我在每次淡入淡出时都会“眨眼”。反正有没有避免这种眨眼,只是有一个干净的淡入淡出?

这是我目前的代码:

function changeMortar(mortar) {
     var html = '<img src="http://www.randerstegl.dk/fileadmin/fugefarver/GFXSharedMortars/fuge'+mortar+'.png" width="500" height="300">'                    
        $("#fuge-color").hide().html(html).fadeIn('slow');
    }​

我做了这个例子 http://jsfiddle.net/BHCam/14/

它逐渐变白,然后变成我选择的迫击炮。我想要的是让我选择的砂浆褪色旧砂浆。

4 个答案:

答案 0 :(得分:4)

闪烁和其他此类工件可能是由您的浏览器或显卡驱动程序引起的,因此除了检查图形设置调整或升级机器组件之外,您无能为力。你的例子在这里顺利消失。

答案 1 :(得分:1)

只需将其更改为

即可
 $("#fuge-color").hide().fadeIn('slow'); //use slow,fast,1000,2000,3000

选择最佳结果

答案 2 :(得分:1)

您可以尝试使用animate

function changeMortar(mortar) {
 var $html = '<img src="http://www.randerstegl.dk/fileadmin/fugefarver/GFXSharedMortars/fuge'+mortar+'.png" width="500" height="300">'                    
     $("#fuge-color").animate({ opacity: 0.8 }, 'fast', function(){
          $(this).html($html).animate({ opacity: 1 }, 'fast');
     });
}

答案 3 :(得分:1)

我对您的代码进行了一些更改。在HTML中尝试这样:

<div id="slideshow">
   <img src="http://www.randerstegl.dk/fileadmin/fugefarver/GFXSharedMortars/fugeGraa.png" alt="" class="active" width="500" height="300"/>
   <img src="http://www.randerstegl.dk/fileadmin/fugefarver/GFXSharedMortars/fugeAnthrazit.png" width="500" height="300" />

</div>
<a href="#" class="change-mortar-link" onclick="slideSwitch();">Change mortar</a>

在CSS中:

#slideshow {
   position:relative;
   height:350px;
}
#slideshow IMG {
  position:absolute;
  top:0;
  left:0;
  z-index:8;
}
#slideshow IMG.active {
   z-index:10;
}
#slideshow IMG.last-active {
   z-index:9;
}

和JavaScript代码:

function slideSwitch() {
   var $active = $('#slideshow IMG.active');

   if ( $active.length == 0 ) $active = $('#slideshow IMG:last');

   var $next =  $active.next().length ? $active.next()
    : $('#slideshow IMG:first');

   $active.addClass('last-active');

   $next.css({opacity: 0.0})
      .addClass('active')
      .animate({opacity: 1.0}, 1000, function() {
          $active.removeClass('active last-active');
     });
  }

here中,您可以找到更多信息。 here是JsFiddle中的运行示例。