Как исправить Bootstrap мерцание / мигание / мигание карусели на Iphone при переходе к следующему элементу? (Включая видео пример) - PullRequest
1 голос
/ 21 июня 2020

Я работаю над веб-сайтом, на котором есть две карусели для размеров экрана мобильных устройств. Он отлично работает на ВСЕХ устройствах, кроме НЕКОТОРЫХ iPhone. Я понятия не имею, что вызывает проблему, и ни одно из устройств, на которых это происходит, не находится в радиусе 300 миль от меня, поэтому я даже не могу отладить его. Кто-нибудь сталкивался с этой проблемой или знает ее решение?

Опять же, важно отметить, что это происходит только на НЕКОТОРЫХ iPhone.

Вот видео, что происходит: https://youtu.be/8XGMKTpUUrI

Вот коды html, css и js соответственно.

$("#mobileCarousel").carousel({
  interval: 10000
})

$("#mobileCarousel").on("touchstart", function(event){
        var xClick = event.originalEvent.touches[0].pageX;
    $(this).one("touchmove", function(event){
        var xMove = event.originalEvent.touches[0].pageX;
        if( Math.floor(xClick - xMove) > 3 ){
            $(this).carousel('next');
        }
        else if( Math.floor(xClick - xMove) < -3 ){
            $(this).carousel('prev');
        }
    });
    $(".carousel").on("touchend", function(){
            $(this).off("touchmove");
    });
});

$(".carousel carousel-item").each(function(){
  var minPerSlide = 3;
  var nextElement = $(this).next();
  if(!nextElement.length){
    nextElement = $(this).siblings(":first");
  }
  nextElement.children(':first-child').clone().appendTo($(this));

  for (var i = 0; i < minPerSlide; i++) {
    nextElement = nextElement.next();
    if(!nextElement.length){
      nextElement = $(this).siblings(":first");
    }
    nextElement.children(":first-child").clone().appendTo($(this));
  }
});
@media only screen and (max-width: 767px) {
  .carousel-inner .carousel-item > div {
    display: none;
  }
  .carousel-inner .carousel-item > div:first-child {
    display: block;

  }
}
  <div class="container-fluid carousel-container d-lg-none d-xl-none">
    <div class="row">
      <div id="mobileCarousel" class="carousel slide w-100" data-ride="carousel">
        <div class="carousel-inner" role="listbox">
          <div class="carousel-item active">
            <div class="col-12 col-sm-8 col-md-6 offset-md-3 offset-sm-2">
              <div class="card index-card border-success">
                <div class="d-flex justify-content-center">
                  <img src="code icon.png" alt="">
                </div>
                <div class="d-flex justify-content-center">
                  <p class="pTagsForCardTitles">&ltHTML&gt and CSS3</p>
                </div>
                <div class="d-flex justify-content-center">
                  <p class="pTagsForCards d-flex justify-content-center">We design and program your website from scratch and to
                    your liking. No restrictive templates! Have the website you have always dreamt of for your business.</p>
                </div>
              </div>
            </div>
          </div>
          <div class="carousel-item">
            <div class="col-12 col-sm-8 col-md-6 offset-md-3 offset-sm-2">
              <div class="card index-card border-success">
                <div class="d-flex justify-content-center">
                  <img src="shield icon.png" alt="">
                </div>
                <div class="d-flex justify-content-center">
                  <p class="pTagsForCardTitles">Online Security</p>
                </div>
                <p class="pTagsForCards d-flex justify-content-center">Tropiweb supplies SSL security certificates to every
                page it produces. Keep your transactions and clients' sensitive informations out of the wrong hands.</p>
              </div>
            </div>
          </div>
          <div class="carousel-item">
            <div class="col-12 col-sm-8 col-md-6 offset-md-3 offset-sm-2">
              <div class="card index-card border-success">
                <div class="d-flex justify-content-center">
                  <img src="search icon.png" alt="">
                </div>
                <div class="d-flex justify-content-center">
                  <p class="pTagsForCardTitles">Search Engine Optimization</p>
                </div>
                <p class="pTagsForCards d-flex justify-content-center">We optimize your web-page's &ltmeta&gt, &ltalt&gt, and
                  &lttitle&gt tags in order to maximize the probability of potential clients finding you through any search engine</p>
              </div>
            </div>
          </div>
          <div class="carousel-item">
            <div class="col-12 col-sm-8 col-md-6 offset-md-3 offset-sm-2">
              <div class="card index-card border-success">
                <div class="d-flex justify-content-center">
                  <img src="responsive icon.png" alt="">
                </div>
                <div class="d-flex justify-content-center">
                  <p class="pTagsForCardTitles">Sleek and Responsive</p>
                </div>
                <p class="pTagsForCards d-flex justify-content-center">Your website is designed with cross-platform compatability as a priority.
                  No matter the web-browser or device (tablet, laptop, or phone) your page will always function properly.</p>
              </div>
            </div>
          </div>
          <div class="carousel-item">
            <div class="col-12 col-sm-8 col-md-6 offset-md-3 offset-sm-2">
              <div class="card index-card border-success">
                <div class="d-flex justify-content-center">
                  <img src="money icon.png" alt="">
                </div>
                <div class="d-flex justify-content-center">
                  <p class="pTagsForCardTitles">E-Commerce Solutions</p>
                </div>
                <p class="pTagsForCards d-flex justify-content-center">Run your online shop right from your very own website. Validate transactions,
                  keep stock of your merchandise, charge applicable sales taxes, and ship your product with no hassle.</p>
              </div>
            </div>
          </div>
        </div>
        <a class="carousel-control-prev" href="#mobileCarousel" role="button" data-slide="prev">
            <span>
              <img class="carousel-arrow-right" src="flecha-de.png" alt="">
            </span>
            <span class="sr-only">Previous</span>
          </a>
          <a class="carousel-control-next" href="#mobileCarousel" role="button" data-slide="next">
            <span>
              <img class="carousel-arrow-left" src="flecha-iz.png" alt="">
            </span>
            <span class="sr-only">Next</span>
          </a>
      </div>

    </div>
  </div>

Ответы [ 3 ]

0 голосов
/ 21 июня 2020

Я сделал зеркальную копию вашего сайта http://tropiweb.net/. Я редактировал ваш <div id="mobileCarousel"> Вот код: https://codepen.io/amarinediary/pen/pogedwy Это должно работать (не проверено). не стесняйтесь обращаться ко мне, если у вас возникнут другие проблемы. gl.

0 голосов
/ 24 июня 2020

Итак, после многих бессонных ночей и чертовой отладки выяснилось, что проблема заключалась в том, что я использовал старые версии Bootstrap и jQuery lmao. Как только я включил самые последние версии jQuery и Bootstrap, страница начала вести себя точно так, как ожидалось во всех версиях IOS.

0 голосов
/ 21 июня 2020

Совершенно уверен, что это вызвано использованием вами столбцов <div class="col-12 col-sm-8 col-md-6 offset-md-3 offset-sm-2"> внутри контейнера, который не имеет класса .row до этого. Вы используете класс row сразу после контейнера, на самом верху, который портит все элементы карусели.

Я сделал ручку, https://codepen.io/amarinediary/pen/pogedyj. Это должно быть то, что вы ищете, я только что удалил класс строки и столбцы. gl.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...