Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Мигание при смене кадров (https://javascript.ru/forum/jquery/46435-miganie-pri-smene-kadrov.html)

paveltkachev 09.04.2014 16:59

Мигание при смене кадров
 
Здравствуйте. Пытаюсь заменить имеющийся облёт дом, написанный на flash на аналогичный по функционалу, с использованием jquery. Сделать облёт удалось
http://ярославский27.рф/fly1.php

Но при нажатии на левую стрелку происходит мигание, тогда как при нажатии на правую такого эффекта нет. Как устранить мигание?

рони 09.04.2014 17:55

paveltkachev,
выкинуть строку 108 $('div.houseframe').hide();
или если нужно скрывать всё кроме текущего div

paveltkachev 09.04.2014 18:01

Спасибо огромное!

paveltkachev 09.04.2014 18:04

В IE9 кадры мигают, пока не будет сделан полный облёт вокруг дома. На втором круге всё уже без миганий. В других браузерах такой проблемы нет. Можно ли это победить?

рони 09.04.2014 18:10

paveltkachev,
возможно картинки неуспели подгрузится - воспроизвести мигание неудалось .

paveltkachev 09.04.2014 18:14

А можно сделать какой-то предзагрузчик, чтобы начинать отображение при гарантированно загруженных картинках?

рони 09.04.2014 18:26

paveltkachev,
прогоните циклом создание картинки с нужным src - на onload последней поставьте появление кнопок влево вправо -- неплохобы фоном поставить менее ёмкую картинку на время загрузки -- или может сжать те что есть. загрузчиков полно в инете.
и тут на форуме .

paveltkachev 09.04.2014 18:36

Единственный найденный мною предзагрузчик - это вот этот

function preloadImages()
{
for(var i = 0; i<arguments.length; i++)
$("<img />").attr("src", arguments[i]);
}

Но тут нет onload.

рони 09.04.2014 19:51

paveltkachev, можно и без jquery строки 14, 15 и 25 вам ненужны -- да и в код выше можно добавить load.
<!DOCTYPE HTML>
<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  .gallery img{
    width: 150px;
    height: 100px;
  }

  </style>
  <script>
window.onload = function () {
     var imgs = document.querySelectorAll('.gallery img');
     var arr_src = ['http://www.anypics.ru/pic/201302/1366x768/anypics.ru-59453.jpg',
     'http://www.wall-papers.ru/main.php?g2_view=core.DownloadItem&g2_itemId=38417&g2_serialNumber=3',
     'http://w7t.ru/zooms/7da1/7/6168262b44.jpg',
     'http://imgs.mi9.com/uploads/cartoon/4834/disney-cartoon-wallpaper_1366x768_88837.jpg',
     'http://biskvitka.net/uploads/posts/2011-05/thumbs/1306582219_12.jpg'],len = arr_src.length;
     for (var i = 0; i < arr_src.length; i++) {
         var img = document.createElement('img');
         img.onload = (function (a) {
             return function () {
                 imgs[a].src = this.src;
                 len--;
                 !len && alert('complete')
             }
         })(i);
         img.src = arr_src[i];
         img.complete && img.onload()
     }
 }
  </script>
</head>

<body>
<div class="gallery">
<img src="http://ozemanage.com/images/loading.gif" alt="" />
<img src="http://ozemanage.com/images/loading.gif" alt="" />
<img src="http://ozemanage.com/images/loading.gif" alt="" />
<img src="http://ozemanage.com/images/loading.gif" alt="" />
<img src="http://ozemanage.com/images/loading.gif" alt="" />
</div>
</body>
</html>

paveltkachev 10.04.2014 11:54

Предзагрузчик не помогает. Помогла замена jQuery на 1.11


Часовой пояс GMT +3, время: 21:50.