Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > позиционирование дива


Автор: z-END 17.8.2005, 20:54
можно - ли при выполнении скрипта показать див по центру ОКНА браузера? (типа как диалоговое окно)
по ширине там все понятно, а вот с высотой мне чето не сообразить, т.е. хочется даже в случае если страница прокручена на "пару экранов" вниз то появляющийся див был посередине видимой части окна браузера.
вотЪ...

Автор: Aliance 17.8.2005, 22:02
Да, канечно, возможно.
Набери в поиске «координаты», «центр», «середина» и «размеры окна»

Автор: z-END 17.8.2005, 22:25
ничаго ненайдено по моему запросуsmile(

Автор: Aliance 18.8.2005, 02:52
Прощу прощения, что сразу не отвечал.
Времени вообще ноль.
Вот тут написал кое-что, надеюсь мои труды не пропадут зря и он тебе пригодиЦЦа:

Код

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML>
<HEAD>
<TITLE>© AlianceHTMLEditor [ http://editor.sut.net.ru/editor.html ]</TITLE>
<script type="text/javascript" language="JavaScript">

var isCSS = (document.body && document.body.style) : true ? false;
var isIE6CSS = (document.compatMode && document.compatMode.indexOf("CSS1") != -1) : true ? false;

// определяем ширину отображенного на экране объекта
function getObjWid(obj) {
   var elem = document.getElementById(obj);
   var res = 0;
   if (elem.offsetWidth) {
      res = elem.offsetWidth;
   } else if (elem.clip && elem.clip.width) {
      res = elem.clip.width;
   } else if (elem.style && elem.style.pixelWidth) {
      res = elem.style.pixelWidth;
   }
   return parseInt(res);
}
// определяем высоту отображенного на экране объекта
function getObjHei(obj) {
   var elem = document.getElementById(obj);
   var res = 0;
   if (elem.offsetHeight) {
      res = elem.offsetHeight;
   } else if (elem.clip && elem.clip.height) {
      res = elem.clip.height;
   } else if (elem.style && elem.style.pixelHeight) {
      res = elem.style.pixelHeight;
   }
   return parseInt(res);
}

// возвращает ширину доступного в браузере пространства
function getWinWid() {
   if (window.innerWidth) {
      return window.innerWidth;
   } else if (isIE6CSS) {
      // изменяем clientWidth элемента html
      return document.body.parentElement.clientWidth;
   } else if (document.body && document.body.clientWidth) {
      return document.body.clientWidth;
   }
   return 0;
}
// возвращает высоту доступного в браузере пространства
function getWinHei() {
   if (window.innerHeight) {
      return window.innerHeight;
   } else if (isIE6CSS) {
      // изменяем clientHeight элемента html
      return document.body.parentElement.clientHeight;
   } else if (document.body && document.body.clientHeight) {
      return document.body.clientHeight;
   }
   return 0;
}

function shiftTo(obj, x, y) {
   var object = document.getElementById(obj);
   if (object) {
      if (isCSS) {
         var units = (typeof object.left == "string") ? "px" : 0;
         object.left = x + units;
         object.top = y + units;
      }
   }
}

function centerialize(elemID) {
   var obj = document.getElementById(elemID);
   var scrollX = 0, scrollY = 0;
   if (document.body && typeof document.body.scrollTop != "undefined") {
      scrollX += document.body.scrollLeft;
      scrollY += document.body.scrollTop;
         if (document.body.parentNode && typeof document.body.parentNode != "undefined") {
            scrollX += document.body.parentNode.scrollLeft;
            scrollY += document.body.parentNode.scrollTop;
         }
   } else if (typeof window.pageXOffset != "undefined") {
      scrollX += window.pageXOffset;
      scrollY += window.pageYOffset;
   }
   var x = Math.round((getWinWid()/2)(getObjWid(obj)/2)) + scrollX;
   var y = Math.round((getWinHei()/2)(getObjHei(obj)/2)) + scrollY;
   shiftTo(obj, x, y);
}

</SCRIPT>
</HEAD>

<BODY onload="centerialize('aliance')">

<div id="aliance" style="border: 1px solid #000">
<h1>Специально для Z-End`а ;-)</h1>
</div>

</BODY>
</HTML>

Автор: o.s.a. 18.8.2005, 05:27
Цитата(z @ 17.8.2005, 22:54)
можно - ли при выполнении скрипта показать див по центру ОКНА браузера? (типа как диалоговое окно)



Aliance, твой скрипт отображает див на верху экрана

Автор: z-END 18.8.2005, 09:56
Цитата(o @ 18.8.2005, 06:27)
Aliance, твой скрипт отображает див на верху экрана

агаsmile

Автор: Aliance 18.8.2005, 13:54
Ребят, думаю к вечеру освобожусь - посмотрю в чем дело.
Скрипт писал не вчера, просто нашел у себя в архивах.
Возможно что-то с ним делал и забыл убрать изменения 8))

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)