【问题标题】:laravel 7 slideshow gallery onclick optionlaravel 7 幻灯片库 onclick 选项
【发布时间】:2020-11-10 21:14:01
【问题描述】:

我正在尝试按照https://www.w3schools.com/howto/tryit.asp?filename=tryhow_js_slideshow_gallery 创建幻灯片图片库

我也在使用@foreach 来获取图像。到目前为止,我已经设法获取图像并且下一个/上一个按钮工作正常。但我不确定如何执行 onClick 部分。

这是我的代码

视图/刀片

<div class="row">
    @foreach ($images as $image)
    <div class="mySlides">
        <img src="{{ asset($image->image_location) }}" style="width:100%" alt="slide">
    </div>
    @endforeach
    <a class="prev" onclick="plusSlides(-1)">❮</a>
    <a class="next" onclick="plusSlides(1)">❯</a>
</div>

<div class="row">
    @foreach ($images as $image)
    <div class="column">
        <img class="demo cursor" src="{{ asset($image->image_location) }}" style="width:100%" onclick="currentSlide(1)" alt="Image not Available">
    </div>
    @endforeach
</div>

脚本

var slideIndex = 1;
showSlides(slideIndex);

function plusSlides(n) {
  showSlides(slideIndex += n);
}

function currentSlide(n) {
  showSlides(slideIndex = n);
}

function showSlides(n) {
  var i;
  var slides = document.getElementsByClassName("mySlides");
  var dots = document.getElementsByClassName("demo");
  var captionText = document.getElementById("caption");
  if (n > slides.length) {slideIndex = 1}
  if (n < 1) {slideIndex = slides.length}
  for (i = 0; i < slides.length; i++) {
      slides[i].style.display = "none";
  }
  for (i = 0; i < dots.length; i++) {
      dots[i].className = dots[i].className.replace(" active", "");
  }
  slides[slideIndex-1].style.display = "block";
  dots[slideIndex-1].className += " active";
  captionText.innerHTML = dots[slideIndex-1].alt;
}

【问题讨论】:

  • “onclick 部分”是什么意思。有多个 onclick 项,有什么特别的问题吗?
  • 我需要的是,当我单击任何缩略图时,它应该在滑块上显示相关的较大图像。当我使用循环(foreach...)时,我不确定如何在视图/刀片上编写“onclick”部分。

标签: javascript php slideshow laravel-7


【解决方案1】:

在刀片 @foreach 循环内,有一个 $loop 变量可用,如下所述:https://laravel.com/docs/7.x/blade#the-loop-variable

您可以使用$loop-&gt;index 访问数组中缩略图的索引,并在 onclick 事件中使用它:

onclick="currentSlide({{ $loop->index }})"

【讨论】:

  • 感谢 Maarten 先生,您的想法是正确的。现在可以了。虽然我不得不使用 onclick="currentSlide({{$loop->index+1}})".
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-09-08
  • 2012-10-10
  • 2014-01-18
  • 2012-07-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多