【问题标题】:Making a button with "Next 3 images"使用“下 3 张图片”制作按钮
【发布时间】:2023-03-30 09:53:01
【问题描述】:

我有 3 张图片,我想用 Previous , Next 制作一个按钮

当点击“下一步”按钮时,我希望这 3 张图片消失,另外 3 张新图片出现在同一位置。

我有这段代码,但我不知道该怎么做。 (现场版:vestigedayz.com/Arrow)

var slideIndex = 1;
showDivs(slideIndex);

function plusDivs(n) {
  showDivs(slideIndex += n);
}

function currentDiv(n) {
  showDivs(slideIndex = n);
}

function showDivs(n) {
  var i;
  var x = document.getElementsByClassName("mySlides");
  var dots = document.getElementsByClassName("demo");
  if (n > x.length) {
    slideIndex = 1
  }
  if (n < 1) {
    slideIndex = x.length
  }
  for (i = 0; i < x.length; i++) {
    x[i].style.display = "none";
  }
  for (i = 0; i < dots.length; i++) {
    dots[i].className = dots[i].className.replace(" w3-red", "");
  }
  x[slideIndex - 1].style.display = "block";
  dots[slideIndex - 1].className += " w3-red";
}
.mySlides {
  display: none
}
<div class="col-md-3">
  <div class="movie_img">
    <div class="grid_2">
      <a href="/seriale/Revolution">
        <img src="images/pic6.jpg" class="img-responsive" alt="">
      </a>
      <div class="caption1">
        <ul class="list_5 list_7">
          <li><i class="icon5"> </i>
            <p>6,7</p>
          </li>
        </ul>
        <i class="icon4 icon6 icon7"> </i>
        <p class="m_3">Revolution</p>
      </div>
    </div>
  </div>
  <div class="grid_2 col_1">
    <a href="/seriale/Almost-Human">
      <img src="images/pic2.jpg" class="img-responsive" alt="">
    </a>
    <div class="caption1">
      <ul class="list_3 list_7">
        <li><i class="icon5"> </i>
          <p>8.1</p>
        </li>
      </ul>
      <i class="icon4 icon7"> </i>
      <p class="m_3">Almost Human</p>
    </div>
  </div>
  <div class="grid_2 col_1">
    <a href="/seriale/Intelligence">
      <img src="images/pic9.jpg" class="img-responsive" alt="">
    </a>
    <div class="caption1">
      <ul class="list_3 list_7">
        <li><i class="icon5"> </i>
          <p>7,0</p>
        </li>
      </ul>
      <i class="icon4 icon7"> </i>
      <p class="m_3">Intelligence</p>
    </div>
  </div>


  <div class="w3-content">
    <img class="mySlides" src="images/pic2.jpg" style="width:100%">
    <img class="mySlides" src="images/pic9.jpg" style="width:100%">
    <img class="mySlides" src="images/pic6.jpg" style="width:100%">
  </div>

  <div class="w3-center">
    <div class="w3-section">
      <button class="w3-btn" onclick="plusDivs(-1)">❮ Anterior</button>
      <button class="w3-btn" onclick="plusDivs(1)">Ulterior ❯</button>
    </div>
  </div>



</div>

【问题讨论】:

  • 如果你创建jsfiddle链接会更容易帮助你
  • @VedranJukic 这里是现场版。 :vestigedayz.com/Arrow 我觉得看看整个结构会好很多。
  • 您提供的代码的工作方式与您的实时版本的工作方式不同。请提供正确的代码以便我们提供帮助。
  • 请隔离 jsfiddle 中的问题 :) 这样我(或其他人)可以在不检查整个页面的情况下为您提供帮助。我认为页面的其余部分与问题无关
  • @VedranJukic jsfiddle.net/onozoafd - 在这里。我试图让本教程闲置w3schools.com/w3css/tryit.asp?filename=tryw3css_slideshow_dots 但没有按钮编号。

标签: javascript html css image button


【解决方案1】:

我已经简化了 html 结构来帮助您解决问题,并对 js 进行了更改。您将能够毫不费力地在当前的 html 结构上实现它。

