0

私が試した他のブラウザでは機能するが、IEでは機能しない画像スライドショーがあります。プライマリ画像を表示するだけです。誰かが私が怒っていないことを教えてもらえますか、それは私が見ることができない簡単な修正です。

どうもありがとう

ミッキージェイ。

以下のコード:

<div id="image_slide"><img src="images/.......jpg" id="slideit" name="slideit" border="0">
<script type="text/javascript">
var dimages=new Array();
  var numImages=3;
  dimages[0]=new Image();
  dimages[0].src="images/.......jpg";
  dimages[1]=new Image();
  dimages[1].src="images/.......jpg";
  dimages[2]=new Image();
  dimages[2].src="images/.......jpg";
var curImage=-1;
function swapPicture()
{
  if (document.images)
  {
    var nextImage=curImage+1;
    if (nextImage>=numImages)
      nextImage=0;
    if (dimages[nextImage] && dimages[nextImage].complete)
    {
      var target=0;
      if (document.images.slideit)
        target=document.images.slideit;
      if (document.all && document.getElementById("slideit"))
        target=document.getElementById("slideit");
      if (target)
      {
        target.src=dimages[nextImage].src;
        curImage=nextImage;
      }
      setTimeout("swapPicture()", 1500);
    }
    else
    {
      setTimeout("swapPicture()", 150);
    }
  }
}
setTimeout("swapPicture()", 1500);
</script>
4

1 に答える 1

1

この単純化されたテストを試してみてください。アイデアは、交換を開始する前に写真をロードすることであり、そのようにテストする必要はありません.complete

<html>
  <head>
    <title>Example</title>
  </head>
  <body>

  <div id="image_slide"><img src="intro.jpg" 
       id="slideit" name="slideit" border="0"></div>

  <script type="text/javascript">
    var curImage  = -1;
    var numImages = 2;
    var dimages   = new Array();

    function loadPictures()
    {
      dimages[0]     = new Image();
      dimages[0].src = "test1.jpg";
      dimages[1]     = new Image();
      dimages[1].src = "test2.jpg";

      setTimeout(swapPicture, 3000);
    }

    function swapPicture()
    {
      var nextImage = curImage + 1;
      if (nextImage >= numImages)
          nextImage = 0;

      document.images.slideit.src = dimages[nextImage].src;
      curImage = nextImage;
      setTimeout(swapPicture, 1500);
    }

    setTimeout(loadPictures, 1500);

  </script>

  </body>
</html>
于 2013-03-08T22:49:24.450 に答える