Javascript.RU

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

Выполнение скрипта при прокрутке до нужного места
Здравствуйте.
Есть скрипт анимирующий цифры, скажем от 0 до 100.
Все работает как надо, НО, надо чтобы он запускался тогда, когда прокрутишь страницу до него. Иначе получается что анимация цифр пошла, а когда докрутишь до блока с цифрами, то анимация уже завершилась.

Пробовал скрипт https://github.com/dirkgroenen/jQuery-viewport-checker
Но он лишь добавляет класс при появлении блока в зоне видимости.
Пробовал добавлять им нужный класс, который используется в скрипте анимации, класс добавляется но анимации не происходит.

Все таки нужно именно запускать скрипт в определенный момент.
И лучше не с указанием сколкьо пикселей прокрутить (т.к. дизайн адаптивный и у каждого экрана это кол-во будет разным) а именно при появлении блока в зоне видимости.

Подскажите пожалуйста как это сделать, кто знает.

P.S.
Или может в чекере как то можно прописать не добавление класса а запуск скрипта?

<script>
        $(document).ready(function(){
            $('.dummy').viewportChecker({
             "запускаем скрипт анимации /animationNumber.js"
        });
        });
</script>

Последний раз редактировалось Galyanov, 08.12.2014 в 00:12.
Ответить с цитированием
  #2 (permalink)  
Старый 08.12.2014, 00:37
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

Galyanov,
jQuery-viewport-checker позволяет сделать то что вы хотите ... в callbackFunction ставьте запуск своего скрипта ... и ...
Ответить с цитированием
  #3 (permalink)  
Старый 08.12.2014, 17:16
Аспирант
Отправить личное сообщение для Galyanov Посмотреть профиль Найти все сообщения от Galyanov
 
Регистрация: 23.01.2011
Сообщений: 47

Спасибо!
Работает. Сделал вот так:
<script>
    $(document).ready(function(){
    $('.statistik').viewportChecker({
        callbackFunction: function(elem, action){
		$('.lines2').animateNumber({ number: 100 },10000);
		$('.lines3').animateNumber({ number: 90 },10000);
		$('.lines1').animateNumber({ number: 5 },5000);
	}, 
});
    });
</script>
Ответить с цитированием
  #4 (permalink)  
Старый 09.03.2016, 13:50
Новичок на форуме
Отправить личное сообщение для kick Посмотреть профиль Найти все сообщения от kick
 
Регистрация: 09.03.2016
Сообщений: 5

Товарищи у меня аналогичная ситуация, как у топикстартера. Цель таже-заставить бежать цифирь именно тогда, когда пользователь доскроллит до нужного блока. Одно отличие, я в скриптах вообще ноль. Не подскажете что нужно прописать в этом коде, если скрипт jQuery-viewport-checker я уже установил?
<script type="text/javascript">// <![CDATA[
window.onload=function(){
function number_to(id,from,to,duration)
{
var element = document.getElementById(id);
var start = new Date().getTime();
setTimeout(function() {
var now = (new Date().getTime()) - start;
var progress = now / duration;
var result = Math.floor((to - from) * progress + from);
element.innerHTML = progress < 1 ? result : to;
if (progress < 10) setTimeout(arguments.callee, 10);
}, 10);
}
number_to("example2",10,600,5000);
};


// ]]></script>


Нужно, чтобы скрипт запускался на DIV блоке #example2
Заранее спасибо неравнодушному.
Ответить с цитированием
  #5 (permalink)  
Старый 09.03.2016, 15:21
Новичок на форуме
Отправить личное сообщение для kick Посмотреть профиль Найти все сообщения от kick
 
Регистрация: 09.03.2016
Сообщений: 5

Сообщение от рони Посмотреть сообщение
Galyanov,
jQuery-viewport-checker позволяет сделать то что вы хотите ... в callbackFunction ставьте запуск своего скрипта ... и ...
Ребят вся надежда на вас..уже весь инет перерыл..своими силами не могу справиться((
Ответить с цитированием
  #6 (permalink)  
Старый 09.03.2016, 15:37
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

kick,
так попробуйте установить и animateNumber
Ответить с цитированием
  #7 (permalink)  
Старый 09.03.2016, 16:03
Новичок на форуме
Отправить личное сообщение для kick Посмотреть профиль Найти все сообщения от kick
 
Регистрация: 09.03.2016
Сообщений: 5

Сообщение от рони Посмотреть сообщение
kick,
так попробуйте установить и animateNumber
Дык они у меня и так замечательно крутятся. Проблема в том, что они начинают крутиться до того, как пользователь их увидит. И когда я дохожу до места с бегущими цифрами, они уже останавливаются на нужном значении. С этой стороны пролем нет)..проблема в том, чтобы они начинали крутиться только когда скроллинг страницы дойдет до нужного мета (в данном случае блока). Я как бэ понимаю, что нужно две строчки кода вставить, чтобы запускать на #example2, но не знаю как))

Последний раз редактировалось kick, 09.03.2016 в 16:05.
Ответить с цитированием
  #8 (permalink)  
Старый 09.03.2016, 16:55
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

kick,
посмотрите пост 3 ... сделайте элемент с классом statistik а в него ваши циферки
Ответить с цитированием
  #9 (permalink)  
Старый 10.03.2016, 08:38
Новичок на форуме
Отправить личное сообщение для kick Посмотреть профиль Найти все сообщения от kick
 
Регистрация: 09.03.2016
Сообщений: 5

Сообщение от рони Посмотреть сообщение
kick,
посмотрите пост 3 ... сделайте элемент с классом statistik а в него ваши циферки
Я же объясняю....я не знаю в какое место конструкцию из третьего поста вставлять((( Я не разбираюсь в коде скриптов. Если не сложно применительно к моему скрипту, подскажите, куда код вставлять?
Ответить с цитированием
  #10 (permalink)  
Старый 10.03.2016, 09:18
Новичок на форуме
Отправить личное сообщение для kick Посмотреть профиль Найти все сообщения от kick
 
Регистрация: 09.03.2016
Сообщений: 5

Вот так я обернул правильно?

<div class="statistik">
            
            <center><h1><div id="example2"></div></h1></center>
           
           </div>


А код из третьего поста я вынес в отдельный файл и прикрутил вот так

<script src="assets/js/load.js"></script>


И в самом файле load.js я прописал вот так:
$(document).ready(function(){

	    $('.statistik').viewportChecker({

	        callbackFunction: function(elem, action){

	        $('#example2').animateNumber({ number: 600 },10000);


	});

	    });

Не работает. Запускаются самопроизвольно при загрузке страницы(((

Последний раз редактировалось kick, 10.03.2016 в 09:35.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как изменить поведение блоков при прокрутке? Szorstki Элементы интерфейса 11 30.11.2014 17:21
Можно ли отключить выполнение скрипта в IE ? dimba jQuery 2 20.11.2014 07:17
Как реализовать анимацию при прокрутке sabano jQuery 3 24.08.2013 11:52
Выполнение скрипта при открытии ссылки с параметром infernorays Общие вопросы Javascript 22 12.06.2013 21:18
Как при прокрутке страницы оставлять элемент на месте? FRIE jQuery 1 02.08.2012 20:54