var slideIndex = 0;

//	get html elements
  
var slidesEl = document.getElementById('thumbs');
var thumbs = slidesEl.getElementsByTagName('li');

showDivs(slideIndex);

function plusDivs() {
  showDivs(slideIndex += 3);
}

function currentDiv(n) {
  showDivs(slideIndex = n);
}

document.getElementById('prevbutton').onclick = function() {
	slideIndex -= 3;
  if (slideIndex < 0) {
  	slideIndex = 0;
  }
  showDivs(slideIndex);
}

document.getElementById('nextbutton').onclick = function() {
	slideIndex += 3;
  //	make sure that last 3 thumbs are alwas displayed
  if (slideIndex >= (thumbs.length - 3)) {
  	slideIndex = thumbs.length - 3;
  }
  showDivs(slideIndex);
}

function showDivs(n) {
  
  //	first hide all thumbs

	for (var i=0; i<thumbs.length; i++) {
  	thumbs[i].style.display = 'none';
  }
  
  
  
  //	show 3 slides from current index slide
  for (var i=slideIndex; i<slideIndex+3; i++) {
  	thumbs[i].style.display = 'block';
  }
  
}
<ul id="thumbs">
<!-- first 3 divs (visible) -->
<li>
  <a href="/seriale/Revolution">
    <img src="http://i.imgur.com/5Qu0xhq.png" class="img-responsive" alt="">
  </a>
</li>
<li>
  <a href="/seriale/Almost-Human">
    <img src="http://i.imgur.com/uOhgArC.png" class="img-responsive" alt="">
  </a>
</li>
<li>
  <a href="/seriale/Intelligence">
      <img src="http://i.imgur.com/dVatFEs.png" class="img-responsive" alt="">
    </a>
</li>
<!-- next 3 divs (hidden) -->
<li style="display: none;">
  <a href="/seriale/Intelligence">
      <img src="http://i.imgur.com/dVatFEs.png" class="img-responsive" alt="">
    </a>
</li>
<li style="display: none;">
  <a href="/seriale/Revolution">
    <img src="http://i.imgur.com/5Qu0xhq.png" class="img-responsive" alt="">
  </a>
</li>
<li style="display: none;">
  <a href="/seriale/Almost-Human">
    <img src="http://i.imgur.com/uOhgArC.png" class="img-responsive" alt="">
  </a>
</li>
<!-- next 3 divs (hidden) -->
<li style="display: none;">
  <a href="/seriale/Almost-Human">
    <img src="http://i.imgur.com/uOhgArC.png" class="img-responsive" alt="">
  </a>
</li>
<li style="display: none;">
  <a href="/seriale/Revolution">
    <img src="http://i.imgur.com/5Qu0xhq.png" class="img-responsive" alt="">
  </a>
</li>
<li style="display: none;">
  <a href="/seriale/Intelligence">
      <img src="http://i.imgur.com/dVatFEs.png" class="img-responsive" alt="">
    </a>
</li>
</ul>
<div class="w3-center">
    <div class="w3-section">
      <button id="prevbutton" class="w3-btn">❮ Anterior</button>
      <button id="nextbutton" class="w3-btn">Ulterior ❯</button>
    </div>
  </div>

【讨论】:

  • 我应该编辑或添加什么?我在js中看到了一些东西。因为它不会改变图像。
  • 您需要替换整个 javascript sn-p 并对 html 结构做一些小修改。在上面发送给您的 jsfiddle 中,您可以看到它更改了图像(图像链接相同,但元素的顺序不同,因此您可以看到按钮起作用)。我已将 cmets 放入 html 和 js 中。在您的 html 结构中,您需要创建包装器元素(在我的示例中为 id="thumbs"),并且在内部您可以使用 div 元素来包装每张幻灯片。然后看一下隐藏除前三个以外的所有拇指的样式属性。
猜你喜欢
  • 1970-01-01
  • 2010-09-09
  • 1970-01-01
  • 2012-12-10
  • 2013-01-14
  • 2021-06-18
  • 2018-07-13
  • 2021-03-06
  • 1970-01-01
相关资源
最近更新 更多