Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.07.2015, 23:39
Интересующийся
Отправить личное сообщение для Иван Федорович Посмотреть профиль Найти все сообщения от Иван Федорович
 
Регистрация: 22.07.2015
Сообщений: 18

Смена изображений при прокрутке
Помогите пожалуйста! Нужен блок div который будет менять фоновое изображение в обе стороны при прокрутке страницы с большой периодичностью чтобы создавался эффект видеою
Ответить с цитированием
  #2 (permalink)  
Старый 23.07.2015, 00:15
Аватар для EmperioAf
Профессор
Отправить личное сообщение для EmperioAf Посмотреть профиль Найти все сообщения от EmperioAf
 
Регистрация: 15.01.2015
Сообщений: 622

при прокрутке блок div должен быть на одном месте на экране?
фоновое изображение должно меняться из-за прокрутки или с большой периодичностью ?
Ответить с цитированием
  #3 (permalink)  
Старый 23.07.2015, 11:27
Интересующийся
Отправить личное сообщение для Иван Федорович Посмотреть профиль Найти все сообщения от Иван Федорович
 
Регистрация: 22.07.2015
Сообщений: 18

Блок должен быть зафиксирован на одном месте. Изображение должно меняться при прокрутке.
Ответить с цитированием
  #4 (permalink)  
Старый 23.07.2015, 15:55
Интересующийся
Отправить личное сообщение для Иван Федорович Посмотреть профиль Найти все сообщения от Иван Федорович
 
Регистрация: 22.07.2015
Сообщений: 18

Просто нужна смена изображений при прокрутке, скажем, через каждых 20px
Ответить с цитированием
  #5 (permalink)  
Старый 23.07.2015, 16:02
Аватар для EmperioAf
Профессор
Отправить личное сообщение для EmperioAf Посмотреть профиль Найти все сообщения от EmperioAf
 
Регистрация: 15.01.2015
Сообщений: 622

Сообщение от Иван Федорович Посмотреть сообщение
Просто нужна смена изображений при прокрутке, скажем, через каждых 20px
Просто непонятно в чём проблема задания. Нужно повесить на window.onscroll (https://learn.javascript.ru/onscroll) функцию, в которой будет смена изображений в зависимости от положения ползунка(window.pageYOffset).
Ответить с цитированием
  #6 (permalink)  
Старый 23.07.2015, 18:57
Интересующийся
Отправить личное сообщение для Иван Федорович Посмотреть профиль Найти все сообщения от Иван Федорович
 
Регистрация: 22.07.2015
Сообщений: 18

Сообщение от EmperioAf Посмотреть сообщение
Просто непонятно в чём проблема задания.
Нужно чтобы при прокрутке страницы вверх/вниз в фиксированном блоке div изображения меняются в строгом порядке. Например: при прокрутке вниз порядок изображений 1 2 3, при прокрутке вверх порядок 3 2 1. EmperioAf, я новичок в JavaScript, поэтому просьба объяснить на примере решения, с комментариями, пожалуйста.
Ответить с цитированием
  #7 (permalink)  
Старый 24.07.2015, 15:33
Аватар для EmperioAf
Профессор
Отправить личное сообщение для EmperioAf Посмотреть профиль Найти все сообщения от EmperioAf
 
Регистрация: 15.01.2015
Сообщений: 622

в общем задача для меня оказалась гораздо сложнее чем изначально думал.

<!DOCTYPE html>
<html>
<head>
 <meta http-equiv="content-type" content="text/html; charset=utf-8" />
 <title>Спойлеры</title>
 <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
<style>
.container{
    position: relative;
    width: 1000px;
    height: 3000px;
    border: 1px solid red;
}

.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;
}
</style>
</head>
<body>
<div class="container">
     <div class="video"></div>
</div>
<input type="hidden" value="0">
<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"];

window.onscroll = function(){
    var videoElem = document.querySelector('.video');
    var scrolled = window.pageYOffset || document.documentElement.scrollTop;
    var scrolledBefore = document.querySelector('input[type="hidden"]').value;
    document.querySelector('input[type="hidden"]').value = scrolled;
    var scrolledResult = scrolled - scrolledBefore;
    if (scrolledResult<0){
        var timeout = 200;
        for(var i = 4; i>=0; i--){
            setTimeout(
                (function(n){
                    return function(){
                    videoElem.style.backgroundImage = "url("+images[n]+")";
                    }
            })(i)
            ,timeout
            );
            timeout += 200;
        };
    }
    if (scrolledResult>0){
         timeout = 200;
        for(var i = 0; i < 5 ; i++){
            setTimeout(
                (function(n){
                    return function(){
                    videoElem.style.backgroundImage = "url("+images[n]+")";
                    }
            })(i)
            ,timeout
            );
            timeout += 200;
        };
    }
        
    }

</script>
</body>
</html>
Ответить с цитированием
  #8 (permalink)  
Старый 24.07.2015, 15:50
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

EmperioAf,
вычислить максимальный скролл страницы - разделить на количество картинок - получили шаг - текущий скрол разделить на шаг - получить целое число - показать картинку под индексом == число - всё
Ответить с цитированием
  #9 (permalink)  
Старый 24.07.2015, 15:55
Аватар для EmperioAf
Профессор
Отправить личное сообщение для EmperioAf Посмотреть профиль Найти все сообщения от EmperioAf
 
Регистрация: 15.01.2015
Сообщений: 622

Сообщение от рони Посмотреть сообщение
EmperioAf,
вычислить максимальный скролл страницы - разделить на количество картинок - получили шаг - текущий скрол разделить на шаг - получить целое число - показать картинку под индексом == число - всё
а если у него сайт огромный - такой как я и сделал .container{ height:3000px} ?
Ответить с цитированием
  #10 (permalink)  
Старый 24.07.2015, 16:25
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Сообщение от EmperioAf
а если у него сайт огромный - такой как я и сделал .container 3000px ?
а что это меняет? или пусть ТС уточнит
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Смена картинки кнопки при нажатии и обратно при повторном нажатии mff Общие вопросы Javascript 15 03.05.2018 14:12
смена class (стиль) блока при прокрутке стриницы CrossFire Элементы интерфейса 7 26.07.2015 21:24
смена картинок при нажатии sdff Общие вопросы Javascript 15 08.02.2014 17:08
выборка в php при прокрутке страницы вниз Tchort Events/DOM/Window 4 11.08.2011 17:38
Смена картинки (бекграунд дива ) при событии (нажатие клавиш или клавиши и мыши) Monster Events/DOM/Window 5 01.11.2009 01:16