說明:一般輪播圖在手機上和在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;/* 和圖片高度設置一樣 */ } }
效果展示