Повтор выполнения скрипта
Доброго времени суток,
Помогите решить проблему, есть код скрипта, но выполняется он одноразово, а как можно его сделать что бы выполнялся бесконечно $(document).ready(function(){ $.fn.animate_Text = function() { var string = this.text(); return this.each(function(){ var $this = $(this); string=string.replace(/./g, '<span class="new">$&</span>'); $this.html(string.replace(/~/g, '<br />')); $this.find('span.new').each(function(i, el){ setTimeout(function(){ $(el).addClass('div_opacity'); }, 10 * i); }); }); }; $('#example').show(); $('#example').animate_Text(); }); |
folkemon,
на форуме сто пятьсот печатающих машинок ... http://javascript.ru/forum/misc/6175...ajjmingom.html http://javascript.ru/forum/misc/4589...-mashinki.html http://javascript.ru/forum/events/35...tml#post235186 |
Спасибо Рони за совет, действительно сделано проще,
а не подскажите, почему не работает в таком виде код? <head> <style> body { height: 1200px; } </style> </head> <body> <div id="data"></div> <script> $(window).scroll(function(){ if ($(this).scrollTop() > 400) { firstScript ();} } $(window).scroll(function(){ if ($(this).scrollTop() < 800) { firstScript ();} } var firstScript = function () { var str = 'Основной сложностью в работе с закупками является является поиск тендеров, которые проводятся заказчиками и касаются товаров, работ у услуг поставляемых исполнителем. Поиск торгов – ответственный и сложный этап организации участия в тендере и от того, насколько качественно и профессионально он организован, во многом зависит его благоприятный исход.', len = str.length, i = 0; setInterval(function () { data.innerHTML += str[i++]; if (i == len) data.innerHTML = '', i = 0; }, 50); }()); </script> </body> |
folkemon,
потому что даже если исправить ошибки, алгоритм скрипта предназначен для испытания браузера на выносливость, сотни таймеров одновременно!!! |
рони,
Пожалуйста помогите, я так понимаю что множество таймеров появляется из за условий того что скроллинг выполняется при условии >400px и < 800px, а если поставить условие =400px и =800px ? |
включение/выключение печатной машинки при скролинге
folkemon,
<!DOCTYPE html> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style type="text/css"> body { height: 2500px; } #data{ position: fixed; } </style> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> <script> $(function() { var timer, pause = true, str = 'Основной сложностью в работе с закупками является является поиск тендеров, которые проводятся заказчиками и касаются товаров, работ у услуг поставляемых исполнителем. Поиск торгов – ответственный и сложный этап организации участия в тендере и от того, насколько качественно и профессионально он организован, во многом зависит его благоприятный исход.', len = str.length, i = 0; $(window).scroll(function(){ var scroll = $(this).scrollTop(); if (scroll > 400 && scroll < 800) { if(pause) { pause = false; timer = window.setTimeout(firstScript, 300)} } else { pause = true; data.textContent = '', i = 0; window.clearTimeout(timer) } }) function firstScript() { data.textContent += str[i++]; if (i == len) data.textContent = '', i = 0; timer = window.setTimeout(firstScript, 50); } }); </script> </head> <body> <div id="data"></div> </body> </html> |
рони,
Спасибо большое Только есть одно, но как можно сделать что бы не циклически печатался а только по запуску скролла? |
folkemon,
function firstScript() { data.textContent += str[i++]; if (i < len) timer = window.setTimeout(firstScript, 50); } |
рони,
Спасибо, то что надо |
Часовой пояс GMT +3, время: 03:47. |