Помощь новичку в JS
Доброго времени суток. Вопрос в следующем:
Есть скрипт(который я нашел в интернете) выполняющий автоматическое масштабирование бекграунда по размеру экрана, но выполняется он один раз и для одного объекта. Мне же хочется применить для всех нужных мне div'ов. Пожалуйста, помогите довести скрипт до ума. Я думаю, что можно реализовать задачу через .siblings(), но я не знаю как... очень плохо знаю синтаксис js... Вот скрипт:
var _settings = {
// Full screen win
useFullScreenWin: true
};
// jQuery
jQuery(function() {
var $window = $(window),
$body = $('body');
// Full Screen Win
if (_settings.useFullScreenWin)
{
var $win = $('#win');
if ($win.length > 0)
{
var $win_win = $win.find('win');
$window
.on('resize.overflow_fsh', function() {
var p = Math.max(192, ($window.height() - $win_win.outerHeight()) / 2);
$win.css('padding', p + 'px 0 ' + p + 'px 0');
})
.trigger('resize.overflow_fsh');
$window.load(function() {
$window.trigger('resize.overflow_fsh');
});
}
}
});
|
Andry_JS,
может проще на css сделать? |
Цитата:
|
Цитата:
|
Цитата:
body{
background: url(image.jpg);
background-size: cover;
}
Цитата:
|
Цитата:
|
Andry_JS,
структура блока ? |
Цитата:
|
Цитата:
|
Цитата:
<div id="win">
<div id="c1">
<header id="header">
<h1></h1>
</header>
</div>
</div>
<div id="win">
<div class="c2">
<header id="header">
<h1></h1>
</header>
</div>
</div>
<div id="win">
<div class="c3">
<header id="header">
<h1></h1>
</header>
</div>
</div>
|
Andry_JS,
пока структура и скрипт и что делает скрипт для меня не ясно. какие отступы? какое позиционировfние ? когда id в структуре повторяются, а строка 20 скрипта ищет неизвестно что. |
Извините, что-то с отступами не получилось))
<body> <div id="win"> <div id="c1"> Блок номер 1 </div> </div> <div id="win"> <div class="c2"> Блок номер 2 </div> </div> </div> <div id="win"> <div class="c3"> Блок номер 3 </div> </div> </body> |
Что ищет
var $win_win = $win.find('win');
К сожалению тоже не знаю. Нашел скрип уже в таком виде, но без этого значения скрипт работать не хочет. |
Я представляю себе это как-то так:
В строку var $win = $('#win').siblings('win'); Добавить siblings('win') чтобы применялся скрипт к соседям также. Но такая форма записи не правильная, а как правильно... |
Andry_JS,
по загрузке страницы и по изменении размеров окна, с блоком класса "win", что должно произойти ? |
Вот посмотрите как на сайте работает так понятнее будет http://web-media.pro/
|
для него происходит математическое вычисление - скрипт считает какой должен быть padding-top и padding-bottom, чтобы размер блока соответствовал размеру окна браузера в точности
|
Цитата:
|
Andry_JS,
а зачем padding если можно высоту = 100% сделать в css |
рони,
Проблема собственно в чём: Скрипт работает отлично, но только для одного объекта, то есть скрипт находит первый div с id="win", а надо чтобы находил все. |
В любом случае, спасибо за помощь. :)
|
рони,
У меня получилось!! :) Рони, спасибо огромное ))) Надо было просто поменять id на класс! всё просто :) |
Andry_JS,
замените на класс Цитата:
|
Andry_JS, покажи результат. Вообще, ты чета загоняешь. Видимо ты хреновенько знаешь css и не понимаешь как это сделать без js.
Высоту можно унаследовать в 100%, центрирование делается иным способом. Так:
<!DOCTYPE html>
<style>
html, body{height: 100%;margin: 0;padding: 0}
#wrapper{
width: 100px;
height: 50px;
margin: auto;
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: red;
}
</style>
<body>
<div id="wrapper">Hello World</div>
</body>
Или так:
<!DOCTYPE html>
<style>
html, body{height: 100%;margin: 0;padding: 0}
html{display: table}
body{display: table-cell;vertical-align:middle;}
#wrapper{
width: 100px;
height: 50px;
margin: auto;
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: red;
}
</style>
<body>
<div id="wrapper">Hello World</div>
</body>
|
Andry_JS, насчет преимущества решения на js: вот я перешел по твоей ссылке и увидел это:
![]() Скролла нет, внизу торчит кусок зеленого блока с куском текста. Я пользуюсь noscript. Пользуюсь давно, однако твой сайт - один из немногих, на которых ломается верстка если отключить скрипты :D . В общем - ты лучший! :haha: |
| Часовой пояс GMT +3, время: 13:55. |