早上好。我正在制作一个简单的jQuery画廊,但遇到了问题。它允许用户通过一些按钮循环浏览图像集合,并在定时器上旋转这些图像。我的问题是,用户可以多次点击按钮,使淡入动画排队并重复执行,例如,用户点击按钮5次 > 相同的图像淡入/淡出5次 > 画廊移动到下一个图像。
我尝试使用:
我还尝试通过以下方式禁用按钮:
还有一个次要问题,如果您在图像处于过渡状态时设法单击按钮,则下一个图像会显示为“淡化”,就好像透明度已经降低了?非常奇怪... 这里是按钮点击的代码:
我意识到使用插件可能是一个更好的选择,但我对jQuery非常陌生,我想学习一些东西,而不是使用一些现成的代码。
非常感谢任何帮助。
谢谢。
我尝试使用:
$('#homeGalleryImage li a').unbind('click');
在点击事件触发后重新绑定:
$('#homeGalleryImage li a').bind('click');
但这只是在按一次按钮后删除了点击事件,而不会重新绑定?我还尝试通过以下方式禁用按钮:
$('#homeGalleryImage li a').attr('disabled', true);
但没有成功...?还有一个次要问题,如果您在图像处于过渡状态时设法单击按钮,则下一个图像会显示为“淡化”,就好像透明度已经降低了?非常奇怪... 这里是按钮点击的代码:
var i = 1;
var timerVal = 3000;
$(function () {
$("#homeGalleryControls li a").click(function () {
var image = $(this).data('image');
$('#galleryImage').fadeOut(0, function () {
$('#galleryImage').attr("src", image);
});
$('#galleryImage').fadeIn('slow');
$('.galleryButton').attr("src", "/Content/Images/Design/btn_default.gif");
$(this).find('img').attr("src", "/Content/Images/Design/btn_checked.gif");
i = $(this).data('index') + 1;
if (i == 4) {
i = 0;
}
timerVal = 0;
});
});
这是一个定时循环图像的代码:
//Cycle through gallery images on a timer
window.setInterval(swapImage, timerVal);
function swapImage() {
$('#galleryImage').fadeOut(0, function () {
var imgArray = ["/Content/Images/Design/gallery placeholder.jpg", "/Content/Images/Design/1.jpg", "/Content/Images/Design/2.jpg", "/Content/Images/Design/3.jpg"];
var image = imgArray[i];
i++;
if (i == 4) {
i = 0;
}
$('#galleryImage').attr("src", image);
$('#galleryImage').fadeIn('slow');
});
var currentButton = $('#homeGalleryControls li a img').get(i - 1);
$('.galleryButton').attr("src", "/Content/Images/Design/btn_default.gif");
$(currentButton).attr("src", "/Content/Images/Design/btn_checked.gif");
}
我意识到使用插件可能是一个更好的选择,但我对jQuery非常陌生,我想学习一些东西,而不是使用一些现成的代码。
非常感谢任何帮助。
谢谢。