我在網頁上有一個標題(140px高度),內容爲5「li」。這個(A,B,C)的前3個在「.mouseover」時打開一個子標題(50px高度),其他2個(D,E)全部關閉。jquery爲div設置動畫效果,當完成時,在第一個div裏面設置第二個div的動畫
jq(document).ready(function(){
jq("#A a,#B a,#C a").mouseover(function(){
jq("#subheader").animate({top:"140px"},"normal");
});
jq("#D a,#E a").mouseover(function(){
jq("#subheader").animate({top:"91px"},"normal");
});
});
直到這裏一切正常,現在出現了問題。取決於哪個A,B或C懸停必須在子動畫上做不同的事情,就在動畫結束時。 (內子頭開.smenus)
jq("#A a").mouseover(function(){
jq(".smenu1").slideDown("slow");
jq(".smenu1 ul").animate({margin:"0px auto"},"slow");
jq(".smenu1 li").animate({padding:"0 30px 0"},"slow");
});
jq("#B a").mouseover(function(){
jq(".smenu2").slideDown("slow");
jq(".smenu2 ul").animate({margin:"0px auto"},"slow");
jq(".smenu2 li").animate({padding:"0 30px 0"},"slow");
});
jq("#C a").mouseover(function(){
jq(".smenu3").slideDown("slow");
jq(".smenu3 ul").animate({margin:"0px auto"},"slow");
jq(".smenu3 li").animate({padding:"0 30px 0"},"slow");
});
這不起作用,我想是因爲它完成suheader開幕前開始加載。所以我必須在開幕式結束時做這個動畫。
PD:現在又是一件事,例如當#A被徘徊,然後#B,它必須停止動畫(如果沒有完成,或者只是回調),移除其他子菜單(在這種情況下.smenu1 )並替換它們的子菜單(在這種情況下是.smenu2)。 #D和#E必須做同樣的事情,把一切都回到開始。
編輯:
感謝西門,我有更多或更少的這樣:http://jsfiddle.net/PAXqB/4/
最後實現與。點擊(讓它),而不是用.mouseover()有這樣三種情況:
- 情況1:與鼠標懸停相同,全部打開。
- 案例2:再次點擊相同的Main,都必須像我的例子那樣關閉。
- 案例3:點擊其他主菜單,關閉子菜單,而不是suheader,然後打開新的子菜單。
是的,或多或少與您的代碼相同,事情是標題Main,是一個不同的div,沒有子菜單,而div subheader是其他菜單,我稱爲子菜單。如果作品 – 2012-03-20 13:50:16
是啊,這是沒有問題的:http://jsfiddle.net/PAXqB/1/(順便說一句,請評價; D) – Simon 2012-03-20 16:18:48
這就是它,我改變它在這:http:///jsfiddle.net/PAXqB/3/它工作得很好,有一些錯誤,但與mouseover有關。現在,如果你仍然可以幫助我必須將其修改爲「.click」,則有3種情況:-case 1:與mouseover相同,全部打開。 - 案例2:我再次點擊相同的主,都必須像我的例子一樣關閉。 - 案例3:我點擊另一個主,關閉子菜單,而不是suheader,然後打開新的子菜單。 THX很多(此修改適用於平板電腦) – 2012-03-20 20:09:03