0 Пользователей и 1 Гость просматривают эту тему.
  • 4 Ответов
  • 1063 Просмотров
*

Ildan37

  • Осваиваюсь на форуме
  • 14
  • 0 / 0
Здравствуйте, есть задача выводить определённое количество "Производителей"(заданное для каждого размера экрана разное) с возможностью "перелистывания"(не знаю как это назвать).
Например:
Код: html4strict

<div class="manufacturer2" id="manufacturer2">
            <button style="float: left;" type="button" id="buttonLeft2" class="btn btn-default"><span class="glyphicon glyphicon-chevron-left"></span></button>
                <div class="manu2" id="manu2">
<div id="man-2-0" class="man-2-0" style="display: block; visibility: visible;">               
                <a style="float: left; padding: 5px;" href="/" class="man">Pros1</a>                
                <a style="float: left; padding: 5px;" href="/" class="man">Pros2</a>                
                <a style="float: left; padding: 5px;" href="/" class="man">Pros3</a>                
                <a style="float: left; padding: 5px;" href="/" class="man">Pros4</a>
         </div>
<div id="man-2-1" class="man-2-1" style="display: none; visibility: hidden;">               
                <a style="float: left; padding: 5px;" href="/" class="man">Pros5</a>                
                <a style="float: left; padding: 5px;" href="/" class="man">Pros6</a>                
                <a style="float: left; padding: 5px;" href="/" class="man">Pros7</a>
           </div>
            </div>
                        <button type="button" id="buttonRight2" class="btn btn-default"><span class="glyphicon glyphicon-chevron-right"></span></button>
               <input type="button" class="btn btn-default" value="Привет мир" onclick="location.href='index.php?option=com_virtuemart&amp;view=manufacturer'">             </div>

<div class="manufacturer3" id="manufacturer3">
            <button style="float: left;" type="button" id="buttonLeft3" class="btn btn-default"><span class="glyphicon glyphicon-chevron-left"></span></button>
                <div class="manu3" id="manu3">
<div id="man-3-0" class="man-3-0" style="display: block; visibility: visible;">               
                <a style="float: left; padding: 5px;" href="/" class="man">Pros1</a>                
                <a style="float: left; padding: 5px;" href="/" class="man">Pros2</a>     
                <a style="float: left; padding: 5px;" href="/" class="man">Pros3</a>                
                <a style="float: left; padding: 5px;" href="/" class="man">Pros4</a>                
                <a style="float: left; padding: 5px;" href="/" class="man">Pros5</a>
                <a style="float: left; padding: 5px;" href="/" class="man">Pros6</a>
        </div>
<div id="man-3-1" class="man-3-1" style="display: none; visibility: hidden;">               
                <a style="float: left; padding: 5px;" href="/" class="man">
Pros7</a>
        </div>
            </div>
                                    <button type="button" id="buttonRight3" class="btn btn-default"><span class="glyphicon glyphicon-chevron-right"></span></button>
               <input type="button" class="btn btn-default" value="Привет мир" onclick="location.href='index.php?option=com_virtuemart&amp;view=manufacturer'">             </div>
Пояснение: в стилях для "не выбранных" блоков стоит     display: none;  visibility: hidden;
Код: javascript
jQuery(document).ready(function(){
    jQuery("#buttonLeft2").click(function(){
        jQuery("#manu2 div:first-child").attr("style", "visibility: hidden; display: none;")
        jQuery("#manu2 div:last-child").prependTo("#manu2");
        jQuery("#manu2 div:first-child").attr("style", "visibility: visible; display: block;")
    });
});

jQuery(document).ready(function(){
    jQuery("#buttonRight2").click(function(){
        jQuery("#manu2 div:first-child").attr("style", "visibility: hidden; display: none;")
        jQuery("#manu2 div:first-child").appendTo("#manu2");
        jQuery("#manu2 div:first-child").attr("style", "visibility: visible; display: block;")
    });
});

