使用BootStrap建立響應式網頁——通欄輪播圖(carousel)_javascript技巧

來源:互聯網
上載者:User

1、bootstrap提供了js外掛程式——輪播圖

  我們還是照舊,直接拿過來用,需要改的地方再說。

2、修改

  小螢幕看小圖,大屏圖看大圖:這個可以利用自訂屬性(data-XXX)data-img-lg(儲存大圖)和data-img-xs(儲存小圖)屬性儲存圖片的路徑,利用jQuery的data函數取出data-xxxx屬性進行動態載入。

  圖片置中顯示:大圖用背景圖片來做比較好一點,小圖用img來做比較好一點(因為小圖的話需要等比例縮放,用背景圖做不到等比例縮放)。

  承載輪播圖的盒子高度:大圖的的時候用圖片的高度,小圖自適應,所以要用到媒體查詢,設定容器高度。

3、代碼

<section id="banner" class="carousel slide" data-ride="carousel">        <!--小圓點 -->        <ol class="carousel-indicators">          <li data-target="#banner" data-slide-to="0" class="active"></li>          <li data-target="#banner" data-slide-to="1"></li>          <li data-target="#banner" data-slide-to="2"></li>          <li data-target="#banner" data-slide-to="3"></li>        </ol>        <!-- 輪播圖片 -->        <div class="carousel-inner" role="listbox">          <div class="item active" data-img-lg="img/slide_01_2000x410.jpg" data-img-xs="img/slide_01_640x340.jpg">          </div>          <div class="item" data-img-lg="img/slide_02_2000x410.jpg" data-img-xs="img/slide_02_640x340.jpg">          </div>          <div class="item" data-img-lg="img/slide_03_2000x410.jpg" data-img-xs="img/slide_03_640x340.jpg">          </div>          <div class="item" data-img-lg="img/slide_04_2000x410.jpg" data-img-xs="img/slide_04_640x340.jpg">          </div>        </div>        <!-- 左右輪播 -->        <a class="left carousel-control" href="#banner" 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="#banner" role="button" data-slide="next">          <span class="glyphicon glyphicon-chevron-right" aria-hidden="true"></span>          <span class="sr-only">Next</span>        </a>    </section>
<script type="text/javascript">      $(function() {        //擷取螢幕寬度//        var screenWidth=$(window).width();        //判斷是不是手機螢幕//        if(screenWidth<768){//手機螢幕//          $("#banner .carousel-inner .item").each(function(index,item){//          var $item=$(item);//因為傳遞的item是dom對象,要把dom對象改為jQuery對象//          $item.css("background-image","url("+$item.data('img-xs')+")");//          });//        }else{//大螢幕//          $("#banner .carousel-inner .item").each(function(index,item){//          var $item=$(item);//因為傳遞的item是dom對象,要把dom對象改為jQuery對象//          $item.css("background-image",'url('+$item.data('img-lg')+')');//          });//        }        //三元式//        var isPhone=screenWidth<768;//        $("#banner .carousel-inner .item").each(function(index,item){//          var $item = $(item);//因為傳遞的item是dom對象,要把dom對象改為jQuery對象//          $item.css("background-image","url("+$item.data(isPhone?'img-xs':'img-lg')+")");//        });        function selectImg(){          var screenWidth=$(window).width();          var isPhone=screenWidth<768;          $("#banner .carousel-inner .item").each(function(index,item){            var $item = $(item);//因為傳遞的item是dom對象,要把dom對象改為jQuery對象            $item.css("background-image",'url('+$item.data(isPhone?'img-xs':'img-lg')+')');            //我們需要小圖的時候等比例變化,所以我們需要img標籤            if(isPhone){              $item.html("<img src='"+$item.data('img-xs')+"' alt='' />");            }else {              $item.empty();            }          });        }//        $(window).on("resize",selectImg);//這樣是沒有效果的,必須螢幕尺寸變化一下才會載入圖片        $(window).on('resize',selectImg).trigger('resize');//觸發的是resize事件,不是事件處理常式selectImg      });    </script>

以上所述是小編給大家介紹的使用BootStrap建立響應式網頁——通欄輪播圖(carousel),希望對大家有所協助,如果大家有任何疑問請給我留言,小編會及時回複大家的。在此也非常感謝大家對雲棲社區網站的支援!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.