【问题标题】:Bootstrap Carousel make 12th item active in Laravel BladeBootstrap Carousel 使 Laravel Blade 中的第 12 个项目处于活动状态
【发布时间】:2019-06-19 09:42:17
【问题描述】:

我正在使用 Bootstrap 轮播来显示月份和年份。我想显示 2 年内的月份和年份。从当前月份年份过去一年,从当前月份开始未来一年。

对于当前情况,即从 2018 年 1 月到 2020 年 1 月。这是我的代码:

HTML

<!-- Slideshow container -->
<div class="slideshow-container">
    <!-- Full-width images with number and caption text -->
    @for($i=-12;$i<=12;$i++)
    <div class="mySlides fade @if($i==0) {{'active'}} @endif" style="display: @if($i==0) {{'block'}} @endif;">
        <div class="numbertext" >{{ date('F - Y', strtotime('today -'.$i.'month')) }}</div>
    </div>
    @endfor
    <!-- Next and previous buttons -->
    <a class="prev"  onclick="plusSlides(1)">&#10094;</a>
    <a class="next" onclick="plusSlides(-1)">&#10095;</a>
</div>

JAVASCRIPT

<script type="text/javascript">

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("dot");
  if (n > slides.length) {slideIndex = 1}    
  if (n < 1) {slideIndex = slides.length}
  for (i = 0; i < slides.length; i++) {
    slides[i].style.display = "none";  
    slides[i].classList.remove("active");  
  }
  for (i = 0; i < dots.length; i++) {
    dots[i].className = dots[i].className.replace(" active", "");
  }
  slides[slideIndex-1].style.display = "block";  
  slides[slideIndex-1].className += " active";
}

</script>

这是我的输出看起来像(这样你就可以更好地理解我的问题):

正如您在我的代码中看到的那样,我尝试使当前月份和年份的幻灯片处于活动状态并显示块,但我总是选择“2020 年 1 月”。

让我知道我哪里做错了。

【问题讨论】:

    标签: javascript jquery laravel twitter-bootstrap


    【解决方案1】:

    为了获得序列...2018 年 1 月到 2020 年 1 月...您的循环是错误的。改成:

     @for($i=-12;$i<=12;$i++)
    <div class="mySlides fade @if($i==0) {{'active'}} @endif" style="display: @if($i==0) {{'block'}} @endif;">
        <div class="numbertext" >{{ date('F - Y', strtotime('today -'.$i.'month')) }}</div>
    </div>
    @endfor
    

    到:

    @for($i=-12;$i<=12;$i++)
    <div class="mySlides fade @if($i==0) {{'active'}} @endif" style="display: @if($i==0) {{'block'}} @endif;">
        <div class="numbertext" >{{ date('F - Y', strtotime('today +'.$i.'month')) }}</div>
    </div>
    @endfor
    

    strtotime

    中使用 + 代替 -

    而且,这个样式属性是错误的:

    @if($i==0) {{'block'}} @endif;"
    

    使用 else 部分来设置 none

    下面是一个结构改变的sn-p:

    #carousel-example {
        width: 100%;
        height: auto;
        padding: 50px;
    }
    .numbertext {
        color:black;
        display:flex;
        align-items:center;
    }
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
    <script src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
    
    
    <div id="carousel-example" class="carousel slide" data-ride="carousel">
        <div class="row">
            <div class="col-xs-offset-3 col-xs-6">
                <div class="carousel-inner">
                    <!-- Full-width images with number and caption text -->
                    <div class="item">
                        <div class="numbertext"><div><p>January - 2018</p></div></div>
                    </div>
                    <div class="item">
                        <div class="numbertext"><div><p>February - 2018</p></div></div>
                    </div>
                    <div class="item">
                        <div class="numbertext"><div><p>March - 2018</p></div></div>
                    </div>
                    <div class="item">
                        <div class="numbertext"><div><p>April - 2018</p></div></div>
                    </div>
                    <div class="item">
                        <div class="numbertext"><div><p>May - 2018</p></div></div>
                    </div>
                    <div class="item">
                        <div class="numbertext"><div><p>June - 2018</p></div></div>
                    </div>
                    <div class="item">
                        <div class="numbertext"><div><p>July - 2018</p></div></div>
                    </div>
                    <div class="item">
                        <div class="numbertext"><div><p>August - 2018</p></div></div>
                    </div>
                    <div class="item">
                        <div class="numbertext"><div><p>September - 2018</p></div></div>
                    </div>
                    <div class="item">
                        <div class="numbertext"><div><p>October - 2018</p></div></div>
                    </div>
                    <div class="item">
                        <div class="numbertext"><div><p>November - 2018</p></div></div>
                    </div>
                    <div class="item">
                        <div class="numbertext"><div><p>December - 2018</p></div></div>
                    </div>
                    <div class="item active">
                        <div class="numbertext"><div><p>January - 2019</p></div></div>
                    </div>
                    <div class="item ">
                        <div class="numbertext"><div><p>February - 2019</p></div></div>
                    </div>
                    <div class="item">
                        <div class="numbertext"><div><p>March - 2019</p></div></div>
                    </div>
                    <div class="item">
                        <div class="numbertext"><div><p>April - 2019</p></div></div>
                    </div>
                    <div class="item">
                        <div class="numbertext"><div><p>May - 2019</p></div></div>
                    </div>
                    <div class="item">
                        <div class="numbertext"><div><p>June - 2019</p></div></div>
                    </div>
                    <div class="item">
                        <div class="numbertext"><div><p>July - 2019</p></div></div>
                    </div>
                    <div class="item">
                        <div class="numbertext"><div><p>August - 2019</p></div></div>
                    </div>
                    <div class="item">
                        <div class="numbertext"><div><p>September - 2019</p></div></div>
                    </div>
                    <div class="item">
                        <div class="numbertext"><div><p>October - 2019</p></div></div>
                    </div>
                    <div class="item">
                        <div class="numbertext"><div><p>November - 2019</p></div></div>
                    </div>
                    <div class="item">
                        <div class="numbertext"><div><p>December - 2019</p></div></div>
                    </div>
                    <div class="item">
                        <div class="numbertext"><div><p>January - 2020</p></div></div>
                    </div>
                </div>
            </div>
        </div>
        <a class="left carousel-control" href="#carousel-example" data-slide="prev">
            <span class="glyphicon glyphicon-chevron-left"></span>
        </a>
        <a class="right carousel-control" href="#carousel-example" data-slide="next">
            <span class="glyphicon glyphicon-chevron-right"></span>
        </a>
    </div>

    【讨论】:

    • 感谢您的回复。我做了你所说的改变,但没有任何改变,除了现在我选择的是 2018 年 1 月而不是 2020 年 1 月。
    • @gaetnoM,再次感谢,非常感谢您的帮助,但我无法更改它的 HTML 结构,因为有一些其他样式和脚本在相同的结构上工作,我也尝试使用静态内容,但是仍然选择第一个项目。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-09
    • 1970-01-01
    • 2020-10-29
    • 1970-01-01
    相关资源
    最近更新 更多