fixed和absolute js彈窗代碼小結

css中position 屬性規(guī)定元素的定位類型,任何元素都可以定位。絕對定位或者固定定位都會生成一個塊級元素,無論 該元素原來的類型是什么。

在寫彈窗的時候,我們基本就是利用position里面的fixed或者absolute來做的。首先來看下position屬性有哪些屬性值。

首先看absolute,定位是相對于static定位以外的第一個父元素定位的,那么一般我們在做彈窗的時候會相對于body元素來定位。

html代碼

樣式代碼如下。

彈窗css樣式
蒙板樣式

接下來最重要的是,讓彈窗在瀏覽器的中間顯示,那么我們就要算出彈窗在瀏覽器的top和left值。

瀏覽器視窗寬高
給dialog設置left和top

到此一個最基本的彈窗定位就寫好了。你以為好了嗎?哈哈哈,這個時候發(fā)現(xiàn)頁面有滾動條了,這個還可以嗎?答案是要繼續(xù)寫碼。有了滾動條說明頁面的高度已經(jīng)不單單用window的高度就可以,這個時候要加上滾動條的高度。

滾動高度

滾動條的高度加上之前的top值,就是現(xiàn)在的top值。當沒有滾動條的時候,$(document).scrollTop()是0,現(xiàn)在看起來咱們的彈窗是不是完美了呢。頁面夠長也不害怕了。此時,產(chǎn)品同學過來說,我想彈窗在頁面滾動的時候,跟著頁面一起移動,哈哈哈,此時是不是就是fixed出場的時候了。

在剛開始的時候看到了,fixed定義就是相對于窗口定位的。那么咱們的代碼就可以把瀏覽器滾動條的高度忽略。直接還是用

還有一種更簡單的方法,那就是不用計算什么瀏覽器高度和寬度,直接用瀏覽器css中的%來自動獲取,用50%來代替,加上margin-left和margin-top屬性,這樣就搞定。

用%來計算top和left

大家在計算的時候會被好多js里面獲取高度和寬度的屬性搞暈了,我上面的敘述是不是清晰了好多。以上代碼都是基于jQuery,也可以原生的js來寫,原理相同。希望大家看完點個贊。

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標簽默認的外補...
    _Yfling閱讀 14,204評論 1 92
  • 當在這一個頁面上實現(xiàn)布局和定位有幾種不同的技術。使用哪種技術,很大程序上取決于內(nèi)容和目標頁面,因為有很多技術比別人...
    lulu_c閱讀 1,228評論 0 5
  • 轉載請聲明 原文鏈接地址 關注公眾號獲取更多資訊 第一部分 HTML 第一章 職業(yè)規(guī)劃和前景 職業(yè)方向規(guī)劃定位...
    前端進階之旅閱讀 16,920評論 32 459
  • 一、 現(xiàn)在是北京時間2046年5點46分,魏華剛睜開眼,便驚出了一身冷汗… 床上躺著兩個半身裸著的女人,她倆貌似昏...
    3組助教閱讀 421評論 12 7
  • 作者:[美] 莫提默·J. 艾德勒/查爾斯·范多倫 ISBN:9787100040945 豆瓣評分:8.5 一句話...
    老柒的號閱讀 229評論 0 0

友情鏈接更多精彩內(nèi)容