jquery中如何实现暂停几秒再往下执行?
varimgwidth=parseInt($('div.lunboimg').width());varimgheight=parseInt($('div.lunboimg...
var imgwidth=parseInt($('div.lunbo img').width());
var imgheight=parseInt($('div.lunbo img').height());
var imgnum=parseInt($('div.lunbo img').length);
var spanposiwidth=parseInt(imgwidth*0.98);
for(var i=0;i<imgnum;i++){
$('div.lunbo div.fcon:eq('+i+')').css({'position':'absolute','top':'+(imgheight*i)+'+'px','left':'0px'});
}
$('div.lunbo span').css({'position':'relative','bottom':'40px','right':spanposiwidth+'px'});
for(var i=0;i<imgnum;i++;){ //就是这个for有问题!!
$('div.lunbo .fcon:eq('+i+')').show();
setTimeout('imghide',3000);
var imghide=$('div.lunbo .fcon:eq('+i+')').hide();
}
想实现图片轮播的效果。找了一个插件也很好,但是代码太复杂看不太懂,还是自己写一个吧。
已经将所有图片先隐藏了并且很智能的叠到一起,现在要一个一个显示出来
这是我瞎写的,不对呀!要怎么实现呢?要代码越少越好
我把for改成这样了
for(var i=0;i<imgnum;i++){
$('div.lunbo .fcon:eq('+i+')').show();
setTimeout ('$(this).hide()',3000);
}
并没有一个一个播放,当show()时一打开网页就看到最后一张图片,而show(3000)时看到的是在三秒里四张图不同层里一起显示到最后只显示第四张图。而setTimeout ('$(this).hide()',3000);并没有体现出来 展开
var imgheight=parseInt($('div.lunbo img').height());
var imgnum=parseInt($('div.lunbo img').length);
var spanposiwidth=parseInt(imgwidth*0.98);
for(var i=0;i<imgnum;i++){
$('div.lunbo div.fcon:eq('+i+')').css({'position':'absolute','top':'+(imgheight*i)+'+'px','left':'0px'});
}
$('div.lunbo span').css({'position':'relative','bottom':'40px','right':spanposiwidth+'px'});
for(var i=0;i<imgnum;i++;){ //就是这个for有问题!!
$('div.lunbo .fcon:eq('+i+')').show();
setTimeout('imghide',3000);
var imghide=$('div.lunbo .fcon:eq('+i+')').hide();
}
想实现图片轮播的效果。找了一个插件也很好,但是代码太复杂看不太懂,还是自己写一个吧。
已经将所有图片先隐藏了并且很智能的叠到一起,现在要一个一个显示出来
这是我瞎写的,不对呀!要怎么实现呢?要代码越少越好
我把for改成这样了
for(var i=0;i<imgnum;i++){
$('div.lunbo .fcon:eq('+i+')').show();
setTimeout ('$(this).hide()',3000);
}
并没有一个一个播放,当show()时一打开网页就看到最后一张图片,而show(3000)时看到的是在三秒里四张图不同层里一起显示到最后只显示第四张图。而setTimeout ('$(this).hide()',3000);并没有体现出来 展开
4个回答
2018-07-06 · 做真实的自己 用良心做教育
千锋教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
关注
展开全部
可以参照:
setTimeout()
语法
var t=setTimeout("javascript语句",毫秒)
setTimeout() 方法会返回某个值。在上面的语句中,值被储存在名为 t 的变量中。假如你希望取消这个 setTimeout(),你可以使用这个变量名来指定它。
setTimeout() 的第一个参数是含有 JavaScript 语句的字符串。这个语句可能诸如 "alert('5 seconds!')",或者对函数的调用,诸如 alertMsg()"。
第二个参数指示从当前起多少毫秒后执行第一个参数。
提示:1000 毫秒等于一秒。
用这个来做定时控制
setTimeout()
语法
var t=setTimeout("javascript语句",毫秒)
setTimeout() 方法会返回某个值。在上面的语句中,值被储存在名为 t 的变量中。假如你希望取消这个 setTimeout(),你可以使用这个变量名来指定它。
setTimeout() 的第一个参数是含有 JavaScript 语句的字符串。这个语句可能诸如 "alert('5 seconds!')",或者对函数的调用,诸如 alertMsg()"。
第二个参数指示从当前起多少毫秒后执行第一个参数。
提示:1000 毫秒等于一秒。
用这个来做定时控制
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
JQ明明有延迟的方法delay
$('#foo').slideUp(300).delay(800).fadeIn(400);
$('#foo').slideUp(300).delay(800).fadeIn(400);
追问
你这个已经非常接近了!可是还是存在一起显示的问题,这个for里的i怎么在一次循环里从0走到3了我不明白这是怎么了?请教下我!
追答
你看下JQ的创建自定义动画的函数animate
$("#right").click(function(){
$(".block").animate({left: '+50px'}, "slow");
});
$("#left").click(function(){
$(".block").animate({left: '-50px'}, "slow");
});
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
setTimeout 定时器 这个不错
追问
要怎么写呀?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你for循环里 的imghide 没定义吧。导致你for循环里有问题
更多追问追答
追问
imghide就是下面的imghide.要怎么改啊?给个方法吧
追答
$(this).hide(); 这句话有没有正确执行,看下this 指向的是否就是你的那四张图片
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询