Повтор выполнения скрипта
Доброго времени суток,
Помогите решить проблему, есть код скрипта, но выполняется он одноразово, а как можно его сделать что бы выполнялся бесконечно
$(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, время: 00:34. |