Прокрутка содержимого на право и лево

  • 4 Ответов
  • 367 Просмотров

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

*

Ildan37

  • Захожу иногда
  • **
  • 14
  • 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

  • Группа развития
  • *****
  • 6426
  • 733
  • Рисую дизайны
Непонятно, чего вы хотите добиться. Покажите рисунком пожалуйста.

Вместо этого

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

Можно

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

Писать каждый раз jQuery(document).ready(function() не обязательно. Зачем плодить одинаковый код? Вообще, ощущение, что тут в цикле всё можно сделать компактнее. Только задачу чётче опишите и проиллюстрируйте.
Бесплатно консультирую по дизайну и вёрстке (только в личку сердечно прошу не стучать). Платно делаю дизайн, вёрстку и темплейты для Joomla. Работаю только за деньги. За большие. И долго. Но качественно.
---------------------------------------------------------
xmpp:joomla@conference.jabber.ru - наша конфа!

*

Ildan37

  • Захожу иногда
  • **
  • 14
  • 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, 21:03:30 от Ildan37 »

*

Shustry

  • Группа развития
  • *****
  • 6426
  • 733
  • Рисую дизайны
Судя по скрину, тут не так быстро самому сделать, хотя и можно.
Длинна элементов разная. Следовательно, нужно сперва посчитать кол-во объектов, которые входят целиком в контейнер для конкретного разрешения. Потом остаток поделить на равные части и прибавить к объектам. Всё это собрать в функцию и вызывать каждый раз по клику на кнопку. Либо заранее, при загрузке уже поделить всех на группы объектов с «хвостиками». Сумма длин каждой группы равна длине контейнера. Это основная задача. Собственно, дальше берёте любой готовый сприпт слайдера и подключаете.
Бесплатно консультирую по дизайну и вёрстке (только в личку сердечно прошу не стучать). Платно делаю дизайн, вёрстку и темплейты для Joomla. Работаю только за деньги. За большие. И долго. Но качественно.
---------------------------------------------------------
xmpp:joomla@conference.jabber.ru - наша конфа!

*

robert

  • Профи
  • ********
  • 4004
  • 371
Не совсем понял. Вы хотите при клике "налево" или "направо" двигать производителей в соответствующую сторону, как в слайдере?
  • Не будь паразитом, сделай что-нибудь самостоятельно!
  • В личке и по Skype не даю советов.