Home > Article > Web Front-end > An in-depth analysis of automatic positioning buoys in Bootstrap
This article will take you to learn more about the automatic positioning buoy in Bootstrap. It has certain reference value. Friends in need can refer to it. I hope it will be helpful to everyone.
The main function of the Affix plug-in is to add or delete position:fixed to an element (an element that needs to be fixed) through the plug-in to achieve a sticky fixation effect of the element in the browser window. [Related recommendations: "bootstrap tutorial"]
First of all, let’s take a look at an Apple official website for automatic Application of positioning buoy
As can be seen from the git diagram above, when the Macbook column is scrolled to a certain height, it is fixed at the top of the window and will no longer move
The Affix plug-in can fix the positioning of any element. The simplest method is to trigger it through the custom attribute data. It mainly includes two parameters:
1. data-spy: value affix, indicating that the element is fixed.
2. data-offset: an integer value, such as 90, indicating that the values of the elements top and bottom are both 90px, which includes two methods: data-offset-top and data-offset-bottom
data-offset-top is used to set the distance of the element from the top. For example, 90 means that the element is 90px from the top. When the user drags the scroll bar down from the top, when the scrolling distance is greater than 90px, the affix element will no longer scroll and will be fixed at the top of the browser window
data- offset-bottom is just the opposite of data-offset-top
<div data-spy="affix" data-offset="90">affix元素</div> <!-- 等价 --> <div data-spy="affix" data-offset-top="90" data-offset-bottom="90">affix元素</div>
[Setting CSS]
When using the Affix plug-in, content must be positioned through CSS. The Affix plug-in switches between three classes, each class presents a specific state: .affix, .affix-top and .affix-bottom
1. At the beginning, The plugin adds .affix-top to indicate the element's topmost position. No CSS positioning is required at this time
2. When scrolling past the element with Affix added, the actual Affix should be triggered. At this time .affix will replace .affix-top, and set position: fixed (provided by Bootstrap’s CSS code)
At this time , you need to manually set .affix, such as .affix{top:0;} means stopping at the top of the window
3. If the bottom offset is defined, when the scroll reaches this position, .affix should be is replaced with .affix-bottom. Since the offset is optional, setting it requires that the appropriate CSS be set as well. In this case please add position: absolute;
<style> .test{width: 100%;height: 50px;background-color:lightgreen;} .affix{top:0px;} </style> </head> <body style="height:1000px;" > <div style="height:100px"></div> <div data-spy="affix" data-offset="100" class="test"></div> </body>
<script> $('#myAffix').affix({ offset: { top:100, bottom: function () { return (this.bottom = $('footer').outerHeight(true)) } } }) </script>
[Event]
The affix component provides 6 types of events, that is, affix and affixed each correspond to events in 3 states (normal, top, bottom)affix.bs.affix 在定位结束之前立即触发 affixed.bs.affix 在定位结束之后立即触发 affix-top.bs.affix 在定位元素应用affixed-top效果之前立即触发 affixed-top.bs.affix 在定位元素应用affixed-top效果之后立即触发 affix-bottom.bs.affix 在定位元素应用affixed-bottom效果之前立即触发 affixed-bottom.bs.affix 在定位元素应用affixed-bottom效果之后立即触发
<style> .test{width: 100%;height: 50px;background-color:lightgreen;} header{height: 100px;} .affix{top:0px;} </style> </head> <body style="height:1000px;"> <header></header> <div data-spy="affix" class="test"></div> <script> $(function(){ $('.test').affix({ offset:{ top:function(){ return (this.top = $('header').outerHeight(true)) } } }).on('affix.bs.affix',function(){ $(this).html('我被固定在窗口顶部'); }).on('affix-top.bs.affix',function(){ $(this).html('我正跟随滚动条滚动'); }) }) </script>For more programming-related knowledge, please visit:
programming video! !
The above is the detailed content of An in-depth analysis of automatic positioning buoys in Bootstrap. For more information, please follow other related articles on the PHP Chinese website!