02.08.2016, 13:56
|
Новичок на форуме
|
|
Регистрация: 02.08.2016
Сообщений: 7
|
|
Повтор выполнения скрипта
Доброго времени суток,
Помогите решить проблему, есть код скрипта, но выполняется он одноразово, а как можно его сделать что бы выполнялся бесконечно
$(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();
});
|
|
02.08.2016, 15:34
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,109
|
|
|
|
03.08.2016, 07:36
|
Новичок на форуме
|
|
Регистрация: 02.08.2016
Сообщений: 7
|
|
Спасибо Рони за совет, действительно сделано проще,
а не подскажите, почему не работает в таком виде код?
<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, 03.08.2016 в 07:39.
|
|
03.08.2016, 08:09
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,109
|
|
folkemon,
потому что даже если исправить ошибки, алгоритм скрипта предназначен для испытания браузера на выносливость, сотни таймеров одновременно!!!
|
|
03.08.2016, 09:53
|
Новичок на форуме
|
|
Регистрация: 02.08.2016
Сообщений: 7
|
|
рони,
Пожалуйста помогите, я так понимаю что множество таймеров появляется из за условий того что скроллинг выполняется при условии >400px и < 800px, а если поставить условие =400px и =800px ?
|
|
03.08.2016, 10:32
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,109
|
|
включение/выключение печатной машинки при скролинге
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>
Последний раз редактировалось рони, 03.08.2016 в 10:35.
|
|
03.08.2016, 11:22
|
Новичок на форуме
|
|
Регистрация: 02.08.2016
Сообщений: 7
|
|
рони,
Спасибо большое
Только есть одно, но как можно сделать что бы не циклически печатался а только по запуску скролла?
|
|
03.08.2016, 11:28
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,109
|
|
folkemon,
function firstScript() {
data.textContent += str[i++];
if (i < len) timer = window.setTimeout(firstScript, 50);
}
|
|
03.08.2016, 14:26
|
Новичок на форуме
|
|
Регистрация: 02.08.2016
Сообщений: 7
|
|
рони,
Спасибо, то что надо
|
|
|
|