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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Bootstrap源码分析之transition、affix

發布時間:2025/4/9 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Bootstrap源码分析之transition、affix 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、Transition(過濾)

作為一個基礎支持的組件,被其他組件多次引用。實現根據瀏覽器支持transition的能力,然后綁定動畫的結束事件;
首先:創建一個Element;
然后:迭代查看此元素支持的transition動畫名稱
Transition實現的技巧,主要是重寫了jquery的event對象,代碼如下:

$(function () {$.support.transition = transitionEnd()if (!$.support.transition) return$.event.special.bsTransitionEnd = {bindType: $.support.transition.end,delegateType: $.support.transition.end,handle: function (e) {if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments)}}})

?

二、Affix(自動浮動定位)

1、Target:參數表示其定位參考節點(應該是產生滾動條的父容器對象),默認是window
2、Data-offset設置的top和bottom值,只會用于計算表達式,不會設置到css中
3、三種位置定位樣式類:

3.1、Affix-top:到達頁面頂部的時候會添加的樣式
3.2、Affix:在頁面中部的時候會添加的樣式
3.3、Affix-bottom:在頁面底部的時候會添加的樣式

4、處理公式:

1、Top:traget的滾動條高度(scrollTop)< 元素設定離頂位置的距離(offsetTop)(首次判斷)
??? 1.1、scrollTop設置為:元素本身定位的top(元素當前定位離文檔原點的距離)(非首次)
2、getPinnedOffset:獲取粘住元素top – target滾動條的top
3、bottom:如果粘住元素是首次bottom定位的時候,那么bottom就是 target滾動條高度 + target元素的高度 >= 整個文檔滾動條高度 – 粘住元素距離底部的高度
?? 3.1、如果是非首次bottom定位
????? 3.1.1、如果offsetTop(元素設定離頂位置的距離)不為空,target的top  + getpinnedOffset的值 > 粘住元素當前定位到top的值
????? 3.1.2、如果offsetTop為空,target的top   + target元素的高度 > 文檔高度 – 粘住元素距離底部的高度
4、能改變粘住元素的只有他的top,top值為:文檔高度 — 粘住元素高度 — 粘住元素距離底部的高度

5、坑之所在:

1、top和bottom一起使用的時候,會出現沖突,原因:

??? Affix-bottom,也就是到達頁面底部的時候,bootstrap是用offset來設置的top值,給元素加了position:relative值,這就導致在回到頁面頂部后,再次向下滾動時候,沒有任何效果
原因:行內樣式設置的relative會覆蓋class中設置的fixed樣式

6、總結

1、在top情況表現良好,在bottom情況下需要自己加入手動控制
2、應用affix控件,至少要自己重寫affix樣式,用于控制粘住條的定位。

轉載于:https://www.cnblogs.com/cqhaibin/p/5540425.html

總結

以上是生活随笔為你收集整理的Bootstrap源码分析之transition、affix的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。