Помощь новичку в 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, время: 12:10. |