Задать вопрос

Конфликт JS скрипта скроллинга по странице и Bootstrap?

Доброго времени суток.

Верстаю сайт на Bootstrap. При добавлении карусели возникает конфликт со скриптом скроллинга по странице.
При нажатии на ссылку слайдера перекидывает к якорю блока.
Скрипт скроллинга:
/**
 * scroll-menu
 */
!function ($) {

    var menu_selector = ".scroll-menu";

    function onScroll(){
        var scroll_top = $(document).scrollTop();
        $(menu_selector + " a").each(function(){
            var hash = $(this).attr("href");
            var target = $(hash);
            if (target.position().top <= scroll_top && target.position().top + target.outerHeight() > scroll_top) {
                $(menu_selector + " a.active").removeClass("active");
                $(this).addClass("active");
            } else {
                $(this).removeClass("active");
            }
        });
    }

    $(document).ready(function () {
        $(document).on("scroll", onScroll);
        $("a[href^=#]").click(function(e){
            e.preventDefault();
            $(document).off("scroll");
            $(menu_selector + " a.active").removeClass("active");
            $(this).addClass("active");
            var hash = $(this).attr("href");
            var target = $(hash);
            $("html, body").animate({scrollTop: target.offset().top}, 500, function(){
                window.location.hash = hash;
                $(document).on("scroll", onScroll);
            });
        });
    });

}(window.jQuery);

Скрипт ссылок карусели Bootstrap:
<div class="carousel-control">
    <a class="carousel-control-prev" href="#carousel-example-generic" role="button" data-slide="prev">Previous</a>
    <a class="carousel-control-next" href="#carousel-example-generic" role="button" data-slide="next">Next</a>
  </div>


Подскажите как решить проблему, спасибо!
  • Вопрос задан
  • 416 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 2
CRYPTOMUSK
@CRYPTOMUSK
Как вариант (да, он не идеален) можно после # поставить символ, типа - $("a[href^=#i]").click(function(e){
id'шники называть как id="iclass"
Ответ написан
@BLVST
Frontend. Открыт к предложениям.
href="#carousel-example-generic"
и
$("a[href^=#]").click(function(e){
нужно уточнить выборку ссылок, так как кнопки карусели попадают под a[href^=#]
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы