2016-07-06 134 views
0

我有三個圖像img1img2img3(3圖像)。它的初始位置是-50%絕對右上角和左側。當我將位置更改爲static,並且轉換爲2s時,它實際上需要移到中心。Chrome:CSS&JS轉換不能正常工作

問題雖然transiton正在發生,但是在某些鍍鉻物(在某些筆記本電腦的鍍鉻物中)中會卡住。我知道是什麼讓這個轉折破裂。

這是我的jQuery代碼。

 $(".middle-fixed-coming-soon-top").css({"top": "0px"}); 
     $(".middle-fixed-coming-soon-top").one('webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend', function(e) { 
      $(".middle-fixed-coming-soon-top").css({"position": "static"}); 
      // code to execute after transition ends 
     }); 

     $(".middle-fixed-organics-left").css({"left": "333px"}); 
     $(".middle-fixed-organics-left").one('webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend', function(e) { 
      $(".middle-fixed-organics-left").css({"position": "static"}); 
      $(".middle-fixed-organics-left .for-margin").css("margin-top", "auto"); 
      // code to execute after transition ends 
     }); 

     $(".middle-fixed-tagline-right").css({"right": "333px"}); 
     $(".middle-fixed-tagline-right").one('webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend', function(e) { 
      $(".middle-fixed-tagline-right").css({"position": "static"}); 
      $(".middle-fixed-tagline-right .for-margin").css("margin-top", "auto"); 
      // code to execute after transition ends 
     }); 

我是jQuery的新手。誰能幫忙?提前致謝。

EDITS
發生這種情況時,我第二次或更多的重新加載。

+0

在哪個版本中不起作用? – Flink

+1

因爲你的過渡使用絕對像素,這意味着過渡完美,但只有在一個精確的屏幕寬度 - 1360px – Adam

+0

它是'版本51.0.2704.79建立在Ubuntu 14.04' –

回答

3

我注意到的最重要的事情是,您將一個元素從位置:絕對位置切換到靜態位置。這意味着它從不影響周圍內容轉變爲推動其他任何事情。我會使用相對而非絕對的,並完全取出靜態開關。從那裏,你應該只需要重新確定左/頂部定位。下面的代碼應該處理所有的JS結束,只是CSS需求的位置:絕對切換到位置:相對。

 $(".middle-fixed-coming-soon-top").css({"top": "0px"}); 
     $(".middle-fixed-coming-soon-top").one('webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend', function(e) { 
      // code to execute after transition ends 
     }); 

     $(".middle-fixed-left").css({"left": "0px"}); 
     $(".middle-fixed-left").one('webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend', function(e) { 
      $(".middle-fixed-left .for-margin").css("margin-top", "auto"); 
      // code to execute after transition ends 
     }); 

     $(".middle-fixed-tagline-right").css({"right": "0px"}); 
     $(".middle-fixed-tagline-right").one('webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend', function(e) { 
      $(".middle-fixed-tagline-right .for-margin").css("margin-top", "auto"); 
      // code to execute after transition ends 
     }); 
+0

然後爲什麼它只在私人標籤,而不是在正常標籤?有點奇怪。我也清除了緩存。所以我需要將一切都轉換爲相對的? –

+0

如果你只是刪除了CSS({「position」:「static」});從你的JS和改變。middle-fixed-coming-soon-top,.middle-fixed-triesta-organics-left和.middle-fixed-tagline-right從position:absolute到position:relative,它應該修復jump 。但是你需要稍微調整JS中最終狀態的左/頂位置來補償。 – will

+0

我剛剛編輯了您發佈的用於處理位置更改的代碼,將其交換並在CSS中進行絕對修改以應對任何屏幕大小。 – will