Не останавливается прогон счетчика
Здравствуйте, нужна небольшая помощь.
У меня на сайте есть скрипт который должен прогонять цифры от 0 до 95% при попадании в поле экрана. Он их прогоняет, но останавливаться на 95% хочет. Помогите с реализацией. var decimal_places = 1; var decimal_factor = decimal_places === 0 ? 1 : decimal_places * 1; $(window).scroll(function () { if( $(this).scrollTop() >= $( '#sur' ).offset().top ) { $('#target3').animateNumber({ number: 37, numberStep: function(now, tween) { var floored_number = Math.floor(now), target = $(tween.elem); target.text(floored_number); } }, 5000 ); } }); |
Видимость запуск счётчика
Asqes,
Вариант запуска счётчика при видимости на экране -- без jquery <!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <style type="text/css"> #target3 { width: 120px; height: 40px; padding: 10px; background: #000; font: bold 35px Arial; color: #fff; text-align: center; position: absolute; top: 500px; } </style> </head> <body style="height: 2000px; width: 2000px"> <span id="target3" class="free">TEST</span> <script> function number_to(id, from, to, duration) { var element = document.getElementById(id); window.clearTimeout(element.timer); var start = new Date().getTime(); setTimeout(function go() { var now = (new Date().getTime()) - start; var progress = now / duration; var result = Math.floor((to - from) * progress + from); element.innerHTML = progress < 1? result: to; element.innerHTML += ' %'; if (progress < 1) element.timer = setTimeout(go, 10) }, 10 ); } var elem = document.getElementById('target3') window.onscroll = function() { if (checkViewport('target3')) { if(elem.classList.contains('free')) { elem.classList.remove('free') number_to("target3", 0, 95, 2000); } // выполнится если элемент хотя бы частично видно document.title = 'Элемент видно'; document.body.style.backgroundColor = 'red'; } else { //выполнится если элемент за пределами видимости elem.classList.add('free') document.title = 'Элемент не видно'; document.body.style.backgroundColor = 'white'; } } function checkViewport(id) { var $myElement = document.getElementById(id), landmark = $myElement.getBoundingClientRect(), visibility = landmark.top + $myElement.scrollHeight > 0 && landmark.left + $myElement.scrollWidth > 0 && landmark.bottom - $myElement.scrollHeight < document.documentElement.clientHeight && landmark.right - $myElement.scrollWidth < document.documentElement.clientWidth return visibility } window.onscroll() </script> </body> </html> |
Часовой пояс GMT +3, время: 10:38. |