1. 程式人生 > >position:sticky;新屬性小記

position:sticky;新屬性小記

偶然得知了position:sticky這個新屬性,想起了從前寫這個功能時的蛋疼時光。。。一堆高度算來算去,比來比去,emmm。。。

position:sticky;基於使用者的滾動位置來定位。

粘性定位的元素是依賴於使用者的滾動,在 position:relative 與 position:fixed 定位之間切換。

在目標區域以內,它的行為就像 position:relative; 而當頁面滾動超出目標區域時,它的表現就像 position:fixed;,它會固定在目標位置。

元素定位表現為在跨越特定閾值前為相對定位,之後為固定定位。

這個特定閾值指的是 top, right, bottom 或 left 之一,換言之,指定 top, right, bottom 或 left 四個閾值其中之一,才可使粘性定位生效。否則其行為與相對定位相同。
 

下附demo

<!DOCTYPE html>
<html>

	<head>
		<meta charset="UTF-8">
		<title>定位的新屬性position:sticky;</title>
		<style type="text/css">
			.top {
				height: 500px;
				background: yellowgreen;
			}
			
			.pos {
				height: 100px;
				background: blue;
				position: -webkit-sticky;
				position: sticky;
				top: 0;
				/*閾值*/
			}
			
			.pos22 {
				height: 100px;
				background: yellow;
				position: -webkit-sticky;
				position: sticky;
				top: 100px;
				/*閾值*/
			}
			
			.bottom1 {
				height: 500px;
				background: grey;
			}
			
			.bottom {
				height: 1600px;
				background: grey;
			}
		</style>
	</head>

	<body>
		<div class="top">上邊元素</div>
		<div class="pos">定位元素</div>
		<div class="bottom1">底部元素</div>
		<div class="pos22">定位元素222</div>
		<div class="bottom">底部元素</div>
		<script src="../lib/jquery-1.8.2.min.js" type="text/javascript" charset="utf-8"></script>
		<script type="text/javascript">
			$('.pos22').click(function() {
				window.scrollTo(0, 1500)
			})
		</script>
	</body>

</html>