我有一個固定位置的全屏圖像庫。容器div的高度是通過jQuery設置的,下一個div(#page)的margin-top等於window.height。
下面是該代碼:
var windowH = $(window).height();
var windowW = $(window).width();
function marginTop() {
var currentH = $(window).height();
$("#page").css("margin-top", currentH +'px');
$("#image-gallery").css("height", currentH +'px');
console.log('mTop fired!');
};
$(window).resize(function() {
var newH = $(window).height(); // Records new windows height after resize
var newW = $(window).width();
var maxH = windowH + 90; // Sets a positive delta of some px
var maxW = windowW + 60;
var minH = windowH - 90; // Sets a negative delta of some px
var minW = windowW - 60;
if(newH > maxH) { // If the height difference is more than 50px, then set new marginTop for #page
marginTop();
console.log('fire for bigger height');
} else if(newH < minH) {
marginTop();
console.log('fire for smaller height');
} else if(newW > maxW) {
marginTop();
console.log('fire for bigger width');
} else if(newW < minW) {
marginTop();
console.log('fire for smaller width');
}
});
我已經分裂狀況在幾個else if
語句,因爲它並沒有正常工作,我不得不退房的時候是工作的時候不要。
各種if ... elseif ... elseif ...解決了移動瀏覽器上的一個問題:沒有這個delta,#image-gallery div會在地址欄出現或消失時更改尺寸,導致調整結果的div的高度。此外,我不想在桌面上的視口中進行小的更改來重繪整個事物。
但它有一些問題,因爲它不能正常工作。特別是:
- marginTop()被激發僅window.resize較小的高度(從檢查的console.log)
- 在桌面上,如果窗口通過右上邊角按鍵大小,它根本不開火。
- 刪除所有的if-else-if條件,它工作正常,在桌面上在任何情況下(但地址欄仍是移動的問題)
不能搞清楚,代碼似乎對我來說很好,但不適合瀏覽器。漁獲何處?
測試在Firefox和Chrome最新
感謝@ SpYk3HH的評論性解釋,我在構建WordPress模板的同時學習了PHP,並且我是jQuery/Js邏輯的新手,所以我仍然需要一些練習,因爲我從未參加過課程!明天我會嘗試你的建議,希望它現在能工作! – frafor