一起CSS

当前位置:一起CSS > 未分类 > 文章正文

修改:自动播放的jQuery幻灯片

一位读者在《自动播放的jQuery幻灯片》中反映了一个问题,就是鼠标在缩略图上快速反复移动的时候,会出大图和缩略图不一致、鼠标输出缩略图幻灯片仍在快速切换和 CPU 占用飙涨等问题。因为幻灯片切换的时候有一个动画过程,鼠标每经过一张缩略图都会执行这个动画过程,如果上一个动画过程还没执行完鼠标就移到另一张缩略图上,那这张幻灯片的切换动画会等到上一个动画执行完成才会执行。如果鼠标在这些缩略图上来回移动,那将会“累积”很多动画,它们会一个接一个的执行,所以引发上上面那些问题。

要修复上面的问题,加上一条判断语句即可:如果有动画正在执行,鼠标移到缩略图上就不执行动画函数。具体代码如下(和原来的相比就多了一句判断):

var theInt = null;
var curclicked = 0;

$(function(){
	$('#transparence').css('opacity','0.4');
	$('#pic_list img').css({'opacity':'0.6'});
	$('#pic_list img:eq(0)').css({'top':'0','opacity':'1'});
	$('#pic_list a').click(function(){return false});
	t(0);
	$('#pic_list img').mouseover(function(){
		if($('#this_pic').attr('src') == $(this).attr('src')) return;
		if(!$(this).is(':animated')){
			t($('#pic_list img').index($(this)));
		}
	})
})

t = function(i){
	clearInterval(theInt);
	if( typeof i != 'undefined' )
	curclicked = i;
		$('#this_pic').fadeOut(0).fadeIn(500).attr('src',$('#pic_list img').eq(i).attr('src'));
		$('#this_a').attr('href',$('#pic_list img').eq(i).parents('a').attr('href'));
		$('#this_a').attr('title',$('#pic_list img').eq(i).parents('a').attr('title'));
		$('#pic_list img').eq(i).parents('li').nextAll('li').find('img').animate({top:18,opacity:0.6},500);
		$('#pic_list img').eq(i).parents('li').prevAll('li').find('img').animate({top:18,opacity:0.6},500);
		$('#pic_list img').eq(i).animate({top:0},500).css('opacity','1');
	theInt = setInterval(function (){
		i++;
		if (i > $('#pic_list img').length - 1) {i = 0};
		$('#this_pic').fadeOut(0).fadeIn(500).attr('src',$('#pic_list img').eq(i).attr('src'));
		$('#this_a').attr('href',$('#pic_list img').eq(i).parents('a').attr('href'));
		$('#this_a').attr('title',$('#pic_list img').eq(i).parents('a').attr('title'));
		$('#pic_list img').eq(i).parents('li').nextAll('li').find('img').animate({top:18,opacity:0.6},500);
		$('#pic_list img').eq(i).parents('li').prevAll('li').find('img').animate({top:18,opacity:0.6},500);
		$('#pic_list img').eq(i).animate({top:0},500).css('opacity','1');
	},3000)
}

查看Demo

查看:6,414 评论:13 标签:,,

相关日志

已经有 13 条群众意见

  1. keelii

    应该是CPU吧。呵呵! 对话

    #1
  2. 青色keelii

    晕,怎么这个都会写错-_# 对话

    #2
  3. anyLiv

    哈哈,又更新了,加上版本号吧…… 对话

    #3
  4. 大地工作室

    不错哦,我也开了一个博客,有空大家经常交流... 对话

    #4
  5. 笨猫

    博主的文采不错,大家有空多交流! 对话

    #5
  6. 百叶

    帅哥.怎么最近都不更新博客啊.多写些js和css的运用.我很喜欢
    我是百叶
    麻烦把内页的那个链接换下.
    我之前的域名kk51.com被和谐了.现在是web222.com 对话

    #6
  7. 青色百叶

    不好意思,之前没明白你的意思,现在改过来了。 对话

    #7
  8. keke

    你好,如果要实现鼠标经过并停留在大图上面时幻灯片就停止变换,怎么实现呢,恳请赐教,谢谢 对话

    #8
  9. test

    这个幻灯片在切换的时候很占CPU资源,有没有别的办法让他少一点资源.... 对话

    #9
  10. kekekeke

    这么多天都没有收到你的回复,帅哥,你在忙什么呢 对话

    #10
  11. kekekeke

    我等到花儿都谢了 对话

    #11
  12. keke

    你的嵌套留言很好,是怎么实现的,呵呵 对话

    #12
  13. 青色keke

    空闲时会再写一个,届时会通过邮件通知你。 对话

    #13

我要发表意见