循环播放图片

时间:2012-06-19 08:25:36

标签: javascript jquery html css

我想以这种方式用HTML,CSS,Jquery / Javascript实现图片的循环: image 在一个页面上有很少的图片(都是可见的并且不移动)并且想要遍历每个图片(一次一个)并在当前图像上方弹出一些文本。例如,如果我将鼠标悬停在图片C上,循环应该停止,当取消悬停时 - 应该从图片C继续,依此类推。但我不确定如何实现这一点。任何人都可以告诉我应该使用什么或类似的例子。感谢。

3 个答案:

答案 0 :(得分:3)

这是我为你做的事情,希望这是你正在寻找的。 (我用于测试的图像是200px / 200px。

<!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>Page title</title>


   <script src=http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js></script>
   <script>
        $(document).ready(function() {
            var currentImg = 1,
                totalImages = 4
                loopTime = 1000,
                intervalId = null;


            function displayTitle(imgNbr) {
                $('.title').hide();
                $('#image'+imgNbr).prev('div').show();
            }

            $('img').on('mouseover', function() {
                clearInterval(intervalId);
                displayTitle($(this).parent().attr('id').substring(5));
            }).on('mouseout', function() {
                currentImg = $(this).parent().attr('id').substring(5);
                startLoop();
            })

            function startLoop() {
                intervalId = setInterval(function() {
                    displayTitle(currentImg);
                    currentImg = ((currentImg == totalImages) ? 1 : parseInt(currentImg)+1);
                }, loopTime);
            }
            startLoop();
        });
   </script>
   <style>
       .imgcontainer {
           margin: 10px;
           float: left;
           position: relative;
           text-align: center;
       }
       .title {
           position: absolute;
           top: 70px;
           left: 60px;
           color: #ffffff;
           display: none;
       }
       .img {
           clear: both;
       }
   </style>

</head>
<body>

<div class="imgcontainer">
    <div class="title">title 1</div>
    <div class="img" id="image1"><img src="images/image1.jpg" /></div>
</div>

<div class="imgcontainer">
    <div class="title">title 2</div>
    <div class="img" id="image2"><img src="images/image2.jpg" /></div>
</div>    

<div class="imgcontainer">
    <div class="title">title 3</div>
    <div class="img" id="image3"><img src="images/image3.jpg" /></div>
</div>

<div class="imgcontainer">
    <div class="title">title 4</div>
    <div class="img" id="image4"><img src="images/image4.jpg" /></div>
</div>    

</body>
</html>

答案 1 :(得分:0)

你需要一个“Carousel”。

如果您可以使用JQuery,那么CarouFredSel是一个非常好的选择,here就是一个例子。

如果您想依赖JavaScript,可以使用Conveyor Belt Slideshow Script

答案 2 :(得分:0)

正如@Asif在他的回答中所说,有许多公开的JavaScript组件可用于此类事情。

我曾多次使用Lightbox Image Viewer v2.03aDynamic Drive(这不是你想要的),但还有很多东西可以在这个网站上看一下,其中一个可能有正是你所追求的。