これは、フィールドセットを折りたたんでアンカーまでスムーズにスクロールするための私の作業コードですが、スクロールする前にジャンプすることがあり、実際にはスムーズではありません。
function smoothScrollTo(element) {
var thisTop = $($(element).parent()).offset().top;
$("html, body").animate({
scrollTop: thisTop + "px"
}, {
duration: 600
});
return false;
};
$(document).ready(function () {
$(".collapsible .collapsed").hide();
$(".collapsible legend").html(function () {
var scroll = $(this).parent().hasClass('scroll');
if (scroll == true) {
href = "#" + $(this).parent().attr('id');
} else {
href = "javascript:void(0)";
};
return '<a href="' + href + '">' + $(this).html() + '</a>';
}).click(function () {
$(this).parent().children('.content').slideToggle();
});
$(".collapsible.scroll legend").click(function () {
smoothScrollTo(this);
});
});
私は解決策を見つけました:e.preventDefault();
完全にスクロールする必要があります
最終的なコード:http://jsfiddle.net/eapo/v6URL/2/