首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用jquery实现无闪烁的图像淡入

使用jquery实现无闪烁的图像淡入
EN

Stack Overflow用户
提问于 2012-09-12 17:26:34
回答 4查看 2.2K关注 0票数 0

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

这是我当前的代码:

代码语言:javascript
复制
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/

它会淡入白色,然后进入我选择的砂浆中。我想要的是让我选择的迫击炮,在旧的迫击炮上褪色。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-09-12 18:33:45

我对你的代码做了一些修改。在HTML中尝试这样做:

代码语言:javascript
复制
<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中:

代码语言:javascript
复制
#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代码:

代码语言: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中,您可以找到更多信息。JsFiddle中的运行示例是here

票数 1
EN

Stack Overflow用户

发布于 2012-09-12 17:29:33

闪烁和其他类似的伪像可能是由您的浏览器或显卡驱动程序引起的,因此除了检查图形设置、调整或升级机器组件之外,您没有什么可做的。在这里,您的示例可以很好地淡出。

票数 4
EN

Stack Overflow用户

发布于 2012-09-12 17:41:32

只需将其更改为

代码语言:javascript
复制
 $("#fuge-color").hide().fadeIn('slow'); //use slow,fast,1000,2000,3000

选择最好的结果

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12385039

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档