禁用链接,直到所有动画停止,然后再次启用它们
Disable links till all animations stop and enable them again
我有一个像动画一样的图像滑块,区别在于一张幻灯片中有几个元素,在我的例子中,4张图片来自场景的左侧或右侧。
问题是如何使触发动画功能的链接被禁用,直到动画完成100%,然后再次启用。
这是我的代码...
$(document).ready(function() {
//
$('.package_box_menu li').children().click(function(){
$(this).showProducts($(this).attr("id"))
});
jQuery.fn.showProducts = function (clickedSeason) {
var nextToShowSide = $('.'+[clickedSeason]+'_img1').attr("rel");
var active = $('img[ rel |= active]').attr('season');
if (nextToShowSide == 'right') {var whereTo = '-1000px'; var currentToHideSide ="left" };
if (nextToShowSide == 'left') {var whereTo = '3000px'; var currentToHideSide ="right" };
show();
hide(active, whereTo, currentToHideSide);
function show(){
var allToShow = ($('img[ season |= '+[clickedSeason]+']').get()).length;
for (var i = 1; i<= allToShow ; i++){
var delay = $('.'+[clickedSeason]+'_img'+[i]).attr('delay');
var position = $('.'+[clickedSeason]+'_img'+[i]).attr('left');
$('.'+[clickedSeason]+'_img'+[i]).stop().delay(delay).animate({'margin-left': position }, 1000, 'easeOutExpo').attr('rel','active');
}
};
function hide(active, whereTo, currentToHideSide){
var all = ($('img[ rel |= active]').get()).length;
for (var i = 1; i<= all ; i++){
if ($('.'+[active]+'_img'+[i]).attr('rel') == 'active') {
$('.'+[active]+'_img'+[i]).stop().delay([i]+'00').animate({'margin-left': whereTo }, 1000, 'easeInExpo').attr('rel', currentToHideSide );
}
}
};
};
jQuery().showProducts('spring');
});
如果您只是想确保在动画时不会单击链接,请将其添加到您的单击中。
$('.package_box_menu li').children().click(function(){
if($('img[class$=img1]').is(':animated')) {
event.preventDefault();
return false;
}
$(this).showProducts($(this).attr("id"));
});
这将简单地在动画时拒绝单击,然后在停止时工作。$(this)可以替换为正在动画的内容,例如您的幻灯片:)
注意
由于没有显示 HTML,我不得不对选择器做出一些假设,我使用了"img[class$=img1]",这是一个 img,其中类以取自'_img1').attr("rel");
的"img1"结尾
将您的网站复制到 Fiddle 并让它与我在这里提到的更改一起工作
相关文章:
- 附加链接已禁用,然后启用它
- 禁用.click(),然后重新启用它
- 等到所有脚本都完成,然后再启用按钮
- Javascript:需要帮助验证表单的两个方面,然后启用“提交”按钮
- 禁用链接,直到所有动画停止,然后再次启用它们
- 禁用然后在jquery中启用按钮
- jQuery返回所有页面已禁用,然后启用
- 如何暂时禁用提交按钮 3 秒钟(提交时),然后重新启用它
- 单选按钮首先被禁用,然后再次启用提交
- 启用一个输入文本框,然后将其聚焦到jQuery Mobile
- 听众被重复添加,但可以'我不知道怎么做.I'm使用one(),然后使用计时器在每次单击时重新启用它
- CSS按钮:悬停,禁用,然后用javascript重新启用
- 澄清暂时禁用提交按钮数秒,然后重新启用它
- 首先禁用右键单击,然后重新启用右键单击在同一页面使用javascript
- 如何在默认情况下禁用文本框,然后再启用它
- 在AJAX响应后禁用然后重新启用按钮
- 如何在单击按钮后禁用按钮两秒钟,然后再次启用按钮
- 从文本文件中读取,然后决定是要禁用还是启用php中的按钮
- 禁用Div”;按钮“;然后启用
- 如何禁用输入字段,但不禁用单击的输入字段,然后启用所有输入字段