【问题标题】:bootstrap carousel only for mobile devices仅适用于移动设备的引导轮播
【发布时间】:2019-11-11 04:31:08
【问题描述】:

我对 bootstrap4 轮播有疑问。我目前为所有设备实现了轮播,但我希望它只出现在移动设备上。在桌面上,将照片并排放置。 我知道我可以做两个容器,一个用于桌面,另一个用于旋转木马。但我想避免它。所有建议的解决方案都适用于 jQuery,但是我使用的是 Angular7,我想避免使用 jQuery。

                    <div id="demo" class="carousel slide" data-ride="carousel">

                      <!--  Indicators -->

                        <ul class="carousel-indicators">
                                <li data-target="#demo" data-slide-to="0" class="active"></li>
                                <li data-target="#demo" data-slide-to="1"></li>
                                <li data-target="#demo" data-slide-to="2"></li>
                        </ul>

                            <!--      The slideshow -->

                              <div class="carousel-inner">
                                <div class="carousel-item">
                                  <img src="img1.jpg">
                                </div>
                                <div class="carousel-item">
                                  <img src="img2.jpg">
                                </div>
                                <div class="carousel-item">
                                  <img src="img3.jpg">
                                </div>
                              </div>

                              <!-- Left and right controls -->
                              <a class="carousel-control-prev" href="#demo" data-slide="prev">
                                  <mat-icon class="prev-icon">chevron_left</mat-icon>
                                <!--<span class="carousel-control-prev-icon"></span>  --> 
                              </a>
                              <a class="carousel-control-next" href="#demo" data-slide="next">
                                      <mat-icon class="next-icon">chevron_right</mat-icon>
                              </a>

                            </div>

【问题讨论】:

    标签: html angular bootstrap-4


    【解决方案1】:
    img1: string = 'img1.jpg'
    img2: string = 'img2.jpg'
    img3: string = 'img3.jpg'
    
    isHandset$: Observable<boolean> = this.breakPointObserver.observe(['(max-width: 750px)'])
        .pipe(
          map(result => result.matches)
        );
    
      constructor(private breakPointObserver: BreakpointObserver) { }
    

    模板在屏幕上隐藏小于 750 像素:

    <div *ngIf="!(isHandset$ | async)">
    

    解决方案:

    // this whows on 750-
    <div *ngIf="(isHandset$ | async)" id="demo" class="carousel slide" data-ride="carousel">
      <ul class="carousel-indicators">
        <li data-target="#demo" data-slide-to="0" class="active"></li>
        <li data-target="#demo" data-slide-to="1"></li>
        <li data-target="#demo" data-slide-to="2"></li>
      </ul>
      <div class="carousel-inner">
        <div class="carousel-item">
          <img [src]="img1">
        </div>
        <div class="carousel-item">
          <img [src]="img2">
        </div>
        <div class="carousel-item">
          <img [src]="img3">
        </div>
      </div>
      <a class="carousel-control-prev" href="#demo" data-slide="prev">
        <mat-icon class="prev-icon">chevron_left</mat-icon>
      </a>
      <a class="carousel-control-next" href="#demo" data-slide="next">
        <mat-icon class="next-icon">chevron_right</mat-icon>
      </a>
    </div>
    //this shows on 750+
    <div *ngIf="!(isHandset$ | async)" class="row carousel-inner">
      <div class="col-4 carousel-item">
        <img [src]="img1">
      </div>
      <div class="col-4 carousel-item">
        <img [src]="img2">
      </div>
      <div class="col-4 carousel-item">
        <img [src]="img3">
      </div>
    </div>
    

    【讨论】:

    • 提出的解决方案显示了 750px 以下的隐藏 div。我想要做的动作是在桌面上让 3 个 div 彼此相邻,然后在移动设备上将它们减少到 1 个,然后像引导程序中的旋转木马一样在它们周围移动。
    • !false = trueisHandset$= max-width: 750px; 中没有“!”波纹管 750 为真高于假或!isHandset$ 波纹管为假高于真。
    • 甚至添加了引导类,以便您可以复制粘贴 XD
    • 是的,但是我仍然有两个 div 有相同的照片,我想避免这种情况
    • *ngIf 的工作方式就像如果有 false 它会切断整个代码,因此用户只有一个具有相同照片的 div。如果你想在服务器端得到同样的结果,你只需像我在答案中更新的那样声明变量。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-08
    • 2019-03-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-22
    • 1970-01-01
    相关资源
    最近更新 更多