Просмотр исходного кода

use force layout to trigger enter transition (making it work for FF)

Evan You 12 лет назад
Родитель
Сommit
b508816c74
1 измененных файлов с 5 добавлено и 13 удалено
  1. 5 13
      src/transition.js

+ 5 - 13
src/transition.js

@@ -13,8 +13,7 @@ module.exports = function (el, stage, changeState, init) {
 
 
     var className         = el.sd_trans_class,
     var className         = el.sd_trans_class,
         classList         = el.classList,
         classList         = el.classList,
-        lastLeaveCallback = el.sd_trans_cb,
-        lastEnterTimeout  = el.sd_trans_to
+        lastLeaveCallback = el.sd_trans_cb
 
 
     // in sd-repeat, the sd-transition directive
     // in sd-repeat, the sd-transition directive
     // might not have been processed yet
     // might not have been processed yet
@@ -45,20 +44,13 @@ module.exports = function (el, stage, changeState, init) {
         classList.add(className)
         classList.add(className)
         // append
         // append
         changeState()
         changeState()
-        // trigger show transition next tick
-        el.sd_trans_to = setTimeout(function () {
-            classList.remove(className)
-            el.sd_trans_to = null
-        }, 0)
+        // force a layout so transition can be triggered
+        var forceLayout = el.clientHeight
+        // trigger transition
+        classList.remove(className)
 
 
     } else { // leave
     } else { // leave
 
 
-        // cancel unfinished enter transition
-        if (lastEnterTimeout) {
-            clearTimeout(lastEnterTimeout)
-            el.sd_trans_to = null
-        }
-
         // trigger hide transition
         // trigger hide transition
         classList.add(className)
         classList.add(className)
         var onEnd = function () {
         var onEnd = function () {