С Новым годом! Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/18: Рейтинг темы: голосов - 18, средняя оценка - 4.67
1030 / 682 / 297
Регистрация: 04.04.2013
Сообщений: 2,751

Кнопки "вперед/назад" и показ блоков

05.07.2018, 20:56. Показов 3743. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени. Не могу понять как переназначать класс для табов по нажатию на кнопки prev/next.
Нужен алгоритм следующий:
- В случае если контейнер с классом .current первый либо последний по счету элемент в блоке .conteiner, добавляем свойство opacity: 0.5; соответствующей кнопке
- В случае если таб с классом .current ни первый и не последний, снимать полупрозрачность с соответствующей кнопки.
- По нажанию на кнопки вешать класс табу .current следующему за предыдущим либо наоборот в зависимости на какую кнопку нажали

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
<section class="tabs">
    <div class="nav-tabs">
        <div class="prev"></div>
        <div class="next"></div>
    </div>
 
    <div class="conteiner>
        <div class="tab current"></div>
        <div class="tab"></div>
        <div class="tab"></div>
    </div>
</section>
Помогите кодом или советом.

Добавлено через 1 час 26 минут
Как-то так реализовал:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    var $curr = $('#tabs-conteiner .current');
 
    $('#tabs-serv .next').click(function(){
        if(! $('#tabs-conteiner .tab').last().hasClass('current')){
            $curr = $curr.next();
            $('#tabs-serv .tab').removeClass('current');
            $curr.addClass('current');
        }
    });
 
    $('#tabs-serv .prev').click(function(){
        if(! $('#tabs-conteiner .tab').first().hasClass('current')){
            $curr = $curr.prev();
            $('#tabs-serv .tab').removeClass('current');
            $curr.addClass('current');
        }
    });
Может компактнее можно?
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.07.2018, 20:56
Ответы с готовыми решениями:

Смена картинок вперёд/назад
Помогите решить задачу с мини слайдером(смена картинок вперёд - назад) , нашёл пример попытался переделать по себя не рааботает, не знаю в...

Код прокручивает изображения вперед и назад по клику. Найти в нем ошибку
Есть код. Он прокручивает изображения вперед и назад по клику. При нажатии на саму кнопку, фотография появляется в темном фоне. В...

Показ блоков в зависимости от выбора select
&lt;select id=&quot;form1&quot;&gt; &lt;option value=&quot;knigi&quot;&gt;Книги&lt;/option&gt; &lt;option value=&quot;buklety&quot;&gt;Буклеты&lt;/option&gt; &lt;/select&gt; &lt;div...

8
249 / 162 / 68
Регистрация: 10.12.2017
Сообщений: 558
05.07.2018, 21:07
можно на css сделать
CSS
1
2
div ul:not(:first-child) {}
div ul:not(:last-child) {}
0
1030 / 682 / 297
Регистрация: 04.04.2013
Сообщений: 2,751
05.07.2018, 21:09  [ТС]
Evgen1337, Не соображу что вы имеете ввиду. Через css ведь нельзя отследить клик по елементу?
0
249 / 162 / 68
Регистрация: 10.12.2017
Сообщений: 558
05.07.2018, 21:24
это надо сделать через css
Цитата Сообщение от Mr Coder Посмотреть сообщение
- В случае если контейнер с классом .current первый либо последний по счету элемент в блоке .conteiner, добавляем свойство opacity: 0.5; соответствующей кнопке
Цитата Сообщение от Mr Coder Посмотреть сообщение
В случае если таб с классом .current ни первый и не последний, снимать полупрозрачность с соответствующей кнопки.
насчет кликов в css https://css-tricks.com/swappin... eader-id-4 и https://codeburst.io/how-to-pu... 1a8cb231c8
1
1030 / 682 / 297
Регистрация: 04.04.2013
Сообщений: 2,751
06.07.2018, 12:42  [ТС]
Сам скрипт кнопок можно как-то короче написать? Как избавится от дублирования кода...
0
249 / 162 / 68
Регистрация: 10.12.2017
Сообщений: 558
06.07.2018, 13:37
Лучший ответ Сообщение было отмечено Mr Coder как решение

