Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Событие при изменении размера окна в диапазоне (для адаптивной верстки) (https://javascript.ru/forum/misc/50577-sobytie-pri-izmenenii-razmera-okna-v-diapazone-dlya-adaptivnojj-verstki.html)

spo 02.10.2014 14:26

Событие при изменении размера окна в диапазоне (для адаптивной верстки)
 
Экспериментирую с адаптивной версткой. При определенном размере окна браузера медиазапросы расставляют блоки горизонтально в ряд. При таком положении дизайн предполагает блоки одинаковой высоты.

Не получается написать условие чтобы при размере окна (1 - изначальная загрузка, 2 - ресайз окна) в диапазоне от X до Y однократно выполнялось действие.

Прошу помочь.

danik.js 02.10.2014 14:40

А такой вариант выравнивания по высоте не подойдет?
<style>
.cell{
        width: 200px;
}
@media all /* media запрос вместо all */{
    .row{
        display: table;
        width: 100%;
    }
    .cell{
        display: table-cell;
    }
}
</style>
<div class="row">
    <div class="cell" style="background:red">1<br/>2</div>
    <div class="cell" style="background:green">1<br/>2<br/>3</div>
    <div class="cell" style="background:yellow">1</div>
</div>

spo 02.10.2014 15:14

danik.js, спасибо за вариант!
Но хотелось бы для себя понять как реализовать такую логику.
Если знаете как, то можно не кодом а в двух словах, а я уже буду экперементировать.

Главный вопрос в том как сделать проверку чтобы скрипт не срабатывал на каждом пикселе при ресайзе.

danik.js 02.10.2014 15:43

Не стоит делать на js то, что можно сделать на css. Неужели это кто-то не понимает?

Верстка должна работать без всяких скриптов.
Ну а вобще - в идеале window.matchMedia() (https://hacks.mozilla.org/2012/06/us...in-javascript/)

Но для старых браузеров - событие resize и проверка window.innerWidth (опять же, в IE нужны костыли)

рони 02.10.2014 15:51

spo,
:-?
jQuery.fn.scroll_resize_Complete
http://javascript.ru/forum/project/4...tml#post299385


Часовой пояс GMT +3, время: 07:47.