Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 07.11.2014, 03:11
Кандидат Javascript-наук
Отправить личное сообщение для cha0s Посмотреть профиль Найти все сообщения от cha0s
 
Регистрация: 21.10.2013
Сообщений: 125

Как выровнять div по вертикали&горизонтали по центру страницы?
Чтоб он был absolute и чтоб всегда был по центру экрана(как по вертикали так и по горизонтали), только не страницы, а именно экрана, то что видит пользователь на экране вот по центру этого, а не по центру всей страницы(она то может прокручиваться), ну и при прокрутки чтоб данные центрирования пересчитывались - так как они поменялись. Спасибо.

CSS кода не нужна реализация, именно Jquery(javascript)
Ответить с цитированием
  #2 (permalink)  
Старый 07.11.2014, 03:25
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

cha0s,
Как создать свой оверлей с картинкой
Ответить с цитированием
  #3 (permalink)  
Старый 07.11.2014, 03:31
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от cha0s
CSS кода не нужна реализация
А почему?

<style>
div{
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    margin: auto;
    width: 200px;
    height: 50px;
    background: red;
}
</style>

<p style="height: 2000px"></p>
<div></div>
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #4 (permalink)  
Старый 07.11.2014, 15:16
Кандидат Javascript-наук
Отправить личное сообщение для cha0s Посмотреть профиль Найти все сообщения от cha0s
 
Регистрация: 21.10.2013
Сообщений: 125

рони, твой код делает по центру вертикали всей страницы, например высота страницы height=10000px он выставит на height=5000px, мне это не надо, мне надо по центру вертикали окна того что видит пользователь,например я могу находится в самом низу страницы этой на 10000px и она у меня будет по центру вертикали, а не на середине странице где-то останется... на 5000px, одним словом по центру того где ползунок находится так правильнее сказать, то есть если я прокручиваю страницу вниз то этот div Всегда будет по центру вертикали страницы.


danik.js, мне надо jquery, и что это за height: 2000px, у меня резиновая высота которая может меняться, мне не годиться статическая высота.

Последний раз редактировалось cha0s, 07.11.2014 в 15:18.
Ответить с цитированием
  #5 (permalink)  
Старый 07.11.2014, 15:34
Аспирант
Отправить личное сообщение для voral Посмотреть профиль Найти все сообщения от voral
 
Регистрация: 03.10.2014
Сообщений: 67

ну если без css и absolute
top блока =прокрутка + (высота окна - высота блока) / 2
left блока =прокрутка + (ширина окна - ширина блока) / 2

учесть, что значения будут меняться при загрузке, ресайзе и прокрутке
Ответить с цитированием
  #6 (permalink)  
Старый 07.11.2014, 15:41
Профессор
Отправить личное сообщение для tsigel Посмотреть профиль Найти все сообщения от tsigel
 
Регистрация: 12.12.2012
Сообщений: 1,398

cha0s,
Код который написал danik.js сработает так как вы описываете с любой высотой любого контента. Обоснуйте зачем размещать блок именно js кодом? Что в этой задаче невыполнимо на css?

На мой взгляд вы просто плохо знакомы с css.
Ответить с цитированием
  #7 (permalink)  
Старый 07.11.2014, 16:10
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Сообщение от cha0s
рони, твой код делает по центру вертикали всей страницы, например высота страницы height=10000px он выставит на height=5000px, мне это не надо, мне надо по центру вертикали окна того что видит пользователь,
а разве не так ? нажми на одну из картинок она всегда будет в центре видимой части -- независимо от прокрутки
добавлено только реагирование на скрол и размеры окна

но лучше присваивать класс элементу который содержит параметры что указал danik.js,
<!DOCTYPE HTML>
<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8" />
  <style type="text/css">
  <!--
  body{
    height: 10000px;
    width: 1000px;
  }

 </style>
  <script src="http://code.jquery.com/jquery-latest.js"></script>
<script>
jQuery.fn.center = function()
	{
	var w = $(window);
   	this.css("position","absolute");
	this.css("top",(w.height()-this.height())/2+w.scrollTop() + "px");
	this.css("left",(w.width()-this.width())/2+w.scrollLeft() + "px");
    return this;
	}
function creatOverlay(){
  var docHeight = $(document).height();
  $("<div id='overlay'></div>")
  .appendTo("body")
  .height(docHeight)
  .css({
    'opacity': 0.4,
    'position': 'fixed',
    'top': 0,
    'left': 0,
    'background-color': 'black',
    'width': '100%',
    'z-index': 5000
  });
$(this).clone().appendTo("body").center().css({'z-index': 5001}).attr({'id' : 'cln'})
}
function remov()
{
    $("#overlay, #cln").remove();

}
function fix()
{
    $('#cln').center()
}
$(window).on({"scroll" : fix, "resize" : fix});
$(document).on({"click": creatOverlay, }, "img");
$(document).on({"click": remov}, "#overlay, #cln");
</script>
</head>
<body>
<img src="http://javascript.ru/forum/images/ca_serenity/misc/logo.gif" alt=""  style="position: fixed">
<img src="http://javascript.ru/forum/images/smilies/write.gif" alt=""  style="position: relative; left: 100px; top: 200px">
</body>
</html>
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Управление скроллом "а-ля тач" HonesT Элементы интерфейса 2 27.08.2013 14:25
вывести html код страницы в div djonA Общие вопросы Javascript 3 13.05.2013 20:01
Как менять div на div d4a1 Общие вопросы Javascript 6 09.12.2011 17:04
Как сделать, чтобы при удалении div браузер не перепрыгивал наверх станицы EvgeniyRRU Events/DOM/Window 4 02.10.2011 12:42
Как разделять страницы при выводе отчета ilshat Events/DOM/Window 7 10.12.2009 10:24