我試圖結合兩個世界的最佳,並完成什麼固定定位時,當你設置top: 0
(附加到視口的頂部),同時保持元素絕對定位,使它滾動水平地與其父元素(這與固定這是有問題的)。修復絕對定位元素到視口頂部的滾動
趕上這是一個表頭,所以試圖破解我的方式通過嵌套divs
設置爲不同的定位方法將無法在這裏工作。
我目前嘗試是保持表頭用的absolute
的位置而計算所述表的頂部的距離視口的頂端的滾動事件偵聽器內:
const distanceToTop = this.headerElement.getBoundingClientRect().top;
this.stickyHeaderElement.style.top = `${Math.abs(distanceToTop)}px`;
this.headerElement
是原始表格標題,您可以滾動過去(不執行任何操作),而stickyHeader實例是發生冒煙的鏡像的位置。
這個電流的方法是做我想要的它... 然而,當你滾過原始表頭和粘實例附加是令人難以置信的,因爲哈克,粘頭搖因爲所有的DOM操作發生的每事件監聽器觸發的時間。
因爲它是用上面的邏輯重新計算的。
問:我可以有一個絕對定位的表頭元素也添加到視象固定定位允許的頂部?那裏有更高效的解決方案嗎?
我相信你正在尋找的字是 「** **粘」。已經有很多的例子和解決方案,只是搜索它:) – Terry
如果我明白你要找的是什麼,你可以添加'position:fixed',一旦元素的頂部位於頂部視口(或任何你想要觸發效果的地方)。 – ingridly
@ingridly是的,問題是,當位置設置爲固定並且水平滾動時,附加的表頭不會隨其餘內容一起滾動。絕對定位**不允許表格標題與內容水平滾動。棘手的情況。 – Jose