Расположите DIV в видимой области страницы с помощью jquery или javascript

#jquery

#jquery

Вопрос:

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

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

я искал в Google и нашел направляющую строку, и я написал соответствующий код, но он не сработал.

итак, вот мой код, который не работает в соответствии с моими требованиями.

 $(".ui-dialog").animate({
left: viewportwidth / 2 - $(".ui-dialog").outerWidth() / 2, 
top: viewportheight / 2 - $(".ui-dialog").outerHeight / 2
}, 1000);
 

определить область видового экрана, например

 var viewportwidth;
var viewportheight;

// the more standards compliant browsers (mozilla/netscape/opera/IE7) use window.innerWidth and window.innerHeight

if (typeof window.innerWidth != 'undefined') {
    viewportwidth = window.innerWidth,
  viewportheight = window.innerHeight
}

// IE6 in standards compliant mode (i.e. with a valid doctype as the first line in the document)

else if (typeof document.documentElement != 'undefined'
 amp;amp; typeof document.documentElement.clientWidth !=
 'undefined' amp;amp; document.documentElement.clientWidth != 0) {
    viewportwidth = document.documentElement.clientWidth,
   viewportheight = document.documentElement.clientHeight
}

// older versions of IE

else {
    viewportwidth = document.getElementsByTagName('body')[0].clientWidth,
   viewportheight = document.getElementsByTagName('body')[0].clientHeight
}
 

это не работает в браузере FF, и это вызывает проблему в IE, что все, что я размещаю в своем диалоговом окне jquery, исчезло из поля зрения.

поэтому, пожалуйста, помогите мне разобраться, как отобразить div в видимой области страницы.

Спасибо

Ответ №1:

Для этого вам не нужен JavaScript. Вы можете просто использовать «position: fixed;».

Пример: http://jsfiddle.net/hENGL /

Комментарии:

1. как это сделать или настройка всего css с помощью jquery.

2. Не могли бы вы уточнить, чего именно вы хотите достичь? Если бы мне нужно было создать всплывающее окно, я бы, вероятно, сделал следующее: добавьте html-лайтбокс на страницу в начале или в конце документа, задайте лайтбоксу класс (например, class=»lightbox»), затем я добавляю css класса в мой файл css (как в примере, но добавьте следующее «display: none;», чтобы скрыть его по умолчанию), затем мне нужно показать лайтбокс, я бы сделал это с помощью jQuery с помощью этой команды: $(«.yourclassname»).show();

3. Насколько это дает рабочее решение вопроса OPs, на самом деле это не отвечает на вопрос. Такое предложение должно быть комментарием, а не принятым ответом.