bootstrap輪播圖隨着屏幕大小改變換圖片


說明:一般輪播圖在手機上和在pc上不用同一張圖片,同一張圖片會失真,所以當屏幕小於一定的寬度時,就換一張圖片展示,這里是屏幕大於一定值時使用背景圖片,否則使用img標簽插入一張圖片。

1.html輪播圖的每一項需要綁定一張大圖和一張小圖

 <section id="lk_carousel" class="carousel slide" data-ride="carousel">
    <!-- 指示器 -->
    <ol class="carousel-indicators">
      <li data-target="#lk_carousel" data-slide-to="0" class="active"></li>
      <li data-target="#lk_carousel" data-slide-to="1"></li>
      <li data-target="#lk_carousel" data-slide-to="2"></li>
    </ol>
  
    <!-- 滾動內容 -->
    <div class="carousel-inner" role="listbox">
      <div class="item active" data-sm-img="../college/imgs/slide_01_640x340.jpg" data-lg-img="../college/imgs/slide_01_2000x410.jpg"></div>
      <div class="item" data-sm-img="../college/imgs/slide_02_640x340.jpg" data-lg-img="../college/imgs/slide_02_2000x410.jpg"></div>
      <div class="item" data-sm-img="../college/imgs/slide_03_640x340.jpg" data-lg-img="../college/imgs/slide_03_2000x410.jpg"></div>
    </div>
  
    <!-- 左右箭頭 -->
    <a class="left carousel-control" href="#lk_carousel" role="button" data-slide="prev">
      <span class="glyphicon glyphicon-chevron-left" aria-hidden="true"></span>
      <span class="sr-only">Previous</span>
    </a>
    <a class="right carousel-control" href="#lk_carousel" role="button" data-slide="next">
      <span class="glyphicon glyphicon-chevron-right" aria-hidden="true"></span>
      <span class="sr-only">Next</span>
    </a>
  </section>

 2.在頁面改變大小時進項相應處理,這里是設置的700,當然可以跟着自己的需求設置

$(function () {
    $(window).on("resize", function () {
        // 1 獲取窗口的寬度
        let clientW = $(window).width()
        // 2 設置臨界值
        let isShowBigImage = clientW >= 700
        // 3 獲取每個輪播的item
        let $allItems = $("#lk_carousel .item")
        // 4 遍歷
        $allItems.each(function (index, item) {//屏幕寬度大於700 設置背景圖,否則插入一張圖片
            // 4.1 通過.data()取出綁定在item上的圖片的路徑
            let src = isShowBigImage ? $(item).data("lg-img") : $(item).data("sm-img")
            let imgUrl = 'url("' + src + '")'
            // 4.2設置背景
            $(item).css({
                backgroundImage: imgUrl
            })
            // 4.3 設置img標簽
            if (!isShowBigImage) {//empty()是每次插入圖片時先清空item的圖片,否則會一直添加圖片
                let $img = "<img src='" + src + "'>"
                $(item).empty().append($img)
            } else {
                $(item).empty()
            }
        })

    })
    $(window).trigger("resize")//使用trigger可以一開始進來就調用resize方法
})

3.大屏時背景圖片的樣式

#lk_carousel .item{
    background: no-repeat center center;
    background-size: cover;
}
@media screen and (min-width:700px){/*屏幕小於700展示背景圖,所以喲啊設置高度*/
    #lk_carousel .item{
       height: 410px;/* 和圖片高度設置一樣 */
    }
}

效果展示

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM