2010-04-05 84 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 
    })