Решение

та нормально, только что query выполняется на каждый чих, и если документ реально большой, будут проблемы с производительностью
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<script src="https://code.jquery.com/jquery-1.11.3.js"></script>
  <div class="nav-tabs">
    <div class="prev">prev</div>
    <div class="next">next</div>
  </div>
 
  <div class="container">
    <div class="tab current">tab1</div>
    <div class="tab">tab2</div>
    <div class="tab">tab3</div>
  </div>
 
<script>
  $(document).ready(() => {
    $('.next').click(function () {
      if (!$('.tab').last().hasClass('current')) move(true)
    });
    $('.prev').click(function () {
      if (!$('.tab').first().hasClass('current')) move(false)
    });
    function move(direction) {
      direction ? $('.current').removeClass('current').next().addClass('current') : $('.current').removeClass('current').prev().addClass('current');
    }
  })
</script>
у меня получилось это %)

Добавлено через 2 минуты
или даже так
JavaScript
1
2
3
4
5
6
7
8
9
10
<script>
  $(document).ready(() => {
    $('.next').click(function () {
      if (!$('.tab').last().hasClass('current')) $('.current').removeClass('current').next().addClass('current')
    });
    $('.prev').click(function () {
      if (!$('.tab').first().hasClass('current')) $('.current').removeClass('current').prev().addClass('current')
    });
  })
</script>
0
1030 / 682 / 297
Регистрация: 04.04.2013
Сообщений: 2,751
06.07.2018, 13:42  [ТС]
Благодарю за помощь!
0
249 / 162 / 68
Регистрация: 10.12.2017
Сообщений: 558
06.07.2018, 13:54
Mr Coder, ок, вот еще варик
JavaScript
1
2
3
4
  $(document).ready(() => {
    $('.next').click(() => !$('.tab').last().hasClass('current') && $('.current').removeClass('current').next().addClass('current'));
    $('.prev').click(() => !$('.tab').first().hasClass('current') && $('.current').removeClass('current').prev().addClass('current'));
  })
Добавлено через 5 минут
JavaScript
1
2
3
4
  $(document).ready(() => {
    $('.next').click(() => !$('.current').is(':last-child') && $('.current').removeClass('current').next().addClass('current'));
    $('.prev').click(() => !$('.current').is(':first-child') && $('.current').removeClass('current').prev().addClass('current'));
  })
1
1030 / 682 / 297
Регистрация: 04.04.2013
Сообщений: 2,751
06.07.2018, 16:12  [ТС]
Evgen1337, еще раз спасибо! А то с js/jquery у меня небольшие трудности.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.07.2018, 16:12
Помогаю со студенческими работами здесь

Плавный показ нескольких блоков при наведении
Есть список ul. В нем несколько li В каждом li есть блоки c id=&quot;top&quot;, &quot;meddle&quot; и &quot;bottom&quot; Мне надо указать что именно у текущего li при...

Показ/скрытие отдельных блоков на сайте по типу библиотеки
Доброго времени всем. Возникла проблема, с js и jquery сталкиваюсь не так часто, поэтому знаний для решения недостаточно. Весьма...

Добавить кнопки для перелистывания вперед/назад
И опять в очередной раз прошу помощи. Есть каталог в интернет магазине и при подробном виде какого-то изображения с описанием нужно...

Хочу убрать кнопки 'Назад/Вперёд' в браузере
Хочу убрать кнопки 'Назад/Вперёд' в браузере. Но только их. Остальные оставить. Или можно как-то обнулить свойство History, чтобы нельзя...

Добавить в слайдер две кнопки вперед и назад, которые будут перелистывать слайды.
Создал слайдер но нужно добавить две кнопки вперед и назад которые будут перелистовать слайды.Через функцию active


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru