日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

bootstrap源码分析之Carousel

發(fā)布時間:2024/10/12 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 bootstrap源码分析之Carousel 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
源碼文件:

Carousel.scss
Carousel.js

實(shí)現(xiàn)原理:

隱藏所有要顯示的元素,然后指定當(dāng)前要顯示的為block,寬、高自適應(yīng)

源碼分析:

1、Html結(jié)構(gòu):主要分為以四個部分
? 1.1、容器:最外層div,需要一個data-ride=”carousel”來指定為輪播放插件,并且提供一個Id,方便圓圈指示符的關(guān)聯(lián)
? 1.2、圖片列表部分,用一個外層div包裹所有,然后每個img會被一個div,則class為item的包裹住
? 1.3、圓圈指示符:用一個ol列表來顯示其各圖形列表項(xiàng),每個列表項(xiàng)需要指定data-slide-to=”index”屬性,用于標(biāo)記當(dāng)前圓圈的索引號
? 1.4、左右控制按鈕:實(shí)現(xiàn)向左、向右移動的功能
2、Css樣式
? 2.1、Carousel:只有一個相對定位標(biāo)記
? 2.2、Carousel-inner:旋轉(zhuǎn)圖片列表區(qū)域,其中每項(xiàng)有item來修飾
?? 2.2.1、其中的active、next、prev都認(rèn)為是可見的
?? 2.2.2、Carousel-caption:表示每個item項(xiàng)應(yīng)該有標(biāo)題信息,默認(rèn)顯示下、中位置
? 2.3、Carousel-control:設(shè)置向左、向右按鈕的樣式,其中會設(shè)置漸變、透明度等信息,提供了icon-prev、icon-next兩種額外樣式
? 2.4、Carousel-indicators:圓圈部分樣式,都是絕對定位,每個li設(shè)置為行內(nèi)塊元素,用text-indent:-999來隱藏字體
3、Js代碼
? 3.1、主要核心方法為slide,他實(shí)現(xiàn)了圖片的切換
??? 3.1.1、在第一次進(jìn)行圖片切換的時候,都會調(diào)用pause方法來暫定定時器,在圖片切換完成后才調(diào)用cycle方法來啟用定時器
??? 3.1.2、接受的type和next兩個參數(shù)
????? 3.1.2.1、Type:表示向上、還是向下?lián)Q頁
????? 3.1.2.2、Next:本次要顯示為活動的Item項(xiàng),如果不傳入則需要通過getItemForDirection方法來獲取
??? 3.1.3、在獲取完成$active(當(dāng)前活動的Item)、$next(需要成為活動項(xiàng)的Item)、isCycling(定時輪播的定時器句柄)、direction(方向)等基本參數(shù)
??? 3.1.4、然后觸發(fā)slide.bs.carousel事件
??? 3.1.5、然后設(shè)置indicators的索引項(xiàng)
??? 3.1.6、切換圖片,如果支持css動畫就用動畫切換,否則直接加css來切換
??? 3.1.7、動畫切換原理:
????? 3.1.7.1、Prev:是向右滾動圖片,會組合出的樣式:active right(active項(xiàng)) prev right(下一項(xiàng)),這時prev自身為-100%,把圖片放在最左邊
????? 3.1.7.2、Next:是向左滾動圖片 active left(active項(xiàng))、next left(下一項(xiàng)),這時next自身為100%,把圖片放在最右邊
????? 3.1.7.3、Active right:圖片應(yīng)該是向右,那就應(yīng)該運(yùn)動圖片寬度的100%
????? 3.1.7.4、Active left:圖片向左,那就應(yīng)該運(yùn)行圖片寬度的-100%
????? 3.1.7.5、對比圖:

??? 3.1.8、實(shí)現(xiàn)代碼(不包含Css3):

.carousel-inner > .active, .carousel-inner > .next, .carousel-inner > .prev {display: block; } .carousel-inner > .active {left: 0; } .carousel-inner > .next, .carousel-inner > .prev {position: absolute;top: 0;width: 100%; } .carousel-inner > .next {left: 100%; } .carousel-inner > .prev {left: -100%; } .carousel-inner > .next.left, .carousel-inner > .prev.right {left: 0; } .carousel-inner > .active.left {left: -100%; } .carousel-inner > .active.right {left: 100%; }

轉(zhuǎn)載于:https://www.cnblogs.com/cqhaibin/p/5578876.html

總結(jié)

以上是生活随笔為你收集整理的bootstrap源码分析之Carousel的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。