Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Смена изображений при прокрутке (https://javascript.ru/forum/misc/57178-smena-izobrazhenijj-pri-prokrutke.html)

Иван Федорович 07.08.2015 13:54

Во всех. Может я ошибаюсь, но мне кажется это связано с большим количеством картинок.

Иван Федорович 07.08.2015 13:57

Картинок штук 20. При открытии сайта и при первых прокрутках, блик есть, спустя какое-то время блик при прокрутке исчезает.

Иван Федорович 07.08.2015 23:24

Помогите пожалуйста.

рони 08.08.2015 13:56

Иван Федорович,
сделайте предзагрузку изображений (в моём коде она есть строки 37 - 40 пост 14)

Иван Федорович 08.08.2015 17:52

Чем заменить строки 37 - 40. Просьба.

рони 08.08.2015 18:39

Иван Федорович,
а зачем? может только перенести до window.onload

Иван Федорович 08.08.2015 18:48

На 31 строку?

Иван Федорович 08.08.2015 18:54

Подскажите пожалуйста куда вставить 37-40 строку.

рони 08.08.2015 19:21

Иван Федорович,
танец с бубнами ... незнаю поможет ли он вам.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
 <title>video</title>

<style>
body{
    height: 3000px;
}

.video {
    position: fixed;
    left: 100px;
    top: 10px;
    width: 400px;
    height: 250px;
    border: 1px solid green;
    background-image: url("http://360tv.ru/binfiles/images/20150424/ba10f44c.jpg");
    background-size: cover;
    background-repeat: no-repeat;
  }
</style>
<script>
   var images = ["http://360tv.ru/binfiles/images/20150424/ba10f44c.jpg","http://www.wallsbox.ru/images/original/dozhd-[1680x1050]-[3877171].jpg", "http://moimiri.ru/wp-content/gallery/2013year/2013_Sirost_90x80.jpg", "http://st.magazin-almaz-servis.ru/12/1531/460/syrost-v-kvartire-kak-izbavitsya-foto-2.jpg", "http://cs7002.vk.me/c7007/v7007062/8820/Snd9Gm9pv5k.jpg"],
   len = images.length;
   for (var i=0; i<len; i++)  {
      var img = new Image();
          img.src = images[i]
    } ;
window.onload = function() {
    var videoElem = document.querySelector('.video'),
    scrollHeight = document.documentElement.scrollHeight,
    clientHeight = document.documentElement.clientHeight,
    maxScroll = Math.max(scrollHeight, clientHeight) - clientHeight,
    step = maxScroll/len;


window.onscroll = function(){
    var scrolled = window.pageYOffset || document.documentElement.scrollTop;
    for (var i=0; i < len; i++)  {
      if (i * step + step >= scrolled) break
    }
    videoElem.style.backgroundImage = "url("+images[i]+")";
    }
}

</script>
</head>
<body>
<div class="video"></div>
</body>
</html>

Иван Федорович 08.08.2015 19:48

Отдельно всё работает. Спасибо. Когда вставляю в код сайта снова появляется блик.


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