Owl carousel не отображает динамическое содержимое на экране

#javascript #jquery #owl-carousel

#javascript #jquery #owl-carousel

Вопрос:

Я использую owl -carousel для динамического отображения содержимого для отзыва на веб-сайте. Но я не могу отобразить owl slider на экране. Я имею в виду, что после создания приложения на устройстве слайдер не отображается, кто-нибудь может подсказать мне, что мне нужно сделать и что не так в моем приведенном ниже коде. Пожалуйста, помогите мне….Спасибо.

 <style>
    #home-testimonial-section {
        background-color: #FFFFFF !important;
    }
    
    .grabbable {
        cursor: col-resize;
        /* fallback if grab cursor is unsupported */
        cursor: grab;
        cursor: -moz-grab;
        cursor: -webkit-grab;
    }
    /* (Optional) Apply a "closed-hand" cursor during drag operation. */
    
    .grabbable:active {
        cursor: grabbing;
        cursor: -moz-grabbing;
        cursor: -webkit-grabbing;
    }
    
    .testimonial {
        background: #0000000a;
        padding: 20px;
        position: relative;
    }
    
    .testimonial .title {
        font-size: 20px;
        font-weight: 500;
        color: #333;
        text-transform: uppercase;
        margin-top: 0;
    }
    
    .testimonial .description {
        font-size: 16px;
        color: #000;
        line-height: 30px;
        padding: 10px;
        min-height: 250px;
    }
    
    .testimonial_content {
        position: relative;
        padding: 20px 34px;
    }
    
    .testimonial .pic {
        display: inline-block;
        overflow: hidden;
        padding-left: 20px;
    }
    
    .testimonial .pic img {
        height: 50px;
        width: auto;
        position: inherit;
        bottom: 0;
    }
    
    .testimonial .name {
        font-size: 16px;
        font-weight: 600;
        margin-right: 45px;
        float: right;
        text-transform: capitalize;
    }
    
    .testimonial .post {
        font-size: 12px;
        color: rgb(175, 170, 170);
        line-height: 24px;
    }
    
    .testimonial .ratingspn {
        font-size: 14px;
        line-height: 24px;
    }
    
    .testimonial .rating {
        padding: 0;
        margin: 0;
        list-style: none;
        float: right;
    }
    
    .testimonial .rating li {
        display: inline-block;
        color: #ffc207;
    }
    
    .owl-theme .owl-controls {
        margin-top: 20px;
    }
    
    .owl-theme .owl-controls .owl-page span {
        background: #000000;
    }
    
    @media only screen and (max-width: 760px) {
        .testimonial_content {
            padding-left: 20px;
        }
    }
    
    @media only screen and (max-width: 480px) {
        .testimonial .rating {
            padding: 0;
        }
        .testimonial .rating li {
            display: inline;
        }
    }
</style>

