2012-07-19 94 views
1

如前所述,拖動畫布本身後,畫布上的元素會跳轉。我正在使用-webkit-transform:translate(x,y)來拖動畫布。有什麼想法來解決這個問題?拖動畫布本身後,畫布上的元素跳轉

+2

你需要顯示的最小代碼段抄錄的問題。另外,你使用哪個瀏覽器來測試它? – andand 2012-07-19 15:42:42

回答

0

查找導致迴流在CSS的變化:

  • visibility:hidden的/可見
  • 顯示:無
  • :懸停

和JavaScript:

  • offsetWidth或offsetHeight
  • 滾動事件

可悲的事實對CSS3選擇器是他們真的不應該,如果你在意頁面的性能在所有使用。使用類和ID修飾標記並純粹匹配這些標記,同時避免使用兄弟,後代和子選擇器的所有用途實際上會使頁面在所有瀏覽器中表現得更好。 使用父代選擇器時,意外導致文檔範圍內的混亂變得非常容易。人們可以並且會濫用這個選擇器。支持它給人們一大堆繩索。

完整的配置文件適用於對性能不敏感的上下文。例如,選擇器API規範[SELECTORS-API]的實現應使用'完整'配置文件。它包括本文檔中定義的所有選擇器。

符合選擇器級別4的CSS實現必須使用「快速」配置文件進行CSS選擇。

快速配置文件適用於任何環境,包括動態瀏覽器CSS選擇器匹配。它包括本文檔中定義的每個選擇器,但以下內容除外:

組合器位於:matches(),:not(),:nth-​​match()和:nth-​​last-match()。

參考組合子

主題指示

尤其形勢的瀏覽器正在最多,正在考慮不考慮的元素相匹配的選擇的。所以這個問題變成了決定選擇器不盡快匹配的問題。如果在匹配的情況下需要額外的工作,那麼由於在不匹配的情況下保存的所有工作,您仍然會贏。

使用特定瀏覽器選擇目標文件本身:

@-moz-document url-prefix() 
    { 
    @media all 
    { 
    .foo { color: red } /* Firefox */ 
    } 
    } 

*::-ms-backdrop, .foo { color: red } /* IE11 */ 

*:-webkit-any-link, .foo { color: red } /* Webkit */ 

如果您要根據上下文來引用一個子元素,使用HTML5和CSS3命名空間的XML序列化:

@namespace m "http://www.w3.org/1998/Math/MathML/"; 

m|math { border: 1px solid blue; } 

如果要顯示基於父僞類的子元素,可以定義子元素的默認狀態,然後爲父級的每個狀態更改重新定義它:

li:hover > a * { display: none; } 

li:hover > a:hover * { display: block; } 

參考