Javascript 我怎样才能停止Scriptaculous中的闪烁?

Javascript 我怎样才能停止Scriptaculous中的闪烁?,javascript,css,scriptaculous,Javascript,Css,Scriptaculous,我在一个页面上运行这个脚本,当你滚动它时,它会显示一个包含更多信息的框 脚本运行良好,只是在实际缩放之前框会闪烁。 这是什么原因造成的?我在主导航中使用相同的东西,并使用相同的轻弹 你知道这是什么原因吗 //work page springing box $$('.box').each(function(s) { var more = $(s).down(2); $(s).observe('mouseenter', function(e) { $(more).show(

我在一个页面上运行这个脚本,当你滚动它时,它会显示一个包含更多信息的框

脚本运行良好,只是在实际缩放之前框会闪烁。 这是什么原因造成的?我在主导航中使用相同的东西,并使用相同的轻弹

你知道这是什么原因吗

//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中进行测试

    • 我觉得这个网站不错。我确实注意到了一点,但那可能是我的想象

       new Effect.Scale(more, 100, {
              scaleX: false,
              scaleY: true,
              scaleContent: false,
              scaleFrom: 1,
              mode: 'absolute',
              duration: 0.5
          });
         $(more).show();
      
      不过,您可能想尝试一下,它似乎会显示它,然后更新它,正如代码所说。首先更新它,然后显示它


      Firefox,完全更新。Allen是正确的。调用
      $(更多).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
        })
      

      您需要将其缩放到1,然后显示,然后执行效果。顺便说一句,chrome上有闪烁,最新版本不确定这是否是您的意思:$(更多)。setStyle({height:'1px'})这似乎只会使框稍微向外倾斜一点。