Bootstrap中內建了許多特效,而讓梅干最使用到的就是它的廣告輪播系統,不但簡單好用且容易自行擴充,而先前也分享過利用CSS來實現全版式的廣告輪播,雖然說很方便,但卻有比例上的問題,因此在等比縮放時,則會造成下方的控制鈕超出一個頁面,而這與一般的全版式廣告還是有點落差,因此最近梅干就找了點資料,並將先前的幾個特點一併作了擴充,讓這個廣告輪播,不但支援全版廣告外,同時當只有一筆時會自動隱藏控制鈕,以及自動偵測廣告數量,並產生控制的小圓鈕,因此有在使用Bootstrap的朋友們,現在也一塊來看看,如何讓Bootstrap的廣告輪播更進化,現在也一塊來看看囉!
Step1
加入CSS樣式:
.full-screen { background-size: cover; background-position: center; background-repeat: no-repeat; } .item>a{ display: block; height: 100%; }
Step2
加入HTML廣告輪播碼,可直接從item中設定啟始值。
<div id=“mycarousel” class=“carousel slide” data-ride=“carousel”> <ol class=“carousel-indicators”></ol> <!– 廣告輪播列表 –> <div class=“carousel-inner” role=“listbox”> <div class=“item”> <a href=“http://www.minwt.com"> <img src=“https://unsplash.it/2000/1250?image=001" data-color=“#eee”> <div class=“carousel-caption”> <h3>廣告輪播1</h3> </div> </a> </div> <div class=“item”> <img src=“https://unsplash.it/2000/1250?image=002" data-color=“#eee”> <div class=“carousel-caption”> <h3>廣告輪播2</h3> </div> </div> <div class=“item active“> <img src=“https://unsplash.it/2000/1250?image=003" data-color=“#eee”> <div class=“carousel-caption”> <h3>廣告輪播3</h3> </div> </div> <div class=“item”> <img src=“https://unsplash.it/2000/1250?image=004" data-color=“#eee”> <div class=“carousel-caption”> <h3>廣告輪播4</h3> </div> </div> </div><!-- Controls --> <a class="left carousel-control" href="#mycarousel" role="button" data-slide="prev"> <span class="glyphicon glyphicon-chevron-left" aria-hidden="true"></span> <span class="sr-only">上一則</span> </a> <a class="right carousel-control" href="#mycarousel" role="button" data-slide="next"> <span class="glyphicon glyphicon-chevron-right" aria-hidden="true"></span> <span class="sr-only">下一則</span> </a>
</div>
Step3
加入javascript:
$(function(){ var $item = $(‘.carousel .item’); var $wHeight = $(window).height(); $item.height($wHeight); $item.addClass(‘full-screen’);$('.carousel img').each(function() { var $src = $(this).attr('src'); var $color = $(this).attr('data-color'); $(this).parent().css({ 'background-image' : 'url(' + $src + ')', 'background-color' : $color }); $(this).remove(); }); //下方自動加入控制圓鈕 var total = $('.carousel .carousel-inner div.item').size(); append_li(); function append_li() { var li = ""; var get_ac = $( ".carousel .active" ); var ac = $( ".carousel .carousel-inner div" ).index( get_ac ); for (var i=0; i <= total-1; i++){ if(i == (ac)/2){ li += "<li data-target='#mycarousel' data-slide-to='"+i+"' class='active'></li>"; }else{ li += "<li data-target='#mycarousel' data-slide-to='"+i+"' class=''></li>"; } } $(".carousel-indicators").append(li); } //單則隱藏控制鈕 if ($('.carousel .carousel-inner div.item').length < 2 ) { $('.carousel-indicators, .carousel-control').hide(); } //縮放視窗調整視窗高度 $(window).on('resize', function (){ $wHeight = $(window).height(); $item.height($wHeight); }); //輪播秒數與滑入停止 $('.carousel').carousel({ interval: 5000, pause: "hover" });
});
Step4
當完成後,無論在手機還是桌機中,廣告都會全版並居中呈現,同時圓形的切換鈕都在下方。
[範例預覽] [範例下載]