Javascript jQuery淡入横幅旋转器问题
这看起来很简单,但我站在这里搞砸了 我正在尝试制作一个简单的横幅旋转器(我知道有很多插件-我只是想获得经验) 问题1。当前,第一个图像不会淡出,只有第二个图像会淡出。当我在超时后将淡入淡出设置为que时,问题就解决了。我怀疑这是因为函数是在图片加载之前触发的,因为我相信jQuery的onload是在DOM准备好之后,而不是等待所有图片加载。使用Javascript jQuery淡入横幅旋转器问题,javascript,jquery,Javascript,Jquery,这看起来很简单,但我站在这里搞砸了 我正在尝试制作一个简单的横幅旋转器(我知道有很多插件-我只是想获得经验) 问题1。当前,第一个图像不会淡出,只有第二个图像会淡出。当我在超时后将淡入淡出设置为que时,问题就解决了。我怀疑这是因为函数是在图片加载之前触发的,因为我相信jQuery的onload是在DOM准备好之后,而不是等待所有图片加载。使用document.onload 问题2。我不能重复这个功能。我试着将我的函数与 while(true) { setTimeout("fade()"
document.onload
问题2。我不能重复这个功能。我试着将我的函数与
while(true) {
setTimeout("fade()", 2500);
}
这完全失败了。
我没有什么经验,任何方向的任何观点都会很有帮助
代码:
$.fn.preload=function(){//预加载图片
这个。每个(函数(){
$('您应该调用setInterval(fade,2500)
setInterval
方法将每隔x
毫秒运行一次函数,而setTimeout
只运行一次
千万不要将字符串传递给setInterval
或setTimeout
;相反,应该传递函数。+1用于使用setInterval;请记住,在任何javascript代码中,浏览器都会在代码运行期间锁定,因为javascript不支持并发(至少在传统上是这样;我相信最新浏览器中可能会有HTML5/新的JS功能)。通常,这只需要几毫秒;如果你处于无限for循环中,你的浏览器就会冻结。
$.fn.preload = function() { //preload the picture
this.each(function(){
$('<img/>')[0].src = this;
});
}
function nextImg() { //generate random image path
var curImg = "images/";
var randomNumber=Math.floor(Math.random()*11)
curImg += randomNumber;
curImg += ".jpg";
$([curImg]).preload();
return curImg;
}
function fade() {
var img = nextImg(); //grab the random image path
$("#umom1").fadeOut(1900, function() {
$("#umom1").attr("src", img);
$("#umom1").fadeIn(1900);
});
}
$("document").ready( function() {
setTimeout("fade()", 2500);
});