Я использую scrollmagic.io и делаю якорное навигационное меню.Я следую этому учебнику .Свиток работает!За исключением того, что он прокручивал назад к началу, а не к странице, на которой он должен быть.
Вот мой код:
// init controller
var controller = new ScrollMagic.Controller();
// animate scroll instead of a jump
controller.scrollTo(function(target) {
console.log('scroooooll');
console.log('target = '+target); // THIS IS PRINTING 0
console.log(typeof(target));
/* Commenting out what it should do for simplicity. */
});
// scroll action when you click the nav links
$(document).on('click', 'a[href^=#]', function(e) {
var id = $(this).attr('href'); // get the href of clicked link
if ($(id).length > 0) { // not empty links
e.preventDefault(); // prevent normal link action
// this is the function call
console.log('click');
console.log('id = '+id); // IT PRINTS CORRECT HERE
console.log(typeof(id));
controller.scrollTo(id); // scroll on click
// update the URL
if (window.history && window.history.pushState) {
history.pushState("", document.title, id);
}
}
});
А вот вывод моего консольного журнала:
click
id = #{the-href-value}
string
scroooooll
target = 0
number
Мой Javascript довольно ржавый, но мне это не кажется правильным.Почему он изменяет мою переменную со строки на 0, когда я передаю ее в качестве параметра?