2011-09-22 212 views
0

嘿傢伙我正在製作這個網站的過程如下:http://craigmarkdrums.com(裸露在腦後,它仍然很早,所以沒有判斷,是的,呵呵)並看看菜單。在Firefox中,它可以正常工作,但在Chrome和Safari瀏覽器中,您可以在右手邊看到閃爍。我認爲發生的是盒子尺寸的變化。他們都是李先生。這裏是我的jquery:閃爍的jquery動畫

$(function() 
    { 
     $('#nav li').hover(function() 
     { 
      $(this).children().stop(true, true).fadeIn(); 
      $(this).stop().animate({ 
        width: '90px' 
      }, 300, 'swing'); 
      $(this).siblings().stop().animate({ 
        width: '42px' 
      }, 300, 'swing'); 
     }, function() 
     { 
      $(this).children().stop(true, true).fadeOut(); 
      $(this).stop().animate({ 
        width: '50px' 
      }, 200); 
      $(this).siblings().stop().animate({ 
        width: '50px' 
      }, 200); 
     }); 
    }); 

任何想法我做錯了什麼,或者我怎麼能改善這個代碼?

歡呼

馬特

+0

您可以接受答案。這就是StackOverflow的工作原理:) – rooney

回答

1

你的直覺是正確的。爲了使用浮動來實現這種效果,您需要自己處理動畫並在一個步驟中調整所有LI的大小,確保它們的寬度總和與包含元素相匹配。或嘗試使用絕對定位和自己處理偏移量。

..或者你可以作弊並把整個東西放在一個容器div中,其背景是你使用的照片。這樣,任何流血將是照片,而不是白色背景。

+0

乾杯謝謝堆交配,我會試一試,看看它是如何出來的 – Matt

0

我建議你移動到一個靈活的盒子佈局參見(CSS3)。你可以增加你想要的盒子的大小,其他人將自己縮小。

This page有很大的彈性盒佈局的例子(看看第二個例子)

添加這個CSS到你的菜單面板:

-moz-box-flex: 1; 
-webkit-box-flex: 1; 
box-flex: 1; 

然後設置的寬度徘徊的元素。爲了增加流動性,嘗試加入一些輕微的過渡延遲這樣的(我已經分離,便於閱讀和理解的值):

-moz-transition-property: width; 
-moz-transition-duration: 0.2s; 
-moz-transition-easing: ease-in-out; 
-webkit-transition-property: width; 
-webkit-transition-duration: 0.2s; 
-webkit-transition-easing: ease-in-out; 
transition-property: width; 
transition-duration: 0.2s; 
transition-easing: ease-in-out; 
+0

哦哇,我從來沒有這些牛羣。我應該可以熟練使用可用的css3屬性。感謝堆! – Matt