带有字幕功能的 JavaScript 幻灯片放映

标签 javascript jquery html css

我的幻灯片放映需要帮助,我用 js 创建了一个幻灯片放映,但是,我拥有的标题不会随着图片而改变,只有第一张图片有标题,但所有其他图片都没有显示任何标题。帮帮我伙计们。谢谢。

HTML 代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Slide Show</title>
    <link rel="stylesheet" href="main.css">
    <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
    <script src="http://code.jquery.com/jquery-latest.min.js"></script>
    <script src="slide_show.js"></script>
</head>

<body>
<section>
    <h1>Dog Breed Slide Show</h1>
    <h2 id="caption">Afghan-Hound</h2>
    <img id="slide" src="images/dog0.jpg" alt="Afghan-Hound">
    <div id="slides"> 
        <img src="images/dog0.jpg">
        <img src="images/dog1.jpg" title="DOg MAn">
        <img src="images/dog2.jpg" alt="American-Eskimo">
        <img src="images/dog3.jpg" alt="French Bulldog">
        <img src="images/dog4.jpg" alt="German Shepard">
        <img src="images/dog5.jpg" alt="Italian-Greyhound">
        <img src="images/dog6.jpg" alt="Labrador Retriever">
        <img src="images/dog7.jpg" alt="Samoyed">
        <img src="images/dog8.jpg" alt="Siberian Husky">
        <img src="images/dog9.jpg" alt="Basset-Hound">
    </div>


    <div id="buttons">
        <input type="button" id="prev" value="Previous" onclick=showPrev()>
        <input type="button" id="pause" value="Pause" onclick=showStop()>
    <input type="button" id="play" value="play" onclick=showAuto()>
        <input type="button" id="next" value="Next" onclick=showNext()>         
    </div>
</section>
</body>
</html>

这是CSS代码:

body {
    font-family: Arial, Helvetica, sans-serif;
    width: 380px;
    height: 350px;
    margin: 0 auto;
    padding: 20px;
    border: 3px solid blue;
}
h1, h2, ul, p {
    margin: 0;
    padding: 0;
}
h1 {
    padding-bottom: .25em;
    color: blue;
}
h2 {
    font-size: 120%;
    padding: .5em 0;
}
img {
    height: 250px;
}
#slides img {
    display: none;
}
#buttons {
    margin-top: .5em;
    text-align: center;
}

这是 JavaScript 代码:

var curimage=0;
    var frequency=2000; 

    function showSlideNum()
    {
        document.getElementById('slides').value=curimage.alt;

    }

    function showNext()
        {
        curimage++;
        if (curimage>9)
            {curimage--;
            alert('This is last picture in the catalog');
        }
        document.images.slide.src='images/dog'+curimage+'.jpg';
        showSlideNum();
        }


    function showPrev()
        {
        curimage--;
        if (curimage<0)
            {curimage++;
        alert('There is no more picture before this one!!!');

            }
            document.images.slide.src='images/dog'+curimage+'.jpg';
            showSlideNum();
            }
    function clearImage()
        {
        curimage=0;
        showSlideNum();
        }
    function setfrequency(newFrequency)
    {
        frequency=newFrequency;
        alert(frequency);
    }

    function showAuto()
    {
    curimage++;
    if (curimage>9)
        {
        curimage=0
        }
    document.images.slide.src='images/dog'+curimage+'.jpg';
    showSlideNum();
    setTimeout('showAuto()', frequency);
    }

    function showStop()
    {
    document.location=document.location;
    }

这是 fiddle :https://jsfiddle.net/143sayed/d7LyjmLg/4/#&togetherjs=FjdTRl0FTe

非常感谢您。

最佳答案

您应该添加一个包含所有图像的对象。

选择标题元素并分别添加值:$(elem).text(text)

$(function () {
  var images = {
    "0": ["http://lorempixel.com/250/250", "Afghan-Hound"],
    "1": ["http://lorempixel.com/250/260", "DOg MAn"],
    "2": ["http://lorempixel.com/250/270", "American-Eskimo"],
    "3": ["http://lorempixel.com/250/280", "French Bulldog"],
    "4": ["http://lorempixel.com/250/290", "German Shepard"],
    "5": ["http://lorempixel.com/250/300", "Italian-Greyhound"],
    "6": ["http://lorempixel.com/250/310", "Labrador Retriever"],
    "7": ["http://lorempixel.com/250/320", "Samoyed"],
    "8": ["http://lorempixel.com/250/330", "Siberian Husky"],
    "9": ["http://lorempixel.com/250/340", "Basset-Hound"]
  };
  var curimage = 0;

  function showSlide() {
    resume();
    $("#slide").attr("src", images[curimage][0]);
    $('#caption').text(images[curimage][1]);
  }

  function showNext(bool) {
    curimage += 1;
    if (curimage > 9) {
      curimage = 9;
      return;
    }
    showSlide();
  }

  function showPrev() {
    curimage -= 1;
    if (curimage < 0) {
      curimage = 0;
      return;
    }
    showSlide();
  }
  var frequency = 2000,
    pause,
    playing = false;

  function showAuto() {
    if (!playing) {
      playing = true;
      pause = setTimeout(function(){
        curimage+=1;
        if (curimage>9){
          curimage=0
        }
        showSlide();
      }, frequency);
    }
  }

  function showStop() {
    playing = false;
    clearTimeout(pause);
  }

  function resume() {
    if (playing) {
      showStop();
      showAuto();
    }
  }

  function clearImage() {
    curimage = 0;
    showSlide();
    clearTimeout(pause);
  }
  showSlide();
  $("#prev").click(showPrev);
  $("#pause").click(showStop);
  $("#play").click(showAuto);
  $("#next").click(showNext);
}());
body {
    font-family: Arial, Helvetica, sans-serif;
    width: 380px;
    height: 350px;
    margin: 0 auto;
    padding: 20px;
    border: 3px solid blue;
}
h1, h2, ul, p {
    margin: 0;
    padding: 0;
}
h1 {
    padding-bottom: .25em;
    color: blue;
}
h2 {
    font-size: 120%;
    padding: .5em 0;
}
img {
    height: 250px;
}
#buttons {
    margin-top: .5em;
    text-align: center;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<section>
    <h1>Dog Breed Slide Show</h1>
    <h2 id="caption">Afghan-Hound</h2>
    <img id="slide">
    <div id="buttons">
        <input type="button" id="prev" value="Previous">
        <input type="button" id="pause" value="Pause">
        <input type="button" id="play" value="play">
        <input type="button" id="next" value="Next">         
    </div>
</section>

关于带有字幕功能的 JavaScript 幻灯片放映,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43924218/

相关文章:

javascript - 整合困难 "tui-editor-1.0.3"

jquery - 将 jQuery 效果应用于纯 2 级 CSS 菜单

javascript - 引导模式中未显示输入的数字

javascript - 如何使用 JavaScript 在 Google map 上绘制圆圈内的数字

jquery - 表中可单击的行,行值作为字典返回

css - IE 10 和 11 的 HTML5 <picture> srcset 回退

html - 行内横线

javascript - ChartJs 不显示数据

javascript - Web Midi - 列出设备名称

php - 如何更改 "post comment"按钮上的文本?