Анимация паузы при наведении на нее
Это мой первый пост здесь, но я использовал этот сайт как отличный справочник в течение многих лет. Я просто пытаюсь заставить мое слайд-шоу остановиться, когда наведу на него курсор. Код ниже. Я пытался использовать jquery hover, чтобы остановить его, но у меня ничего не получилось. У кого-нибудь есть идеи?
$(function() {
// create the image rotator
setInterval("rotateImages()", 7000);
});
function rotateImages() {
var oCurPhoto = $('#photoShow div.current');
var oNxtPhoto = oCurPhoto.next();
if (oNxtPhoto.length == 0)
oNxtPhoto = $('#photoShow div:first');
oCurPhoto.removeClass('current').addClass('previous');
oNxtPhoto.css({ opacity: 0.0 }).addClass('current').animate({ opacity: 1.0 }, 1000,
function() {
oCurPhoto.removeClass('previous');
});
}
2 ответа
Это может быть некрасиво, но это должно работать
$(function() {
var myTimer = 0;
myTimer = setInterval("rotateImages()", 7000);
$('#photoShow').mouseover(function() {
clearInterval(myTimer);
}).mouseout(function(){
myTimer = setInterval("rotateImages()", 7000);
});
});
В способе, которым вы реализуете, я могу только рекомендовать переменную для хранения статуса вращения.
как это:
var canRotate = true;
$(function() {
// create the image rotator
setInterval("rotateImages()", 7000);
});
function rotateImages() {
if(!canRotate) { return; }
var oCurPhoto = $('#photoShow div.current');
var oNxtPhoto = oCurPhoto.next();
if (oNxtPhoto.length == 0)
oNxtPhoto = $('#photoShow div:first');
oCurPhoto.removeClass('current').addClass('previous');
oNxtPhoto.css({ opacity: 0.0 }).addClass('current').animate({ opacity: 1.0 }, 1000,
function() {
oCurPhoto.removeClass('previous');
});
}
Это должно работать нормально.
PS: Вы могли бы также искать метод .stop()
в jQuery
библиотека. это отправит запрос на остановку объекту, который в данный момент анимируется.