Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 16.09.2008, 17:44
Кандидат Javascript-наук
Отправить личное сообщение для magistr_bender Посмотреть профиль Найти все сообщения от magistr_bender
 
Регистрация: 07.09.2008
Сообщений: 133

Центрирование элемента
есть динамически создаваемый элемент
вот код
<input type="submit" value="Create" name="create" onclick="create_elem()" />
<input type="submit" value="Destroy" name="destroy" onclick="destroy_elem()" />
<script language="JavaScript" type="text/javascript">
var moveState = false;

var x0, y0;
var divX0, divY0;
function defPosition(event) {
    var x = y = 0;
    if (document.attachEvent != null) { // Internet Explorer & Opera
        x = window.event.clientX + document.documentElement.scrollLeft + document.body.scrollLeft;
        y = window.event.clientY + document.documentElement.scrollTop + document.body.scrollTop;
    }
    if (!document.attachEvent && document.addEventListener) { // Gecko
        x = event.clientX + window.scrollX;
        y = event.clientY + window.scrollY;
    }
    return {x:x, y:y};
}

function initMove(div, event) {

    var event = event || window.event;
    x0 = defPosition(event).x;
    y0 = defPosition(event).y;
    divX0 = parseInt(div.style.left);
    divY0 = parseInt(div.style.top);
    moveState = true;
}

document.onmouseup = function() {
    moveState = false;
}

function moveHandler(div, event) {
    var event = event || window.event;
    if (moveState) {
        div.style.left = divX0 + defPosition(event).x - x0;
        div.style.top  = divY0 + defPosition(event).y - y0;
    }
}


var vjtwindow;

function create_elem() {
var mdiv = document.getElementById("mdiv");
    if (!vjtwindow) {
        vjtwindow=document.createElement("table");
        vjtwindow.cellPadding = 0;
        vjtwindow.cellSpacing = 0;
        vjtwindow.id = "vij-table";
        vjtwindow.name = "vij-table";

    var newRow=vjtwindow.insertRow(0);
    var newCell = newRow.insertCell(0);
        newCell.id="vij-table-ie";
        newCell.innerHTML="<img src=\"skins/standart/images/21.png\" class=\"vjt-img\"/>";

    var newCell = newRow.insertCell(1);
        newCell.id="vjt-table-top";
        newCell.innerHTML="";

    var newCell = newRow.insertCell(2);
        newCell.id="vij-table-ie";
        newCell.innerHTML="<img src=\"skins/standart/images/24.png\" class=\"vjt-img\"/>";

    var newRow=vjtwindow.insertRow(1);
    var newCell = newRow.insertCell(0);
        newCell.id="vij-table-ie";
        newCell.innerHTML="<img src=\"skins/standart/images/29.png\" class=\"vjt-img\"/>";

    var newCell = newRow.insertCell(1);
        newCell.id="vjt-table-bottom";
        newCell.innerHTML="";

    var newCell = newRow.insertCell(2);
        newCell.id="vij-table-ie";
        newCell.innerHTML="<img src=\"skins/standart/images/28.png\" class=\"vjt-img\"/>";

    var newRow=vjtwindow.insertRow(1);
    var newCell = newRow.insertCell(0);
        newCell.id="vjt-table-left";
        newCell.innerHTML="";

    var newCell = newRow.insertCell(1);
        newCell.id="vjt-tab";
        newCell.setAttribute("vlign","top");
        newCell.innerHTML="<b>23</b>";

    var newCell = newRow.insertCell(2);
        newCell.id="vjt-table-right";
        newCell.innerHTML="";
    vjtwindow.position="absolute";
    document.getElementById("mdiv").appendChild(vjtwindow);
    }
}
function destroy_elem(){
    if (!vjtwindow) return;
    document.getElementById("mdiv").removeChild(vjtwindow);
    vjtwindow = null;
}

</script>
<div style='position:absolute; top:100px; left:100px; height: 500px; width:350px;' onmousedown = 'initMove(this, event);' onmouseup = 'moveState = false;' onmousemove = 'moveHandler(this, event);' id = 'mdiv'></div>

при выполнении кода создаётся табличка и пихается в див, который расположен приблизительно по центру... всё бы хорошо если бы не так плохо... дело в том, что див статичен, и если на странице контент оч длинный, а кнопочка в самом низу, то при создании элемента он помещается в див, который находится за областью видимости юзера... как сделать так, чтоб окно создавалось всегда в центре?
может както можно див центрировать?
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск элемента по куску его Id gregOlsener Events/DOM/Window 1 25.08.2008 22:04
Подключение элемента script viliv Events/DOM/Window 1 16.07.2008 21:46
Добавление элемента и работа с ним nvbn Events/DOM/Window 13 07.07.2008 19:07
Подключение элемента <script> Elektron Общие вопросы Javascript 5 18.06.2008 17:04
как определить позицию элемента относительно окна scuter Events/DOM/Window 5 07.05.2008 18:47