Помогите пожалуйста, есть функция, суть ее - это сделать эффект текста, который набирается. То есть при переключении слайда она принимает 2 фразы: одна будет невидимая, вторая берется и по одному символу набирается. После того, как функция завершится слайд переключается и все по новой. Тот код, который я демонстрирую, рабочий. Но мне нужно еще как то ее усовершенствовать, чтобы можно было досрочно завершать и переключится на второй слайдер. Только что-то мозгами не могу дойти до этого. Буду благодарен за любую подсказку.
Его кривую роботу при переключении можете увидеть здесь.
http://klucik2016.psdcoding.co/en/
function writetext(prev,timeOneC){
var word = '', pos = '', newWord = '', i = 0, g = 0, sub = '';
sub = $('.topHomeBlock .slider .slick-active .subTitle'); //получаю текст в слайдере
pos = $('.topHomeBlock .slider .slick-active .title'); //получаю второй текст в слайдере
pos.addClass('vis');
word = pos.text();
pos.text('');
timeoutW();
//функция которая добавляет по одной букве к слову за один вызов, когда дойдем до конца вторая фраза будет видна
function timeoutW() {
if (i < word.length){
setTimeout(function () {
i++;
newWord += word.charAt(i);
pos.text(newWord);
timeoutW();
}, timeOneC);
}
if(i === word.length){
pos.addClass('blick');
sub.addClass('vis');
setTimeout(function () {
pos.removeClass('blick');
timeoutR();
}, timeOneC * 15);
}
}
//функция которая удаляет по одному символу за вызов
function timeoutR() {
setTimeout(function () {
if (g < word.length){
g++;
newWord = word.substring(g);
pos.text(newWord);
timeoutR();
}
}, timeOneC/3);
if(g === word.length && auto){
if(prev){
$('.topHomeBlock .slick-prev').click(); //предыдущий слайд
}else{
$('.topHomeBlock .slick-next').click(); // следующий слайд
}
sub.removeClass('vis'); //убираю класс чтобы текст стал невидим
pos.text(word).removeClass('vis'); //убираю класс чтобы текст стал невидим
writetext(false,150); //вызываю функции снова
}
}
}
writetext(false, 150);
function writetext(timeOneC = 150, word = '', pos = '', newWord = '', i = 0, g = 0, sub = ''){
sub = $('.topHomeBlock .slider .slick-active .subTitle');
pos = $('.topHomeBlock .slider .slick-active .title');
pos.addClass('vis');
word = pos.text();
pos.text('');
timeoutW();
function timeoutW() {
if(click){
sub.removeClass('vis');
pos.text(word).removeClass('vis');
pos.removeClass('blick');
return false;
}
if (i < word.length){
setTimeout(function () {
i++;
newWord += word.charAt(i);
pos.text(newWord);
timeoutW();
}, timeOneC);
}
if(i === word.length){
pos.addClass('blick');
sub.addClass('vis');
setTimeout(function () {
pos.removeClass('blick');
timeoutR();
}, timeOneC * 15);
}
}
function timeoutR() {
if(click){
sub.removeClass('vis');
pos.text(word).removeClass('vis');
pos.removeClass('blick');
return false;
}
if (g < word.length){
setTimeout(function () {
g++;
newWord = word.substring(g);
pos.text(newWord);
timeoutR();
}, timeOneC/3);
}
if(g === word.length && !click){
$('.topHomeBlock .slick-next').click();
sub.removeClass('vis');
pos.text(word).removeClass('vis');
writetext(150);
}
}
}
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Добрый вечерНе могу несколько дней разобраться с одним кодом, работает но почему то через раз (на первом изображение работает, на втором нет,...
Нужен бот который будет отправлять приглашение в группу или страницуМожет кто подскажет исходники где искать
Подскажите как правильнее переписать функцию чтобы она дописывала в конец файла, а не заменяла