私はIDにスクロールするとすぐにアドレスバーのURLを変更することはできますか?または、複数のIDを持つ長い文書を持ち、アドレスバーにURLが変更されたときに、新しいIDを押したときにフォームを下から上にスクロールすることもできます。idを手動でスクロールして上にスクロールしてもurlを変更しますか?
私はChange url when manually scrolled to an anchor?
を使用しますが、ときに、スクロール下から上へ、これは動作しません。事前に
$(function() {
var currentHash = "#";
$(document).scroll(function() {
$('.block').each(function() {
var top = window.pageYOffset;
var distance = top - $(this).offset().top;
var hash = $(this).attr('id');
// 30 is an arbitrary padding choice,
// if you want a precise check then use distance===0
if (distance < 30 && distance > -30 && currentHash != hash) {
window.location.hash = (hash);
currentHash = hash;
}
});
});
});
body {
margin: 0px;
}
div {
height: 900px;
text-align: center;
padding: 15px;
background-color: #00f;
}
div:nth-child(even) { background: #ccc; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js"></script>
<div class="block" id="one">Block 1</div>
<div class="block" id="two">Block 2</div>
<div class="block" id="three">Block 3</div>
<div class="block" id="four">Block 4</div>
<div class="block" id="five">Block 5</div>
感謝。あなたのコメントの後
非常に可能ですが、関連するソースコードはどこにあり、どの部分がそうでないようですかワーキング?あなたはもっと具体的になることができますか?私たちはあなたがこれを達成しようとしている方法を見ることができますか?あなたの試みを見ることなく、ソリューションを提供する前に問題を説明することは不可能です。誰かがあなたのためにこれを書いてくれることを期待しない限り.... – NewToJS
これは悪いUX(ユーザーエクスペリエンス)のようです。 http://stackoverflow.com/a/14660655/3022387は「ジャンプを引き起こしている」と言います。アンカーの近くにリンクが表示されるだけで、URLを使用してページのその場所にリンクすることができるのはなぜですか。ピルクローを使用しますか? ¶ – flowtron
もう一度@NewToJSを確認してください。 – omkar