Как я могу остановить мерцание в Scriptaculous? - PullRequest
2 голосов
/ 05 апреля 2010

Я запускаю этот скрипт на странице, которая показывает окно с дополнительной информацией при наведении на него.

сайт для обзора

Сценарий работает нормально, за исключением случаев, когда окно мерцает, прежде чем оно на самом деле масштабируется. Чем это вызвано? Я использую то же самое в основной навигации с тем же движением.

Есть идеи, что вызвало это?

//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

Ответы [ 2 ]

1 голос
/ 05 апреля 2010

@ Аллен правильный. При звонке $(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
  })
0 голосов
/ 05 апреля 2010

Сайт выглядит нормально для меня. Я кое-что заметил, но это могло быть моим воображением.

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

Возможно, вы захотите попробовать это, хотя, кажется, показывает это, а затем обновляет, как написано в коде. Сначала обновите, а затем покажите.

Firefox, полностью обновленный между прочим.

...