|
|
|
| подскажите формулу цетровки блока по центру?
окно может быть любой ширины, любой высоты
произвольно заскролено кудато
блок тоже имеет произв. ширину и высоту.
т.е. прошу просто псевдокода:)
например
ширина окна - скрол по ширине + ширина блока / 2
|
заранее благодарен :) | |
|
|
|
|
|
|
|
для: sl1p
(10.06.2010 в 18:53)
| |
left = (ширина окна - скрол по ширине - ширина блока) / 2;
top = (высота окна - скрол по высоте - высота блока) / 2;
|
ну это в случае если высота и ширина меньше размера окна :) | |
|
|
|
|
|
|
|
для: Lelik
(10.06.2010 в 19:05)
| | спасибо но оно не покатило..
тыком получилось вот так:
var sT = document.documentElement.scrollTop;
var sL = document.documentElement.scrollLeft;
var wH = document.documentElement.clientHeight;
var wW = document.documentElement.clientWidth;
var box = container.lastChild;
var bH = box.clientHeight;
var bW = box.clientWidth;
box.style.top = (
bH > wH
? sT
: sT + (wH-bH)/2
) + 'px';
box.style.left = (
bW > wW
? sL
: sL + (wW-bW)/2
) + 'px';
|
| |
|
|
|
|
|
|
|
для: sl1p
(10.06.2010 в 19:56)
| |
var iBrowserHeight = isIe() ? document.documentElement.clientHeight*1 : document.body.clientHeight*1;
var iScroll = isIe() ? document.body.parentElement.scrollTop*1 : window.scrollY*1;
var iTop = (iBrowserHeight <= iH) ? iScroll : (iBrowserHeight - iH) / 2 + iScroll;
|
где
iH - высота центрируемого блока (вместо box.clientHeight лучше использовать box.offsetHeight)
isIe() - функция которая поределяет браузер ИЕ или нет.
function isIe() {
if( document.all && !self.opera )
return true;
else
return false;
}
|
но это центрирование по центру от верха, я не использую центрирование от левого карая, так как делаю это с помощью margin: 0px auto; | |
|
|
|
|
|
|
|
для: Lelik
(10.06.2010 в 20:25)
| | ну вопервых мне ие не нужен, т.к. делаю только под ФФ и Оперу(админка).
margin: 0px auto; не подойдёт - размеры блока динамические.
за попытку помочь, спасибо :) | |
|
|
|