淡入有问题
Something goes wrong with fadeIn
你好,我想淡出图像,然后用一个新的图像做淡入,所以我写了一个简单的代码,但出了点问题,因为当 .photo img 淡出时,然后淡入淡出在同一张照片中,但之后,几秒钟它因为新的"src"而发生了变化,但即使浏览器没有加载新图像,旧图像也不会显示, 因为 SRC 已更改,但它会显示,并且在一秒钟后,也许对新 SRC 进行了两次更改。有人可以告诉我出了什么问题吗?
var dimage = $next.children("img").attr("rel");
$(".photo img").fadeOut("slow", function () {
$(".photo img").attr("src", dimage);
$(".photo img").fadeIn("slow");
});
这可能是因为在更改 src 后必须加载图像。
考虑将图像放在标记中,然后将 css 属性设置为 display:none。 这样,图像将在脚本运行之前在浏览器中预加载,并在运行时可用。
您没有给新图像足够的时间来加载。
function loadImage (src) {
return $.Deferred(function(def){
var img = new Image();
img.onload = function(){
def.resolve(src);
}
img.src = src;
}).promise();
}
var dimage = $next.children("img").attr("rel");
var imageLoadedDef = loadImage(dimage);
$(".photo img").fadeOut("slow", function () {
def.done(function(src){
$(".photo img").attr("src", src);
$(".photo img").fadeIn("slow");
});
});
突出显示的问题是调用图像时图像尚未准备好显示,因此解决方案是在开始幻灯片放映之前预加载它们,创建一个具有图像路径数组的函数
function preLoad(){
var imgs = {'test1.jpg', 'test2.jpg', 'test3.jpg'};
var img = document.createElement('img');
for(var i = 0; i < imgs.leght; i++){
img.src = imgs[i]; //all images gets preloaded at this stage
}
startSlider(); //here you will do your code
}
相关文章:
- 有没有一种方法可以从隐藏的可见性(CSS,JS)中获得淡入效果
- JQuery刷新列表效果-淡入淡出问题
- Jquery淡入淡出问题
- SVG模式动画和背景淡入问题
- 柔性滑块问题淡入淡出效果
- j查询淡入和淡出问题
- 在 JavaScript 中向上舍入数字有问题
- jquery做了我的第一个插件 - 当它走得太快时出现淡入/淡出的问题
- Jquery 鼠标悬停与 setTimeout() 和淡入/淡出问题
- jQuery淡入淡出元素的Z索引问题
- 关于为Raphaë添加淡入淡出效果的问题;l.js图像元素
- 加载时淡入菜单项(有延迟)
- 文本图像淡入淡出和淡入淡出问题:以连续方式显示文本淡入淡出
- 某些setInterval+jQuery淡入淡出出现问题
- 整页导航幻灯片淡入淡出问题
- 有一个图像淡入,下降,并反弹一旦到位
- 附加HTML,但有单独的淡入在文档点击
- 在动态淡入/淡出悬停转换时遇到问题(包括jsfiddle)
- JQuery addClass不透明度函数淡入图像-解决问题
- 淡入有问题