2009-09-14 33 views
2

子元素與$消失(」。parent_class')不透明的效果我有這個網站:jQuery的:在IE

<div class="foo parent"> 
    <div class="child"></div> 
</div> 

與一些CSS:

.foo{ 
     position:absolute; 
     left: -117px; 
     background:#000000 none repeat scroll 0 0; 
     color:#FFFFFF; 
     z-index:8; 
    } 
    .parent{ 
     top:23px; 
     width:100px; 
     height:30px; 
     display:none; #parent and child to start out hidden 
    } 
    .child{ 
     position:relative; 
     left:94px; 
     top:5px; 
     height:20px; 
     width: 110px; 
     background:#000000; 
     z-index:9; 
    } 

我想這個父母和孩子一起褪色,最後以不透明度:0.50。 Firefox做得很好,但IE卻帶來了麻煩:當我做了一個fadeIn()或者fadeTo(),或者只是簡單地在父級上應用.css('opacity','0.50'),父級渲染,噸。

$('.parent').fadeTo('fast',0.50) 

- >導致父母淡入,但孩子永遠不會出現。

- >出現父母,無子

$('.parent').css('opacity','0.55') 
$('.parent').show() 

- >母公司出現不透明度,孩子永遠不會出現

$('.parent').show() 

- >父母和孩子出現就好(但沒有動畫或透明度)。如果我做

$('.parent').css('opacity','0.55') or $('.parent').fadeTo('fast', 0.50) 

之後,家長得到的效果和孩子消失

父母和孩子如何一起動畫並共享不透明屬性?

+0

你在使用最新的jQuery版本嗎? – 2009-09-14 14:57:50

回答

0

我已經有一些成功的定義上的元素透明度然後在父元素上做一個fadeIn()。如果我這樣做:

$('.child').css('opacity', '0.50'); 
$('.parent').css('opacity', '0.50'); 
$('.parent').fadeIn('fast'); 

這給出了我要去的效果。然而,這很奇怪,我必須首先設置孩子的不透明度。如果我把他們都在同一時間

$('.child, .parent').css('opacity','0.50'); 

,或者如果我第一次把它放在父,當我做了淡入()的孩子像以前一樣消失。

3

爲什麼不嘗試同時指定您的選擇中父和子元素,同時應用效果/ css來都:

$('.parent, .child').fadeTo('fast',0.50); 
+0

好,是的,這是按預期工作,但只有當我打破他們,所以他們是兄弟姐妹,而不是父母和孩子。 我開始與顯示:無;所以它似乎我需要fadeIn()而不是fadeTo()(他們沒有出現時,我做fadeTo()開始與顯示:無,他們應該?) $(。parent,.child')。 css('opacity','0.50') $(。parent,.child')。fadeIn('fast') - >按照我想要的方式在IE中工作,但前提是他們是兄弟姐妹,否則如果他們是父母孩子,如上所述,孩子不會呈現。我可以用這個工作,但我希望我可以讓他們作爲父母和兄弟姐妹,因爲它有助於定位。 – Purrell 2009-09-14 01:35:11

+0

仔細檢查,我真的需要他們成爲父母兄弟姐妹。這很煩人,我已經嘗試了許多不同的類,定位器,jQuery方法的配置。看起來,只要我使用.css或.fadeIn()或.fadeTo()給父級透明度,子級就會消失並且不能被重新渲染。它不再響應.show()或.css('display','block')等等。如果我按照建議同時將效果應用於父代或兩者,則會發生這種情況。如果該效果完全應用於父母,則該孩子消失。 – Purrell 2009-09-14 03:14:55