2010-04-05 312 views
2

我正在頁面上運行此腳本,該頁面顯示一個包含更多信息的框,當您翻轉它時。它實際上秤前如何停止Scriptaculous中的閃爍?

site for review

該腳本工作正常,但那裏有盒子的閃爍。 這是什麼造成的?我在主導航中使用同樣的功能。

任何想法是什麼造成這種情況?

//work page springing box 
$$('.box').each(function(s) { 

    var more = $(s).down(2); 
    $(s).observe('mouseenter', function(e) { 

     $(more).show(); 
     new Effect.Scale(more, 100, { 
      scaleX: false, 
      scaleY: true, 
      scaleContent: false, 
      scaleFrom: 1, 
      mode: 'absolute', 
      duration: 0.5 
     }); 

    }); 

    $(s).observe('mouseleave', function(e) { 


    new Effect.Fade(more, { 
     duration: 0.2 
    }) 

    }); 


}); 

謝謝。 豐富

  • 我要說明,我在Safari 4.0.4正在測試
+1

您需要將其縮放到1然後顯示,然後執行該操作。 BTW存在閃爍在Chrome,最新版本 – 2010-04-05 14:42:20

+0

不知道這是你的意思: $(更多).setStyle({ 高度:「1px的」 }) 這似乎只會使剛剛盒子出來克朗一點點。 – 2010-04-05 15:08:47

回答

0

該網站看起來好像沒什麼問題。我確實注意到了一些小東西,但這可能是我的想象。

new Effect.Scale(more, 100, { 
     scaleX: false, 
     scaleY: true, 
     scaleContent: false, 
     scaleFrom: 1, 
     mode: 'absolute', 
     duration: 0.5 
    }); 
    $(more).show(); 

您可能想嘗試這個,但它似乎顯示它,然後更新它,如代碼所示。先更新它,然後顯示它。

Firefox,完全更新btw。

1

@艾倫是對的。當您致電$(more).show();顯示整個框。然後,當你打電話給new Effect.Scale(more時,盒子會縮小並滑入。所以$(more).show();是什麼導致了閃爍。您可以嘗試:

$(more).show.bind(more).delay(0.01); 
    new Effect.Scale(more, 100, { 
     scaleX: false, 
     scaleY: true, 
     scaleContent: false, 
     scaleFrom: 1, 
     mode: 'absolute', 
     duration: 0.5 
    })