Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 法丹出了点问题_Javascript_Jquery - Fatal编程技术网

Javascript 法丹出了点问题

Javascript 法丹出了点问题,javascript,jquery,Javascript,Jquery,您好,我想淡出图像,然后用新图像进行淡入淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡,但是它显示了,一秒钟后,新的一个可能有两个变化。谁能告诉我怎么了 var dimage = $next.children("img").attr("rel"); $(".photo img").fad

您好,我想淡出图像,然后用新图像进行淡入淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡出淡,但是它显示了,一秒钟后,新的一个可能有两个变化。谁能告诉我怎么了

var dimage = $next.children("img").attr("rel");
$(".photo img").fadeOut("slow", function () {
    $(".photo img").attr("src", dimage);
    $(".photo img").fadeIn("slow");
});

这可能是因为图像必须在src更改后加载。

考虑将图像放在标签中,然后设置CSS属性显示:无。这样,图像将在脚本运行前预加载到浏览器中,并在脚本运行时可用。

您没有给新图像足够的加载时间

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
}
函数预加载(){
var imgs={'test1.jpg','test2.jpg','test3.jpg'};
var img=document.createElement('img');
对于(变量i=0;i
您没有给新图像足够的加载时间。因为更改src后,浏览器需要几秒钟才能下载图像。当然,可以淡入淡入或像其他元素一样显示(但也要确保它已预加载!)