如何使用上一个/下一个按钮循环显示图像?

时间:2013-10-16 04:11:53

标签: javascript

我能够让图像循环播放,但现在当我点击“上一个”或“下一个”链接时,每次都会弹出我存储图像的文件夹。知道为什么会发生这种情况或者如何阻止它?

THE SCRIPT

<script type="text/javascript">
            /* <![CDATA[ */
                function changeDisplay(curLine) {
                    curLine.style.color = "red";
                    curLine.style.fontWeight = "bold";
                }

                function restoreDisplay(curLine) {
                    curLine.style.color = "blue";
                    curLine.style.fontWeight = "normal";
                }

                var curImage = 1;

                function changeImage(which) {
                    for (var i=0; i < 5; ++i) {
                        document.getElementById("image"+i).style.display = "none";
                    }
                    if (which < 1) 
                        which = 5;
                    if (which > 5)
                        which = 1;
                    document.getElementById("image"+which).style.display = "block";
                    curImage = which;
                }
            /* ]]> */
            </script>

HTML

     <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 STRICT//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title></title>
        <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
        <link type="text/css" rel="stylesheet" href="project.css" />

    </head>
    <body>
        <div>
            <table style="border:none" class="menu">
                <tr>
                    <td><a href="Index.html" class="menuicon" onmouseover="changeDisplay(this)" onmouseout="restoreDisplay(this)">Home</a></td>
                    <td class="menupipe">|</td>
                    <td><a href="Specials.html" class="menuicon" onmouseover="changeDisplay(this)" onmouseout="restoreDisplay(this)">Specials</a></td>
                    <td class="menupipe">|</td>
                    <td><a href="Tools.html" class="menuicon" onmouseover="changeDisplay(this)" onmouseout="restoreDisplay(this)">Tools</a></td>
                    <td class="menupipe">|</td>
                    <td><a href="Prices.html" class="menuicon" onmouseover="changeDisplay(this)" onmouseout="restoreDisplay(this)">Prices</a></td>
                    <td class="menupipe">|</td>
                    <td><a href="Order.html" class="menuicon" onmouseover="changeDisplay(this)" onmouseout="restoreDisplay(this)">Shop</a></td>
                </tr>
            </table>
        </div>
        <div>
            <p style="font-weight:bold; font-size:20px">With winter approaching, every homeowner wants to be prepared for the snow and ice! We are now running a sale on a few items that will help handle the harsh winter conditions. Take a look at our prices and make sure you stock up. Click on the images below for more information.</p>
        </div>
        <div id="image" style="display:block">
            <img src="images/deicer.jpg" height="300" width="300" alt="deicer" />
        </div>
        <div id="image" style="display:none">
            <img src="images/snowblower.jpg" height="300px" width="300px" alt="snowblower" />
        </div>
        <div id="image" style="display:none">
            <img src="images/icemelt.jpg" height="300px" width="250px" alt="icemelt" />
        </div>
        <div id="image" style="display:none">
            <img src="images/shovel.jpg" height="225px" width="225px" alt="shovel" />
        </div>
        <div id="image" style="display:none">
            <img src="images/scraper.jpg" height="124" width="124" alt="scraper" />
        </div>
        <button type="button" onclick="changeImage(curImage - 1)">Previous</button>
        <button type="button" onclick="changeImage(curImage + 1)">Next</button> 
    </body>
</html>

3 个答案:

答案 0 :(得分:1)

为所有图像div添加索引(1 - 5),如:

<div id="image1" style="display:block">

在循环中更改索引以及到处1 - 5。或者将所有内容更改为0 - 4

答案 1 :(得分:1)

所有图像容器

<div id="image" style="display:none">

具有相同的ID,与格式图像#

不对应

还可以从

更改以下循环
for (var i=0; i < 5; ++i) {
     document.getElementById("image"+i).style.display = "none";
    }

for (var i=0; i < 5; ++i) {
         document.getElementById("image"+ (i + 1)).style.display = "none";
        }

答案 2 :(得分:0)

我通过在每个图像容器中添加1,2,3,4来实现它。

我的版本低于

<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title></title>
        <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
        <link type="text/css" rel="stylesheet" href="project.css" />
        <script type="text/javascript">
        /* <![CDATA[ */
            function changeDisplay(curLine) {
                curLine.style.color = "red";
                curLine.style.fontWeight = "bold";
            }

            function restoreDisplay(curLine) {
                curLine.style.color = "blue";
                curLine.style.fontWeight = "normal";
            }

            var curImage = 1;

            function changeImage(which) {
                for (var i=0; i < 5; ++i) {
                    document.getElementById("image"+i).style.display = "none";
                }
                if (which < 1) 
                    which = 5;
                if (which > 5)
                    which = 1;
                document.getElementById("image"+which).style.display = "block";
                curImage = which;
            }
        /* ]]> */
        </script>
    </head>
    <body>
        <div>
            <table style="border:none" class="menu">
                <tr>
                    <td><a href="Index.html" class="menuicon" onmouseover="changeDisplay(this)" onmouseout="restoreDisplay(this)">Home</a></td>
                    <td class="menupipe">|</td>
                    <td><a href="Specials.html" class="menuicon" onmouseover="changeDisplay(this)" onmouseout="restoreDisplay(this)">Specials</a></td>
                    <td class="menupipe">|</td>
                    <td><a href="Tools.html" class="menuicon" onmouseover="changeDisplay(this)" onmouseout="restoreDisplay(this)">Tools</a></td>
                    <td class="menupipe">|</td>
                    <td><a href="Prices.html" class="menuicon" onmouseover="changeDisplay(this)" onmouseout="restoreDisplay(this)">Prices</a></td>
                    <td class="menupipe">|</td>
                    <td><a href="Order.html" class="menuicon" onmouseover="changeDisplay(this)" onmouseout="restoreDisplay(this)">Shop</a></td>
                </tr>
            </table>
        </div>
        <div>
            <p style="font-weight:bold; font-size:20px">With winter approaching, every homeowner wants to be prepared for the snow and ice! We are now running a sale on a few items that will help handle the harsh winter conditions. Take a look at our prices and make sure you stock up. Click on the images below for more information.</p>
        </div>
        <div id="image0" style="display:block">
            <img src="http://placehold.it/350/ffffff/000000">
        </div>
        <div id="image1" style="display:none">
            <img src="http://placehold.it/350/ffffff/000000">
        </div>
        <div id="image2" style="display:none">
            <img src="http://placehold.it/350/ffffff/000000">
        </div>
        <div id="image3" style="display:none">
            <img src="http://placehold.it/350/ffffff/000000">       
        </div>
        <div id="image4" style="display:none">
            <img src="http://placehold.it/350/ffffff/000000">
        </div>
        <button type="button" onclick="changeImage(curImage - 1)">Previous</button>
        <button type="button" onclick="changeImage(curImage + 1)">Next</button> 
    </body>
</html>