2009-10-15 64 views
2

什麼是Lightbox 2的邏輯位置彈出窗口的位置?什麼是燈箱2的邏輯位置彈出窗口的位置?

似乎在使用Firefox或Chrome時,它會顯示在不同頁面的不同位置。是否有任何設置讓它在每個頁面的相同高度上顯示一致性?

它是用來確定定位的CSS或邏輯是什麼?

+0

什麼收藏夾2,什麼框架(如果有...)?我在jQuery中使用了一個叫做lightbox 2的函數,它總是居中(iPhone上除外)。 – jeroen 2009-10-15 03:13:44

+0

http://www.huddletogether.com/projects/lightbox2/ – leora 2009-10-15 03:30:02

+1

你有沒有考慮過'「position:fixed; top:100px;」'? 「固定位置」生成一個絕對定位的元素,相對於瀏覽器窗口定位。該元素的位置是用「左」,「頂」,「右」和「底部」屬性指定的... http://www.w3schools.com/Css/pr_class_position.asp – gahooa 2009-11-27 15:05:58

回答

11

它以什麼方式顯示在不同的地方,你期望的行爲是什麼,你可以給一個示例頁面?

這裏是腳本本身如何計算彈出窗口的頂部位置(收藏夾V2.04,壓縮下載,JS/lightbox.js,線229ff):

// calculate top and left offset for the lightbox 
var arrayPageScroll = document.viewport.getScrollOffsets(); 
var lightboxTop = arrayPageScroll[1] + (document.viewport.getHeight()/10); 
var lightboxLeft = arrayPageScroll[0]; 
this.lightbox.setStyle({ top: lightboxTop + 'px', left: lightboxLeft + 'px' }).show(); 

由於腳本使用Prototype's document.viewport object中,腳本在10%位置的彈出窗口的當前滾動位置裏面,像這樣:

------- page start 
| 
| 
| 
| 
| 
------- scroll position top 
| 
------- start of lightbox popup 
| 
| 
| 
| 
| 
| 
| 
| 
------ scroll position bottom 
| 
| 
| 
| 
------ page end 
+0

很好的解釋。 +1 – Boldewyn 2009-11-26 13:22:15

-2
#lightbox{ 
position: absolute; 
top: 100px !important; /*I foxed it 100px from the top, you could fix it as much pixels as you wish*/ 
} 
+0

這裏的問題是,如果我必須在頁面上向下滾動,然後將該框顯示在屏幕上。我現在需要的是相對於頁面頂部的100px。 。 – leora 2009-10-15 10:57:18

1

我知道這是一個非常古老的線索,但仍然排名前5的谷歌結果。 IE/FF給了我很好的結果,但Chrome並沒有。讓他們都一致,JS的

線231/lightbox.js

改爲

var lightboxTop = arrayPageScroll[1] + (100); 

被要求不完全是,但現在的網頁是一致的。從http://www.lokeshdhakar.com/forums/discussion/5494/fixed-display-position-problems-with-firefox-but-not-ie-on-tall-webpages/p1

+0

我知道這並不回答上面的問題。希望其他人發現對他們自己的開發工作很有幫助 – 2012-01-08 13:18:02

1

採取

信息在線路231在lightbox.js 10調整分至100是這樣的:

document.viewport.getHeight()/100

樣品的編號:

// calculate top and left offset for the lightbox 
    var arrayPageScroll = document.viewport.getScrollOffsets(); 
    var lightboxTop = arrayPageScroll[1] + (document.viewport.getHeight()/100); // 
    var lightboxLeft = arrayPageScroll[0]; 
    this.lightbox.setStyle({ top: lightboxTop + 'px', left: lightboxLeft + 'px' }).show();