Всем привет, вопрос такой,
Код:вычисляет нормально значение totalOtstup, но! при ресайзе страницы(меняем ширину окна мышой) динамически не вычисляет. только после ctrl F5var totalWidthContent = $('#layout').outerWidth(); // ширина блока с контентом, включая padding var totalWidthButton = $('#scroll_to_top').outerWidth(true); // ширина самой кнопки наверх, включая padding и margin var totalPadding = $(window).width()/2-totalWidthContent/2-totalWidthButton; $('#scroll_to_top').css({'right': totalPadding +'px'});
объясните почему?
- 18.06.2014 18:44
- 18.06.2014 20:20
- Регистрация: 29.11.2009
- Сообщений: 131
- Репутация: 32
1. А по ресайзу пересчет запускается?
2. Никогда outerWidth() не польлзовался, обычный width() не прокатывает? - 18.06.2014 22:32
- Регистрация: 27.06.2013
- Сообщений: 117
- Репутация: 17
Пересчитываем по ресайзу.
Код:$(window).on('resize', function () { // resize });
Спасибо сказали:
akrustam(18.06.2014), - 18.06.2014 23:24
Пробую так:
Код:но не работает, ширина динамически не меняется, только при обновлении страницыvar totalWidthContent = $('#layout').outerWidth(); // ширина блока с контентом, включая padding var totalWidthButton = $('#scroll_to_top').outerWidth(true); // ширина самой кнопки наверх, включая padding и margin var totalPadding = $(window).width()/2-totalWidthContent/2-totalWidthButton; $( window ).resize(function() { $('#scroll_to_top').css({'width': totalOtstup+'px'}); });
- 19.06.2014 00:17
в ресайзе что за переменная више??
totalOtstup - 19.06.2014 00:19
- Регистрация: 27.06.2013
- Сообщений: 117
- Репутация: 17
У вас ресайзе каждый раз изменяется один раз подсчитанный отступ. Правильно так:
Код:Да, и totalOtstup неясно, откуда :)var updatePadding = function () { var totalWidthContent = $('#layout').outerWidth(); // ширина блока с контентом, включая padding var totalWidthButton = $('#scroll_to_top').outerWidth(true); // ширина самой кнопки наверх, включая padding и margin var totalPadding = $(window).width()/2-totalWidthContent/2-totalWidthButton; $('#scroll_to_top').css({'width': totalPadding+'px'}); }; updatePadding(); $( window ).resize(updatePadding);
Спасибо сказали:
cOAPerator(19.06.2014), - 19.06.2014 14:13
SPIELER-x, сори опечатался. totalPadding вместо totalOtstup.
GoodHash, спасибо. значит если я правильно понимаю, вычисление ширины нужно оборачивать в анонимную функцию, а метод resize будет запускать ее каждый раз при изменении размера экрана, верно?Последний раз редактировалось cOAPerator; 19.06.2014 в 14:51.
- 19.06.2014 15:36
Да. Без собития ресайз работать не будет.
Спасибо сказали:
GoodHash(19.06.2014), - 21.06.2014 13:40
Предположение: первоначальная задача как-то связана с центрированием, что, при определённых условиях, можно решить на чистом CSS, не?
- 21.06.2014 16:12
- Регистрация: 27.06.2013
- Сообщений: 117
- Репутация: 17
Возможно, но это надо видеть всю верстку.
Тэги топика:
Похожие темы
Темы | Раздел | Ответов | Последний пост |
---|---|---|---|
Изменение ширины таблицы | WordPress | 12 | 18.11.2013 16:01 |
Вычисление апа тиц | Оффтоп и свободные темы | 4 | 27.10.2013 09:03 |
Не могу сделать фотер 100% ширины в бутстрап 3.0 | Web программирование | 14 | 23.10.2013 16:12 |
4 блока Adsense! O_o | PPC и контекстная реклама | 11 | 16.10.2013 02:37 |
Вычисление ip посетителя | Web программирование | 11 | 28.04.2013 01:09 |