jQuery(document).ready(function(){
    jQuery("#buttonLeft3").click(function(){
        jQuery("#manu3 div:first-child").attr("style", "visibility: hidden; display: none;")
        jQuery("#manu3 div:last-child").prependTo("#manu3");
        jQuery("#manu3 div:first-child").attr("style", "visibility: visible; display: block;")
    });
});

jQuery(document).ready(function(){
    jQuery("#buttonRight3").click(function(){
        jQuery("#manu3 div:first-child").attr("style", "visibility: hidden; display: none;")
        jQuery("#manu3 div:first-child").appendTo("#manu3");
        jQuery("#manu3 div:first-child").attr("style", "visibility: visible; display: block;")
    });
});

На данный момент всё работает, но красота кода оставляет желать лучшего. Собственно вопрос. Какими еще способами еще можно сделать подобное, что бы ссылки не дублировались или просто по другому всё организовать?(Делал это первый раз)
*

Shustry

  • Гуру
  • 6434
  • 745 / 3
Непонятно, чего вы хотите добиться. Покажите рисунком пожалуйста.

Вместо этого

Код: javascript
jQuery("#manu2 div:first-child").attr("style", "visibility: hidden; display: none;")

Можно

Код: javascript
jQuery("#manu2 div").first().hide();

Писать каждый раз jQuery(document).ready(function() не обязательно. Зачем плодить одинаковый код? Вообще, ощущение, что тут в цикле всё можно сделать компактнее. Только задачу чётче опишите и проиллюстрируйте.
*

Ildan37

  • Осваиваюсь на форуме
  • 14
  • 0 / 0
Писать каждый раз jQuery(document).ready(function() не обязательно. Зачем плодить одинаковый код? Вообще, ощущение, что тут в цикле всё можно сделать компактнее. Только задачу чётче опишите и проиллюстрируйте.
Я понимаю, просто писал этот код вчера ночью(спать хотелось), поэтому я просто копипастом его сделал.
Задача: сделать разное отображение одного и того же набора элементов(без повторений) для разных разрешений экрана.
https://img-fotki.yandex.ru/get/4135/178621416.0/0_127cdf_c6a88ef1_orig.jpg
https://img-fotki.yandex.ru/get/4602/178621416.0/0_127ce0_d9078b7d_orig.jpg
« Последнее редактирование: 24.11.2015, 19:03:30 от Ildan37 »
*

Shustry

  • Гуру
  • 6434
  • 745 / 3
Судя по скрину, тут не так быстро самому сделать, хотя и можно.
Длинна элементов разная. Следовательно, нужно сперва посчитать кол-во объектов, которые входят целиком в контейнер для конкретного разрешения. Потом остаток поделить на равные части и прибавить к объектам. Всё это собрать в функцию и вызывать каждый раз по клику на кнопку. Либо заранее, при загрузке уже поделить всех на группы объектов с «хвостиками». Сумма длин каждой группы равна длине контейнера. Это основная задача. Собственно, дальше берёте любой готовый сприпт слайдера и подключаете.
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Не совсем понял. Вы хотите при клике "налево" или "направо" двигать производителей в соответствующую сторону, как в слайдере?
Не будь паразитом, сделай что-нибудь самостоятельно!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Прокрутка слайдрера в scrollify?

Автор warlocksp

Ответов: 1
Просмотров: 379
Последний ответ 27.09.2021, 12:58:50
от warlocksp
CSS - Прокрутка контента во всплывающем окне

Автор john.deff

Ответов: 2
Просмотров: 1392
Последний ответ 13.09.2016, 20:20:48
от john.deff
Плавная прокрутка страницы колесиком

Автор Lex9207

Ответов: 12
Просмотров: 7544
Последний ответ 06.11.2015, 09:05:47
от Alldar
Слайдер изображений: циклическая прокрутка

Автор AlekVolsk

Ответов: 16
Просмотров: 5594
Последний ответ 07.11.2014, 22:38:06
от Fedor Vlasenko
[Решено] Прокрутка на JQ

Автор AlekVolsk

Ответов: 11
Просмотров: 1746
Последний ответ 26.10.2014, 18:18:18
от AlekVolsk