Активируйте imageslider в зависимости от размера устройства

#javascript #jquery #html #css #twitter-bootstrap

#javascript #jquery #HTML #css #twitter-bootstrap

Вопрос:

Мой код на данный момент очень повторяющийся и очень длинный, что для меня не является чистым кодом.

Когда на большом устройстве:

 <div class="hidden-xs">
    <ul class="ul-class-name">
        <li><img src="" /></li>
    </ul>
</div>
  

И когда вы переходите к маленькому экрану / устройству, я реализую слайдер изображений jQuery, который использует JavaScript для запуска:

 <div class="visible-xs">
    <ul class="imageslider">
        <li><img src="" /></li>
    </ul>
</div>


$(document).ready(function(){   
    $('.imageslider').bxSlider({

    });
  

Содержимое внутри <ul> ‘s абсолютно одинаковое, поэтому для нескольких изображений код получается очень длинным.

Как я могу активировать imageslider ТОЛЬКО для мобильных устройств / xs, используя всего одну строку кода, чтобы объединить их оба вот так <ul class="ul-class-name imageslider"> ? Я хочу объединить 2 вместе, чтобы сэкономить на БОЛЬШОМ количестве кода.

Комментарии:

1. Вы хотите, чтобы этот слайдер был виден на больших / обычных экранах?

2. @Rami. Shareef Нет, на больших экранах я не хочу использовать слайдер изображений.

Ответ №1:

Добавьте это в свой css-код:

 @media screen and (min-width:761px){
     .imageslider{ visibility:hidden; 
}

@media screen and (max-width:760px){
      .imageslider{ visibility:hidden;
}

@media screen and (max-width:480px){
     .imageslider{ visibility:visible;
}

@media screen and (max-width:360px){
        .imageslider{ visibility:visible;
    }
  

Да, это правильный метод, вы можете использовать n-количество классов, добавив пробел;

Комментарии:

1. Похоже, что это помещает мои изображения в imageslider, даже когда экран полностью развернут, я хочу активировать imageslider только тогда, когда экран маленький

2. Если я добавлю это в свой код, то наверняка это скроет весь мой набор изображений на большом экране? Я все еще хочу отображать свои изображения на большом экране, просто не используя imageslider.

3. я только что применил видимость к вашему классу imageslider, это означает, что если ваш экран smaall, то он будет виден! создайте другой div для большего экрана и сделайте видимость скрытой при маленьком размере экрана!

4. Я хочу иметь возможность объединить их всего в 1 div. На данный момент мой код очень длинный и неэффективный, я хочу, чтобы изображения размещались всего в 1 div, где я мог бы активировать imageslider при небольшом размере экрана

Ответ №2:

Вы можете использовать media query для отображения слайдера, когда он отображается на экране мобильного устройства размером

@media only screen and (min-width:50px) and (max-width:500px) будет выполняться только тогда, когда ширина экрана составляет от 50 и 500 в пикселях

Вы можете объединить их в один контейнер, а затем переключать видимость между различными размерами экрана

 <div class="container">
    <ul class="ul-class-name">
        <li><img src="" /></li>
    </ul>
    <ul class="imageslider">
        <li><img src="" /></li>
    </ul>
</div>
  

CSS:

 .imageslider {
            display: none;
        }
    @media only screen and (min-width:50px) and (max-width:500px) {
        .imageslider {
            display: block;
        }
        .ul-class-name{
            display:none;
                }
    }
  

Комментарии:

1. Я уже делал это, используя свой исходный код, используя bootstrap hidden-xs и visible-xs , но для этого мне нужно иметь ДВА идентичных div с той лишь разницей, что один из них — imageslider, который «заменяет» другой div, когда экран маленький.

2. Что было бы внутри другого div, когда он имеет обычный размер экрана?

3. Вы можете объединить их в один контейнер, а затем переключать видимость между различными размерами экрана

4. Оба div на данный момент имеют точно такой же код, набор из 3 изображений. Я не хочу использовать два почти идентичных div, поскольку это неэффективно и оставляет лишний код. Итак, я хочу иметь 1 div, где изображения помещаются в imageslider только в том случае, если размер экрана мал