Задержка изменения размера Jquery

0

Почему в моем коде есть такая страшная задержка. Я хочу, чтобы этот div скользил и выдвигался на основе размеров окна. Но каждый раз есть задержка. Это никогда не бывает такой же длины. Должен ли я использовать функцию тайм-аута? Или что-то не так с моим кодом?

<!DOCTYPE html>
<html>
<head><style type="text/css">div {
  background-color: brown;
  width: 100px;
  height: 100px;
  position: relative;
  display: none;
  left: -120px;
}
</style>


<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
<title>HTML5, CSS3 and JavaScript demo</title>
</head>
<body>

  <div style="display: block; left: 0px;" id="navg">Chocolate!</div>


<script>var navg = $("#navg");
var wind = $(window);

wind.load(function() {
  if (wind.width() > 900) {
    navg.show();
    navg.animate({
      left: "0px"
      }, 1000);
  } 
});

wind.resize(function() {
  if ((wind.width() < 900) && (navg.is(":visible"))) {
    navg.animate({"left":"-120px"}, 1000, function() {
      $(this).hide();
    });
  } else if ((wind.width() >= 900) && (navg.is(":hidden"))) {
    navg.show(function() {
      navg.animate({"left":"0px"}, 1000); 
    });
  }
});
</script></body>

Вот ссылка на код в Liveweave: http://liveweave.com/HWpQUe Попробуйте изменить размер, чтобы лучше понять, что я имею в виду.

  • 3
    Кажется, работает как предназначено для меня. Под задержкой вы имеете в виду скорость квадрата медленная? Если это так, просто уменьшите число 1000 (три примера этого в вашем коде здесь) до 200 или 400 и посмотрите, что работает для вас.
  • 0
    Спасибо за ваш пост, Хамза, но я имею в виду, что если я изменю размер окна несколько раз, он не сработает. Иногда я изменяю размер окна и должен ждать 30 секунд, прежде чем появится всплывающее окно.
Показать ещё 4 комментария
Теги:

1 ответ

0
Лучший ответ

Что происходит, так это то, что у вас несколько анимаций, работающих друг над другом, и прекращение друг друга. Вероятно, вы хотите использовать api.jquery.com/finish перед началом каждой анимации, чтобы остановить любую предыдущую анимацию (ы).

Ещё вопросы

Сообщество Overcoder
Наверх
Меню