모든 하위 페이지가 포함 된 여러 (html5) 섹션이있는 1 페이지 웹 사이트를 만들고 싶습니다. 고정 탐색이 있습니다.jQuery 한 페이지 웹 사이트 스크롤/해시 문제
탐색 링크를 클릭 할- (. 예를 들어 #home에 대한-나 #) 나는 그것이 원활
- 내가 URL의 해시를 사용하고자하는 섹션으로 스크롤하려면 : 다음 요구 사항의 커플 like domain.com/#about-me
- 사용자가 브라우저에서 뒤로/앞으로 버튼을 사용할 수있게하고 사용하면 해당 섹션으로 부드럽게 스크롤합니다.
- URL domain.com/#about -me이 바로로드됩니다. 정상적으로 # about-me 섹션으로 부드럽게 스크롤하고 싶습니다.
나는 이것을 수일 동안 파악하려고 노력해 왔습니다. 나는 BBQ 플러그인과 같은 다른 플러그 인과 처음부터 이것을 시도했다. 나는 그것을 이해할 수 없었다. 그러나 나는 조금 배웠다. 그래서 나는 다시 처음부터 다시 시작하기로 결정했다. 가볍기 때문에 플러그인없이 직접 작성하는 것을 선호합니다. 그러나 플러그인을 사용하는 데는 아무런 문제가 없습니다. 플러그인을 직접 작성하는 것은 번거롭기 만합니다.
<nav>
<ul>
<li><a href="#home">Home</a></li>
<li><a href="#about-me">About me</a></li>
<li><a href="#portfolio">Portfolio</a></li>
<li><a href="#contact">Contact</a></li>
</ul>
</nav>
및 섹션 : JQuery와 부분에 대한 지금
<div id="content-wrapper">
<section id="home">
<div>content...</div>
</section>
<section id="about-me">
<div>content...</div>
</section>
etc...
</div>
:
// Function to check if section exists
function isSection(section){
if($('section'+section).length > 0){
return true;
}
else{
return false;
}
}
// Scroll function
function scrollToSection(section){
var offset = $(section).offset().top;
$('html, body').stop().animate({
scrollTop: offset
}, 600);
}
// The Click() function
$('nav ul a').click(function(){
var section = $(this).attr('href');
if(isSection(section)){
scrollToSection(section);
}
})
지금 당장 내가 건너
는 지금은, 간단한 탐색이 HTML을 문제. 해시는 변경되지만 순간적으로 섹션으로 이동하고 분할 된 초 후에 어쨌든 (이전 시작 위치에서) 스크롤하는 애니메이션을 수행합니다. preventDefault()를 사용하면 완벽하게 부드러운 애니메이션을 만들 수 있지만 해시는 변경되지 않습니다. 해시를 변경하여 브라우저 기록이 작동하도록하는 것이 좋지만 기록 버튼을 누르면 스크롤이 발생하지 않습니다.
여기에서 가장 중요한 요구 사항을 염두에두고 어떻게해야합니까? 모든 권장 사항 및 예제가 바람직합니까?
나는이 모든 것에 대해 BBQ hashchange 플러그인이 잘 작동한다고 들었다. 어떻게 구현할 수 있습니까? 이 문서는 제 요구 사항을 충분히 고려하지 않았습니다.
좋은 제안을 //caniuse.com/hashchange. 그러나 이것은 같은 문제를 야기합니다. 그것은 즉시 섹션으로 점프하고 나중에 스플릿 애니메이션은 어쨌든 스크롤 애니메이션을 수행합니다. – Bob
@Bob 애니메이션이 완성되면 해시를 변경하는 것으로 해결했다고 생각합니다. – Adam
아, 예를 들어 주셔서 감사합니다! 나는 이상한 점프 문제를 일으킨 것으로 생각되는 거짓을 반환하지 않았다. preventDefault()가 처리 할 것이라고 생각했습니다. 그러나 그 부분은 다뤄집니다! 감사! 요구 사항 3과 4는 여전히 나에게 수수께끼입니다. – Bob