javascript - 无法让我的 JavaScript 暂停按钮恢复 - 即将完成

标签 javascript jquery

在许多不同的代码之后,这是我最接近它的工作。每个按钮都有效(上一个、下一个和暂停),但我需要设置暂停按钮以在第二次单击后恢复幻灯片放映。我不在乎幻灯片是否从中断处继续播放,只要继续播放即可。我也不想添加第四个(播放)按钮或将暂停按钮更改为播放按钮,只需简单地切换(停止演出/重新开始演出)即可。

这已经接近工作了。谁可以帮助我添加适当的东西以使其工作(恢复)而无需编写全新的代码?谢谢!

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>

<script type="text/javascript" src="../js/jquery.js"></script>
<script type="text/javascript">
$(function () {
    $('.fadein img:gt()').hide();
    var active = true;
    var interval = setInterval(intervalFunction, 4000);

    $('.pauseButton').click(function () {
        if (!active) interval = setInterval(intervalFunction, 4000);
        else clearInterval(interval);
    });

    function intervalFunction() {
        $('.fadein :first-child').fadeOut()
            .next('img').fadeIn()
            .end().appendTo('.fadein');
    }
});

$(function () {
    $('.fadein img:gt(0)').hide();
    $('.nextButton').on('click', function () {
        $('.fadein :first-child').fadeOut()
            .next('img').fadeIn()
            .end().appendTo('.fadein');
    });
    $('.previousButton').on('click', function () {
        $('.fadein :last-child').fadeIn()
            .insertBefore($('.fadein :first-child').fadeOut());
    });
});
</script>

<style type="text/css">
.fadein { position:relative; width:450px; height:275px; }
.fadein img { position:absolute; left:0; top:0; }

#showcontainer {
    width: 530px;
    height: 315px; }
#btn1 {
    float: left;
    width: 40px;
    height: 80px; }
#show {
    float: left;
    width: 450px;
    height: 275px; }
#btn2 {
    float: left;
    width: 40px;
    height: 80px; }
#btn3 {
    width: 80px;
    height: 30px; }

.nextButton, .previousButton, .pauseButton { cursor: pointer }

.content {
    color: #443e33;
    line-height: 150%;
}
</style>

</head>

<body>

<div id="showcontainer">
  <div id="btn1"><img src="../images/btn_prev.png" width="40" height="80" vspace="100" class="previousButton"/></div>
    <div id="show" class="fadein">
         <img src="../gallery/slide/slide1.png" width="450" height="275" />
         <img src="../gallery/slide/slide2.png" width="450" height="275" />
         <img src="../gallery/slide/slide3.png" width="450" height="275" />
         <img src="../gallery/slide/slide4.png" width="450" height="275" />
         <img src="../gallery/slide/slide5.png" width="450" height="275" />
         <img src="../gallery/slide/slide6.png" width="450" height="275" /> 
         <img src="../gallery/slide/slide7.png" width="450" height="275" /> 
         <img src="../gallery/slide/slide8.png" width="450" height="275" />           
    </div>    
  <div id="btn2"><img src="../images/btn_next.png" width="40" height="80" vspace="100" class="nextButton"/></div><br />
  <div id="btn3"><img src="../images/btn_pause.png" width="80" height="30" class="pauseButton"/></div>  
</div>      


</body>
</html>

这是 jsfiddle:http://jsfiddle.net/8mNAn/1/ 预先感谢您的帮助!

最佳答案

您似乎忘记切换 active 标志:

$('.pauseButton').click(function () {
    if (!active) interval = setInterval(intervalFunction, 4000);
    else clearInterval(interval);

    active = !active; // << MISSING BIT
});

关于javascript - 无法让我的 JavaScript 暂停按钮恢复 - 即将完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22148902/

相关文章:

jquery - 调用serialize()时更改元素的名称

javascript - 使用Javascript实时读取txt文件

javascript - Jest onSpy 不识别 React 组件函数

javascript - 使用 JavaScript 确定日期是星期六还是星期日

javascript - Python解析json数据

javascript - 如何增加 Javascript 中的最大调用堆栈?

jquery - 标签内容 : Open 'tab 5' from a link in 'tab 1'

javascript - 载入div后执行脚本

javascript - Adobe Edge Code (Brackets) 的代码编辑器使用什么字体?

javascript - 如何使用 jquery.cookie 仅为主页设置 cookie,而不为其他页面设置 cookie