С Новым годом! Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 1
Регистрация: 13.01.2016
Сообщений: 8

Скрыть сестринские блоки при ресайзе

13.01.2016, 20:20. Показов 1004. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Подсобите с кодом пожалуйста. Имеется такая верстка:
HTML5
1
2
3
4
5
6
7
8
9
<div class="wrap_div">
 <div class="div1 "></div>
 <div class="div2 "></div>
 <div class="div3 "></div>
 <div class="div4 "></div>
 <div class="div5 "></div>
 <div class="div6 "></div>
 <div class="div7 "></div>
</div>
Суть проблемы:
Нужно скрывать блоки по мере уменьшения ширины окна, т.е. чтобы они не соскакивали вниз и были всегда в одну линию. Главная проблема в том, что есть "текущий блок", который имеет класс curent например(текущим может быть любой из 7 имеющихся) и необходимо, чтобы первые сестринские элементы текущего сохранялись, т.е. если это первый блок, то видимым был бы 1 и 2, если второй блок текущий, то видимыми оставались 1 2 3, если третий, то видимые 2 3 4 и т.д.

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

Добавлено через 2 часа 29 минут
не стал заморачиваться с проверками и логика получилась такая:
скрыть все и открыть только текущий и +- 1 элементы, с проверкой на отрицательный элемент.

Добавлено через 1 час 11 минут
Рано обрадовался, но в конечном итоге получилась такая функция
JavaScript
1
2
3
4
5
6
7
8
9
function hideblock($widthwin,$elem){
        if($(window).width()<$widthwin && $(".wrap_d .tmpclass").length>$elem){  
            if($(".wrap_d .left-side").length <= $(".wrap_d .right-side").length){
                $(".wrap_d .right-side").eq($(".wrap_d .right-side").length-1).css({'display':'none','width':'0'}).removeClass('right-side').removeClass('tmpclass');                
            } else {
                $(".wrap_d .left-side").eq(0).css({'display':'none'}).removeClass('left-side').removeClass('tmpclass');
            }            
        }   
}
По сути классами отметил правую и левую сторону от текущего элемента и балансировал их по мере изменения размеров экрана. По-моему говнокод, но что-то более изящное я сейчас видимо не в состоянии придумать)
Аргументы: ширина экрана; кол-во видимых эл-ов, которое должно быть при таком размере окна.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.01.2016, 20:20
Ответы с готовыми решениями:

Скрыть показать блоки
Добрый день, подскажите команду JS типа такого $(document).on('click', '#showhide', function(){ ...

Скрыть блоки в зависимости от их количества
Есть карусель структурой. &lt;ul&gt; &lt;li&gt;&lt;/li&gt; &lt;li&gt;&lt;/li&gt; &lt;li&gt;&lt;/li&gt; &lt;li&gt;&lt;/li&gt; &lt;/ul&gt; тегов &lt;li&gt; может быть от 1 и до бесконечности....

Скрыть ненужные блоки через скрипт
Добрый денек. Есть скрипт &quot;Isotope filter&quot; (всплывающие окна) для новостей Помогите сделать, чтобы изначально показывало только 1-ин...

3
 Аватар для AmateR62
118 / 118 / 87
Регистрация: 24.02.2014
Сообщений: 404
14.01.2016, 08:47
А с помощью медиа-запросов css не пробовали сделать?
CSS
1
2
3
@media screen and (max-width: 600px) {
/* тут вашему элементу даёте display: none */;
}
Добавлено через 13 минут
Что то я невнимательно задачу прочитал)) У меня получилось так:
JavaScript
1
2
3
4
5
6
7
8
$(document).ready(function() {
  $('input').click(function () {
    $("div.wrap_div").children().css("display","none");
    $("div.curent ").css("display","block");
    $("div.curent ").prev().css("display","block");
    $("div.curent ").next().css("display","block");
  });
});
http://codepen.io/anon/pen/vLJrVo?editors=101
0
0 / 0 / 1
Регистрация: 13.01.2016
Сообщений: 8
14.01.2016, 15:41  [ТС]
AmateR62, пока думал над мат операциями даже не вспомнил про функции next и prev, но они не катят) блоки надо с концов сокращать. Вообще вполне работает мой вариант, но мне он кажется избыточным.
Через медиа не подходит потому, что текущий блок меняет положение. Вообще это график работы на 7 дней, просто по дизу на мобилке должно быть только 3 блока и по феншую это так как описал должно выглядеть.
0
 Аватар для AmateR62
118 / 118 / 87
Регистрация: 24.02.2014
Сообщений: 404
14.01.2016, 15:55
А почему next и prev не катят?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.01.2016, 15:55
Помогаю со студенческими работами здесь

Скрыть каждый вторую картинку в блоки
Доброе утро! Подскажите как мне такое можно реализовать Есть такая разметка &lt;div class=&quot;card-columns&quot;&gt; ...

Позиционирование элементов при ресайзе
Добрый день, столкнулся со следующей проблемой, у меня на странице есть фон и картинка http://********/LmGEV7ktEXDOAl . Как видно из...

Единичное выполнение при ресайзе
Здравствуйте. Помогите доработать код, чтобы при ресайзе функция срабатывала только один раз: var sm =...

Скрыть/показать все блоки div с таким же классом как в selection
помогите с простым скриптом, можно только под IE, решение на Jquery приемлемо есть html такой структуры &lt;DIV id=content&gt; ...

Ре-инициализация виджета facebook при ресайзе окна браузера
Приветствую. Есть виджет блок с &quot;кнопкой нравится&quot; от фэйсбука. Ширина передается через атрибут data-width, забирается из разметки и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru