每次单击Jquery滑动都会延迟更多时间
如果你在这里登录 用户名/密码:Demo123 然后按任意图像,当它滑动时,单击主图像,重复几次 你会突然注意到每次滑行的时间越来越长 我正在使用的代码每次单击Jquery滑动都会延迟更多时间,jquery,delay,jquery-animate,Jquery,Delay,Jquery Animate,如果你在这里登录 用户名/密码:Demo123 然后按任意图像,当它滑动时,单击主图像,重复几次 你会突然注意到每次滑行的时间越来越长 我正在使用的代码 $(function(){ $('.slide:last-child img').live('click', function() { $('.slide:first-child').animate({ marginLeft: '0' },500); return
$(function(){
$('.slide:last-child img').live('click', function() {
$('.slide:first-child').animate({
marginLeft: '0'
},500);
return false;
});
$('.slide .img').click(function(){
var img = $(this).find('a').attr('href');
var title = $(this).find('h2').text();
var desc = $(this).find('p').text();
$('.slide:last-child img').attr('src',img);
$('.slide:last-child h2').text(title);
$('.slide:last-child #cont').text(desc);
$('body').prepend('<div id="cover"><img src="./images/loader.gif"/></div>');
$('.slide:last-child img').load(function(){
$('#cover').detach();
$('.slide:first-child').animate({
marginLeft: '-900px'
},500);
});
return false;
});
});
$(函数(){
$('.slide:last child img').live('click',function(){
$('.slide:first child')。设置动画({
marginLeft:“0”
},500);
返回false;
});
$('.slide.img')。单击(函数(){
var img=$(this.find('a').attr('href');
var title=$(this.find('h2').text();
var desc=$(this.find('p').text();
$('.slide:last child img').attr('src',img);
$('.slide:last child h2')。文本(标题);
$('.slide:last child#cont').text(desc);
$('body')。前缀(“”);
$('.slide:last child img').load(函数(){
$(“#封面”).detach();
$('.slide:first child')。设置动画({
marginLeft:“-900px”
},500);
});
返回false;
});
});
我错过了什么?
任何帮助都将不胜感激尝试呼叫stop(真,真);当动画结束时,可能会有一些奇怪的计算在后台进行,这会扰乱回调的设置。我不知道这是否有效,但值得一试。:)
-托马斯
关于站点:
此外,我在同一个元素上遇到了活动和加载事件的问题(这里并没有说这是导致问题的原因)
可能不合适,但如果仍然存在问题,请在后续加载绑定之前尝试删除活动事件。
编辑:注意这可能对性能有害(持续删除并重新添加活动绑定)。我不是说要一直这样做,但这可能有助于找出你的问题。我做了$('.slide:first child')。动画({marginLeft:'-900px'},500,function(){stop(true,true);});没有帮助$(这个)。停止(真的,真的);这就是它应该是什么。。。你写这个脚本了吗?滑动时间越来越长,你的意思是幻灯片动画开始时间越来越长,还是动画持续时间越来越长?谢谢,停止对我很有用。细微的编码错误;当刷新内容时,我要求一个项目确保它已关闭(即使已经隐藏,也会启动动画),这当然是每次有人单击刷新时的关闭动画时间的总和。
$('.slide:first-child').stop(true,true).animate({ marginLeft: '-900px' },500});