0

我可以成功地在 html 中制作幻灯片,但我试图制作两个但它不起作用,这是我的代码:

<script type="text/javascript">
var image1 = new Image()
image1.src = "img/home/residential.gif"
var image2 = new Image()
image2.src = "img/home/1.gif"
var image3 = new Image()
image3.src = "img/home/2.gif"
</script>

<table align="center" width="70%"cellpadding=5 cellspacing=5>

<tr>
    <td rowspan=2 align=center><a href="artistic.html"><figure><img src="logo1.gif" alt="Atristic Impressions" width="400" height="600" name="slide"/><figcaption style="color: #610B21">Artistic Impressions</figure></td>
    <script type="text/javascript">
            var step=1;
        function slide()
        {
            document.images.slide.src = eval("image"+step+".src");
            if(step<3)
                step++;
            else
                step=1;
            setTimeout("slide()",5000);
        }
        slide();
</script>

<script type="text/javascript">
    var image1 = new Image()
    image1.src = "img/barns/1.gif"
    var image2 = new Image()
    image2.src = "img/barns/2.gif"
    var image3 = new Image()
    image3.src = "img/barns/3.gif"
    var image4 = new Image()
    image4.src = "img/barns/4.gif"
</script>
<td align=center><a href="Barns.html"><figure><img src="img/barns/1.gif" alt="Barn Conversions" width="400" height="300" name="slide"/ ><figcaption style="color: #610B21">Barn Conversions</figure></td>
<script type="text/javascript">
        var step=1;
        function slideit()
        {
            document.images.slide.src = eval("image1"+step+".src");
            if(step<3)
                step++;
            else
                step=1;
            setTimeout("slideit()",5000);
        }
        slideit();
</script>
4

2 回答 2

0

发生的事情是您正在使用与自身冲突的代码。您已经在全局级别定义了图像,然后在设置第二个节目时重新定义了它们。您还复制了 step 变量,尽管如果您使用相同的值,这可能并不重要。您还使用两个滑块脚本影响了同一个图像,因此需要更改一个上的目标。解决此问题的一种更简洁的方法是使用添加一些参数的单个函数,以便您可以处理图像和 DOM 元素集。

就像是:-

function slide( image_id, image_array) {

     myImage = getElementById(image_id);
     myImage.src = image_array[step];

}

当然,除此之外还有很多其他功能,并且有很多功能更好的图像滑块示例,它们能够运行两个单独的实例。我建议研究其中的一些。

于 2013-09-17T13:22:37.787 回答
0

您的两个<img>s都有名称“幻灯片”。您应该给它们起不同的名称,以便浏览器知道使用哪一个。像“slide1”和“slide2”这样的东西应该可以完成这项工作。

于 2013-09-17T13:14:24.307 回答