Функция паузы с опрокидыванием
У меня есть скрипт, который вращает текст и изображение. Я хочу приостановить свою функцию при опрокидывании и продолжить при продолжении. Ниже приведен код. Пожалуйста, помогите или совет.
$(document).ready(function(e) {
function nextMsg(i) {
if (messages.length == i) {
i = 0;
}
$('#message').html(messages[i]).fadeIn(500).delay(5000).fadeOut(500, function() {
nextMsg(i + 1);
});
};
var messages = [
"Hello! <img src='../images/employees/01.png' />",
"This is a website!<img src='../images/employees/02.png' />",
"You are now going to be redirected.<img src='../images/employees/03.png' />",
"Are you ready?<img src='../images/employees/04.png' />",
"You're now being redirected...<img src='../images/employees/05.png' />"
];
$('#message').hide();
nextMsg(0);
});
2 ответа
Я бы сделал это примерно так. Не проверено, извините.. но, надеюсь, имеет смысл.
var index = 0, hovered = false,
messages = [
"Hello! <img src='../images/employees/01.png' />",
"This is a website!<img src='../images/employees/02.png' />",
"You are now going to be redirected.<img src='../images/employees/03.png' />",
"Are you ready?<img src='../images/employees/04.png' />",
"You're now being redirected...<img src='../images/employees/05.png' />"
];
$(function () {
$(document).on('mouseenter', '#message', function () {
hovered = true;
})
.on('mouseleave', '#message', function () {
hovered = false;
});
window.setInterval(function () {
if (!hovered) {
$('#message').fadeOut(500, function () {
$('#message').html(messages[index]).fadeIn(500);
index = index === messages.length ? 0 : index + 1;
});
}
}, 5000);
});
Вы ищете что-то вроде
$(document).ready(function(e) {
var msg = 0, hoverState = false, timeout;
function scheduleNext() {
timeout = setTimeout(function(){
$('#message').fadeOut(500, function() {
nextMsg();
});
}, 5000);
}
function nextMsg() {
if (messages.length == msg) {
msg = 0;
}
$('#message').html(messages[msg++]).fadeIn(500);
scheduleNext();
};
var messages = [
"Hello! <img src='../images/employees/01.png' />",
"This is a website!<img src='../images/employees/02.png' />",
"You are now going to be redirected.<img src='../images/employees/03.png' />",
"Are you ready?<img src='../images/employees/04.png' />",
"You're now being redirected...<img src='../images/employees/05.png' />"
];
$('#message').hide().hover(function(){
if(timeout) {
clearTimeout(timeout);
}
}, function(){
scheduleNext();
});
nextMsg();
});
Демо: скрипка