Пустые элементы с Совой Карусель, если вкладка с клавиатуры для ссылок внутри элементов

Я использую текущую стабильную версию Owl Carousel (1.3.2) для карусели отдельных элементов. У меня есть предыдущая и следующая кнопки включены.

У пары предметов в карусели есть ссылки, например <a href="page.html" class="button">Find out more</a>.

При использовании клавиатуры (в Chrome) для перемещения по веб-странице ссылки внутри карусели получают фокус, что замечательно. Однако если пользователь затем использует предыдущую и следующую кнопки с помощью мыши для перехода к следующему элементу карусели, он будет пустым. Все остальные элементы карусели после элемента, содержащего ссылку внутри него, также пусты. Нет контента вообще.

При осмотре карусели с использованием Chrome DevTools фактически создается впечатление, что карусель не движется, хотя ссылки внутри элемента сфокусированы и видны. кажется, это действительно запутано.

Кто-нибудь испытывал подобные вещи с Каруселью Сов (или любой другой каруселью) раньше? Могу ли я попытаться заставить карусель двигаться правильно, если ссылка внутри элемента получает фокус?

1 ответ

Добавление tabindex="0" к каждому элементу карусели помогло значительно улучшить навигацию клавиатуры. Кроме того, вместо использования по умолчанию предыдущий и следующий <div> Кнопки, которые производит Owl Carousel, я создал самостоятельно, используя <a> вместо. Информация о том, как это сделать, находится здесь: http://owlgraphic.com/owlcarousel/demos/custom.html

Эти обновления помогли сделать навигацию по Owl Carousel намного проще, используя только клавиатуру. Все слайды отображаются после каждого нажатия вкладки клавиатуры, и любые ссылки внутри слайда также получают фокус. Также хорошо работает вкладка в обратном направлении - слайды отображаются в обратном порядке по мере того, как пользователь вкладывает в обратном направлении.

Единственная проблема, которая остается, заключается в том, что карусель не "движется" должным образом. Т.е. нумерация страниц не обновляется. Поэтому, если пользователь должен будет нажимать кнопки "Далее" или "Предыдущий" после того, как вкладки где-то посередине ползунка, будут отображаться пустые слайды (как упоминалось в моем исходном запросе). Тем не менее, я думаю, что с улучшенной навигацией по клавиатуре, это не проблема, так как пользователи теперь могут просматривать весь контент - они не пропускают ничего, используя только клавиатуру.

HTML:

<div class="slider-wrapper">

    <div class="owl-nav">
        <a href="#" class="prev">Previous</a>
        <a href="#" class="next">Next</a>
    </div>

    <div class="slider">

        <div tabindex="0">
            <h1>Content</h1>
            <p>Content</p>
        </div>

        <div tabindex="0">
            <h1>Content</h1>
            <p><a href="page.html" class="button">Find out more</a></p>
        </div>

        <div tabindex="0">
            <h1>Content</h1>
        </div>

    </div>

</div>

JQuery:

var owl = $(".slider");

owl.owlCarousel({
    singleItem: true,
    theme: "slider",
    mouseDrag: false,
    slideSpeed : 750
});   

$(".owl-nav .next").click(function(e){
    e.preventDefault();
    owl.trigger('owl.next');
});

$(".owl-nav .prev").click(function(e){
    e.preventDefault();
    owl.trigger('owl.prev');
});
Другие вопросы по тегам