国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

jquery實(shí)現(xiàn)div層隨頁(yè)面滾動(dòng)而滾動(dòng)(固定在某一位置)

瀏覽:143日期:2024-09-03 10:29:38

翻看ipc.me時(shí)覺得右側(cè)的slider會(huì)隨著頁(yè)面下翻而始終浮動(dòng)在窗口邊沿下,體驗(yàn)很不錯(cuò),在張?chǎng)涡竦牟┛椭幸黄恼碌慕梃b下,成功實(shí)現(xiàn)這樣一個(gè)功能,代碼如下(基于jquery實(shí)現(xiàn),所以事先要在頁(yè)面中導(dǎo)入jquery文件):

<script type='text/javascript'>$.fn.smartFloat = function() { var position = function(element) {var top = element.position().top, pos = element.css('position');$(window).scroll(function() { var scrolls = $(this).scrollTop(); if (scrolls > top) {if (window.XMLHttpRequest) { element.css({position: 'fixed',top: 0 }); } else { element.css({top: scrolls }); } }else {element.css({ position: 'absolute', top: top});}}); }; return $(this).each(function() {position($(this)); });};$('要浮動(dòng)的層id或class').smartFloat();</script>

跟原作者說的一樣,我也是妥妥的實(shí)現(xiàn)了這一功能,當(dāng)然是在chrome下,IE沒有測(cè)試,應(yīng)該也是可以的,實(shí)現(xiàn)的原理如下(最好是看一下,了解原理,就站在了制高點(diǎn)看問題,一覽眾山?。?/p>

默認(rèn)狀態(tài)就是默認(rèn)狀態(tài),什么事情也不用做,定位是absolute也好,static也好,都o(jì)k。關(guān)鍵是當(dāng)瀏覽器滾動(dòng)的時(shí)候,對(duì)象(要浮動(dòng)的層)要移除瀏覽器界面視區(qū)的時(shí)候,修改其position屬性,讓其浮動(dòng)在窗口的上沿顯示就可以了。最好的position屬性就是fixed了,可以在IE6+和其他瀏覽器下浮動(dòng)層平滑固定定位,由于IE6前輩不支持fixed屬性,所以,后退一步,使用absolute屬性代替,但是會(huì)有副作用——滾動(dòng)不平滑。但,這也是沒有辦法的事情了。

現(xiàn)在關(guān)鍵就是如何判斷當(dāng)前層與瀏覽器窗口的上邊緣接觸呢?當(dāng)浮動(dòng)層與瀏覽器窗口上邊緣接觸的一瞬間,其頁(yè)面垂直偏移值與頁(yè)面的滾動(dòng)高度其實(shí)是一致的,所以,用這個(gè)進(jìn)行判斷就OK了,但是,如何獲得頁(yè)面上元素距離頁(yè)面的垂直距離呢?純粹的js代碼獲得此值還是比較麻煩的,好在JavaScript庫(kù)jQuery幫我們解決了這些工作。

標(biāo)簽: jQuery
相關(guān)文章:
主站蜘蛛池模板: 康马县| 武汉市| 舞阳县| 吴堡县| 玛纳斯县| 宣恩县| 涞水县| 龙游县| 定陶县| 收藏| 平遥县| 沂水县| 宜阳县| 高安市| 永昌县| 临高县| 莒南县| 托克托县| 青阳县| 安化县| 裕民县| 紫金县| 保山市| 金平| 延吉市| 利川市| 铜梁县| 浠水县| 弋阳县| 嘉禾县| 淄博市| 栾城县| 佛冈县| 金山区| 什邡市| 新晃| 桓台县| 洛浦县| 昌邑市| 华坪县| 疏附县|