Я видел следующий фрагмент кода на нескольких страницах. Я понимаю, что он используется для плавной прокрутки в соответствии с разными идентификационными тегами id. Тем не менее, я все еще немного смущен о том, что/как работает замена регулярного выражения, this
и hash
.JavaScript Smooth Scroll Explained
Что именно происходит с этим частым фрагментом кода?
$(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;
}
}
});
});
Хорошая неисправность кода. – Bowersbros
Эй, если это все еще будет работать в 2017 году? – Elric
Привет @Elric, я не писал код, но я действительно проверял, что он все еще работает в 2017 году. – Jack