<script type="text/javascript">
    function owlsliderfuction() {
        $("#testimonial-slider").owlCarousel({
            items: 3,
            loop: true,
            margin: 10,
            autoplay: true,
            autoplayTimeout: 1000,
            autoplayHoverPause: true,
            responsive: {
                0: {
                    items: 1,
                },
                600: {
                    items: 2,

                },
                1000: {
                    items: 3,
                }
            }
        });
    }

    function AlhtestimonialFunction() {
        var xhr = new XMLHttpRequest();
        xhr.withCredentials = true;

        xhr.addEventListener("readystatechange", function() {
            if (this.readyState === 4) {
                //console.log(this.responseText);
                var reviewdatatext = this.responseText;
                console.log(reviewdatatext);
                // Converting JSON object to JS object
                var obj = JSON.parse(reviewdatatext);
                // Converting JSON object to JS object
                console.log(obj);
                var reviewarray = obj.content;
                console.log(reviewarray);
                var arrlength = reviewarray.length;
                if (arrlength >= 1) {
                    var testimonialBolck1 = '<div class="demo">'  
                        '<div class="sqs-block-content"> <h1 style="text-align:center;white-space:pre-wrap;"> What Our Customers Say</h1></div>'  
                        '<br>'  
                        '<br>'  
                        '<div class="grabbable">'  
                        '<div class="row">'  
                        '<div class="col-md-12">'  
                        '<div id="testimonial-slider" class="owl-carousel owl-theme">';
                    var testimonialBolckvrr = '';
                    for (i = 0; i < arrlength; i  ) {
                        // convert unix timestamp to milliseconds
                        var timestampi = reviewarray[i].dateCollected
                        var ts_msi = timestampi * 1000

                        // initialize new Date object
                        var date_obi = new Date(ts_msi)

                        // year as 4 digits (YYYY)
                        var yeari = date_obi.getFullYear()
                            // month as 2 digits (MM)
                        var monthi = ("0"   (date_obi.getMonth()   1)).slice(-2)

                        // date as 2 digits (DD)
                        var datei = ("0"   date_obi.getDate()).slice(-2)
                        var original_datei = datei   "/"   monthi   "/"   yeari;

                        var testimonialBolckia = '<div id="testimonial" class="testimonial">'  
                            '<div class="testimonial_content">'  
                            '<span class="post">'   original_datei   '</span>'  
                            '<span class="ratingspn"></span>'  
                            '<ul class="rating">';
                        var rating = reviewarray[i].rating;
                        if (rating === 5) {
                            var testimonialBolckib = '<li class="fa fa-star"></li>'  
                                '<li class="fa fa-star"></li>'  
                                '<li class="fa fa-star"></li>'  
                                '<li class="fa fa-star"></li>'  
                                '<li class="fa fa-star"></li>';
                        } else if (rating === 4.75 || rating === 4.5 || rating === 4.25) {
                            var testimonialBolckib = '<li class="fa fa-star"></li>'  
                                '<li class="fa fa-star"></li>'  
                                '<li class="fa fa-star"></li>'  
                                '<li class="fa fa-star"></li>'  
                                '<li class="fa fa-star-half"></li>';
                        } else {
                            var testimonialBolckib = '<li class="fa fa-star"></li>'  
                                '<li class="fa fa-star"></li>'  
                                '<li class="fa fa-star"></li>'  
                                '<li class="fa fa-star"></li>';
                        }

                        var testimonialBolckic = '</ul>'  
                            '</div>'  
                            '<p class="description">'   reviewarray[i].body   '</p>'  
                            '<h3 class="name">'   reviewarray[i].author   '</h3>'  
                            '<div class="testimonial-content">'  
                            '<div class="pic">'  
                            '<img src="https://alh-res.cloudinary.com/image/upload/v1583886927/Development demo/Logo-TheFork-vertical-green-background.png" alt="">'  
                            '</div>'  
                            '</div>'  
                            '</div>';
                        var testimonialBolcki = testimonialBolckia   testimonialBolckib   testimonialBolckic;
                        testimonialBolckvrr = testimonialBolckvrr   testimonialBolcki;
                        console.log(testimonialBolckvrr);

                    }
                    var testimonialBolck3 = '</div>'  
                        '</div>'  
                        '</div>'  
                        '</div>'  
                        '</div>';
                    var testimonialBolck = testimonialBolck1   testimonialBolckvrr;

                    document.getElementById("reviews").innerHTML = testimonialBolck;
                } else {
                    document.getElementById("reviews").style.display = "none";
                }

            }
        });

        xhr.open("GET", "https://revinate-endpoint-url.herokuapp.com/reviews/136522/");

        xhr.send();
    }
    $(document).ready(function() {
        owlsliderfuction();
        AlhtestimonialFunction();
    });
</script>

<!-- div to display the owl slider -->
<div id="reviews"></div>
  

Ответ №1:

попробуйте это:

 $(document).ready(function () {
    AlhtestimonialFunction();
    
    function checkOwlcarousel() {
        setTimeout(function () {
            if ($('.owl-carousel .active').is(':visible')) {
                owlsliderfuction();
            } else {
                checkOwlcarousel();
            }
        }, 250);
    }
    checkOwlcarousel();
});
  

Поскольку Javascript работает только один раз при открытии страницы, мы должны синхронизировать доступ к данным с запуском слайдера

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

1. Привет, Эм, спасибо за вышеупомянутое предложение. Как и было предложено, я обновил свой код, и содержимое отзыва начало отображаться на странице, однако owl carousel все еще не работает static1.squarespace.com/static/5dce3721dde7e722bbc8fd15/t /…

2. Возможно ли получить доступ к вашему устройству с помощью AnyDesk?

3. Извините за предоставление заблокированного URL (изображение на внутреннем тестовом сайте) alh-res.cloudinary.com/image/upload/v1600812875 / … дайте мне знать, сможете ли вы увидеть скриншот сейчас.

4. Да, теперь оно появилось

5. $(документ). готово(функция () { AlhtestimonialFunction(); функция checkOwlcarousel() { setTimeout(функция () { owlsliderfuction(); }, 1000); } checkOwlcarousel(); });