javascript - 使用图像 slider 获取要更改的文本

标签 javascript jquery html css image

我创建了一个图像幻灯片放映,我想在图像上方显示文本。我做到了这一点,但我希望每组不同的文本(注意所有文本都混杂在一起,并且有三个文本跨度,每个图像一个)与适当的图像一起显示。有没有一种方法可以在不改变我现有的 Javascript 的情况下做到这一点。顺便说一下,我不希望任何人为该解决方案使用 600 多行 javascript,这就是为什么我正在寻找更多的 css 解决方案来匹配 Javascript 或其他将根据图像更改文本的 Javascript 解决方案变化。

感谢您的帮助!

* {
    padding: 0;
    margin: 0;
}
body {
    font-family: Sans-Serif;
}
.slider_img {
    max-width: 100%;
    /*height: 60vh;*/
    /*height: 100vh;*/
}
.cycle-slideshow {
    width: 100%;
    display: block;
    position: relative;
    margin: 0 auto;
}
.image_text {
    text-align: center;
    font-size: 3em;
    color: #FFF;
    position: absolute;
    top: 50%;
    z-index: 1000;
    left: 35%;
}
.cycle-prev, .cycle-next {
    font-size: 200%;
    color: #FFF;
    display: block;
    position: absolute;
    top: 50%;
    margin-top: -10px;
    z-index: 999;
    cursor: pointer;
}
.cycle-prev {
    left: 10%;
}
.cycle-next {
    right: 10%;
}
.cycle-pager {
    width: 100%;
    text-align: center;
    display: block;
    position: absolute;
    bottom: 20px;
    z-index: 999;
    cursor: pointer;
}
.cycle-pager span {
    text-indent: 100%;
    white-space: nowrap;
    width: 12px;
    height: 12px;
    display: inline-block;
    border: 1px solid #FFF;
    border-radius: 50%;
    margin: 0 10px;
    overflow: hidden;
}
.cycle-pager .cycle-pager-active {
    background-color: #FFF;
}

<div class="cycle-slideshow">
    <span class="image_text">Travelling has never been easier</span>
    <span class="image_text">Beach</span>
    <span class="image_text">Space</span>
    <span class="cycle-prev">&#9001;</span>
    <span class="cycle-next">&#9002;</span>
    <span class="cycle-pager"></span>
    <img class="slider_img" src="images/subway2.jpg" alt="subway">
    <img class="slider_img" src="images/beach2.jpg" alt="beach">
    <img class="slider_img" src="images/space2.jpg" alt="space">
</div>

这段代码让我失望了,所以我在下面的评论中发布了一个 jsfiddle 来展示它在做什么。

最佳答案

删除插件代码并改用它:

$(".slider_img").filter(":gt(0)").each(function() {
  $(this).hide();
});
$(".image_text").filter(":gt(0)").each(function() {
  $(this).hide();
});

current = 0;
limit = $(".slider_img").length;

$(".cycle-prev").click(function() {

  current--;

  if (current < 0) {
    current = 2;
  }

  $($(".slider_img").hide().get(current)).fadeIn(1000);
  $($(".image_text").hide().get(current)).fadeIn(1000);
});

$(".cycle-next").click(function() {
  current++;

  if (current >= 3) {
    current = 0;
  }

  $($(".slider_img").hide().get(current)).fadeIn(1000);
  $($(".image_text").hide().get(current)).fadeIn(1000);

});

setInterval(function() {
  $(".cycle-next").click();
}, 5000);

如您所见,它是从头开始编写的,因此不依赖于插件代码:)

关于javascript - 使用图像 slider 获取要更改的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34605056/

相关文章:

javascript - 调度非常简单的 redux 操作

javascript - 将鼠标悬停添加到页面上的所有按钮

javascript - 使用 getElementById 填充页面上的元素

html - CSS:在没有 flex 模型的情况下将 ul li 元素对齐到中心(带边距)

javascript - 在 WordPress 帖子中使用 JavaScript 的最佳实践是什么?

jquery - 如何将 div 内容布局为 i) 水平排列和 ii) 子项延伸到父项

javascript - 使用 jQuery 选择具有特定类的第一个和最后一个元素

javascript - 无法在 Cordova iOS 应用程序中添加自动完成功能

javascript - Express.js - 图像仅在一页上呈现

html - CSS:在不改变文本顺序的情况下改变文本溢出的方向