2016-08-03 10 views
0

У меня this website, и есть конфликт между Smoothscroll javascript и лайтбокс.SmoothScoll и lightbox conflict

Вот сценарий для прокрутки

$(function() { 
    $('a[href*="#"]:not([href="#"])').click(function() { 
     if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') && location.hostname == this.hostname) { 
     var target = $(this.hash); 
     target = target.length ? target : $('[name=' + this.hash.slice(1) +']'); 
     if (target.length) { 
      $('html, body').animate({ 
      scrollTop: target.offset().top 
      }, 1000); 
      return false; 
     } 
     } 
    }); 
    }); 

Как я могу решить эту проблему? Как я могу сделать лайтбокс и гладкую прокрутку одновременно?

+0

Куда вы начинаете использовать эту кнопку? И в какой момент вы получаете этот конфликт? –

+0

Всякий раз, когда я нажимаю на четыре изображения в разделе «Персонажи», лайтбокс просто больше не работает, как только я добавил код для Smoothscroll –

ответ

0

Я не эксперт JQuery и не знаю, насколько гибкими селекторы, но вот некоторые предложения:

Suggestion 1:

Я не думаю, что этот селектор:

a[href*="#"]:not([href="#"]) 

будет работать должным образом. Вы выбираете все элементы href, если они не имеют значения атрибута «#». Я думаю, что этот случай не охватывает ссылки с другим значением, как у вас: «# queen-bee». Я считаю, что вы используете другой селектор.

Предложение 2:

if (target.length) { 
    $('html, body').animate({ 
     scrollTop: target.offset().top 
    }, 1000); 

    return false; // Try removing the return 
} 

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

+0

Большое вам спасибо! Второе решение отлично поработало! –

+0

На самом деле это проблема, вот ссылка: http://niclamarino.altervista.org/Layouts/Beeline/5.html#about Всякий раз, когда вы нажимаете на ссылки в меню, у вас есть экран на 0,5 секунды раздела. Это происходит при удалении «return false», есть ли у вас какое-либо представление о том, как я могу решить эту проблему? –

+0

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