2012-02-24 30 views
0
第一负载

我试图使用jQuery的翻转(淡入)替换图像,你可以看到这个底部的工作离开这里:为什么这个jQuery图像交换无法在Chrome和Firefox中

http://www.anzie.com/index_rollover.php

但是,在铬中,它只是渐近近乎不透明。并在第一次加载Firefox时,我会在左上角看到一个小蓝框(好像它不在位置)。但后来刷新它在Firefox中工作。这在我自己的机器上完美地工作,当我在线尝试时它不起作用。这导致我不能及时加载图像?我不知道该怎么做..

这里是我的PHP:

<a href="<?php echo tep_href_link(FILENAME_EVENTS); ?>"><img src="images/home_buttons/water_bag.jpg" alt="watch la vie en couleur" border="0" align="left" hoverImg="images/home_buttons/water_bag-hover.jpg" /></a> 

这里是JavaScript:

<script type="text/javascript"> 
$(document).ready(function() { 

$('body').find('*[hoverImg]').each(function(index){ 
    $this = $(this) 
    $this.wrap('<div>')  
    $this.parent().css('width',$this.width()) 
    $this.parent().css('height',$this.height()) 
    $this.parent().css('background-image',"url(" + $this.attr('hoverImg')+")") 
     $this.hover(function() { 
      $(this).stop() 
      $(this).fadeTo('',.01)  
     },function() { 
      $(this).stop() 
      $(this).fadeTo('',1)    
     })      
}); 


}); 
</script> 

回答

2

当我右键单击铬并说“检查”;你的高度/宽度设置为0px。如果我通过chromes工具内联编辑您的高度/宽度,则会显示图像。尝试jQuery的outerWidth(),看看是否提供更好的结果。

http://api.jquery.com/outerWidth/

+0

嗯,我没有在html中设置的图像domeves。所以我很确定,修复它。那谢谢啦! – Sackling 2012-02-24 05:03:52

+0

我认为你的脚本几乎是现货,只是一个div造型问题(在IE中工作)。把你的身高/宽度投入瓦尔并通过铬进行调试。 :) – 2012-02-24 05:04:25

+0

我无法对脚本进行任何评价。它在@Diodeus的前一个问题中给了我 – Sackling 2012-02-24 05:48:25

2

尝试调用你的代码

$(document).load(...) 

代替。图像没有准备好在ready。加载是任何具有src属性的回调。所以一旦所有这些加载(包括图像),它会触发。你也可以在图像上调用它。例如

$('img').load(function() ...); 

性能的方法链接。

$('body').find('*[hoverImg]').each(function(index){ 
    $this = $(this) 
    $this.wrap('<div>')  
     .parent() 
       .css('width',$this.width()) 
       .css('height',$this.height()) 
       .css('background-image',"url(" + $this.attr('hoverImg')+")") 
     .end() 
     .hover(function() { 
      $(this).stop() 
      $(this).fadeTo('',.01)  
     },function() { 
      $(this).stop() 
      $(this).fadeTo('',1)    
     })      
}); 
+0

我所做的只是改变。就绪以.load,现在它似乎没有在各消防:http://bit.ly/zFNYVL – Sackling 2012-02-24 04:57:20

+0

@Sackling - 奇。尝试在头上声明你的js而不是内联。 – mrtsherman 2012-02-24 05:02:47

+0

啊,加上布赖恩的观察,我想我看到了什么是错的,也是为什么我的解决方案失败了。因此,在第一个示例中,图像尚未加载,因此当您设置$(this).parent().css('width')为零时,元素没有高度和宽度!现在,当你切换到加载它修复它,除了因为你声明你的JS内联,图像实际上有时会加载,导致'加载'事件永远不会开火!赶上22。将js移动到您的脑海中,并使用我提供的代码,并对其进行简短分类。或者,在悬停时设置父级的高度宽度。 – mrtsherman 2012-02-24 05:07:16

相关问题