HTML 및/또는 Javascript를 사용하여 다음 페이지 앵커가 자동으로 작동하고 이동하는 것이 가능합니까?HTML 및/또는 JS로 다음 페이지 앵커로 이동하는 방법?
답변
당신이 알고있는 앵커/아이템과 관련 있다고 가정 할 때; jQuery를 사용하는 경우에는 "Next Sibling"에 대한 선택자가 있습니다. 여기에 문서를 찾을 수 :
http://api.jquery.com/next-siblings-selector/
나는 그냥 실행하고; 그렇지 않으면 나는 당신을 위해 전체 선택자를 만들 겠지만, 나중에 오늘 대답이 없으면 나는 함께 정리할 것입니다. 추가 읽기를 기반으로 사실 편집
, 나는 당신이 조금 더 많은 작업입니다 ... 페이지의 현재 스크롤 위치를 기준으로 다음 앵커 상대를 찾고 있습니다 quessing ...하지만하고 할 수있다 ... (다시, 나는 JS를 제공하기 위해 오늘 나중에하려고 노력할 것이다).
편집
이 100 %되지 않습니다 완료; 그러나 당신이 일반적인 아이디어를 얻을 정도로 충분해야합니다. 귀하의 페이지가 정적 인 내용이라면 페이지를 살펴보고 문서상의 모든 오프셋을 캐싱 할 것을 권장합니다. 요소 오프셋을 결정하는 것은 꽤 느릴 수 있습니다 (특히 구형 브라우저에서). 당신이 페이지는 동적 콘텐츠를 가지고 앵커의 위치가 문서 내에서 고정되지 않은 경우
var _anchorOffets = {};
$(document).ready(function() {
$("A[id]:not(A[href])").each(function (index, value) {
var $anchor = $(value);
_anchorOffets[$anchor.attr("id")] = $anchor.offset().top;
});
});
function getNextAnchorId() {
var $window = $(window);
var minOffset = $window.scrollTop() + $window.height();
for (var anchor in _anchorOffets) {
if (_anchorOffets[anchor] >= minOffset) {
return anchor;
}
}
return null;
}
대안으로, 당신은 당신의 페이지에 따라
function getNextAnchorId() {
var result = null;
$("A[id]:not(A[href])").each(function (index, value) {
var $anchor = $(value);
var $window = $(window);
var minOffset = $window.scrollTop() + $window.height();
if($anchor.offset().top >= minOffset) {
result = $anchor.attr("id");
return false;
}
});
return result;
}
에 가까운 무언가를 찾고있을 것입니다, 당신은해야 할 수도 있습니다 이 아이디어를 확장하십시오. 위의 두 가지 방법 모두 매우 기본적인 문서 레이아웃을 사용합니다. 상대/절대 positing 또는 scrollable div 등으로 계속해서 멋진 일이 있다면, 이것을 강화할 필요가 있습니다 (필자는 코드를 제공 할 수 있습니다). 지금은 기본적으로 페이지 앵커를 찾고 스크롤 위치를 기반으로 앵커를 결정하는 것으로 가정하고 있지만 또한 광범위하게 테스트하지 않았으므로 약간의 연마 작업이 필요할 수도 있습니다. D
죄송합니다. 질문에서 명확히하지 않았습니다. 현재 페이지 위치와 관련이 있습니다. JQuery에서 페이지 위치에서 현재 앵커를 가져올 수있는 것이 있습니까? (나는 아무것도 찾을 수 없지만 뭔가 놓칠 수 있습니다.) 편집 : 좋아, 고마워. 나는 내일까지 참을성있게 대답 할 수 없을지도 모른다 (나는 영국이다. 그래서 저녁까지 여기에오고있다). – hrickards
나는 당신이 무엇을 찾고 있는지 알고 있습니다. 당신이 아이디의를 알고 있다면 당신은 아마 캘거리 코더에 당신의 코멘트를 읽는 innerText와
해답을 가져 주셔서 감사합니다.하지만 그 일을 할 수있는 또 다른 방법을 찾아 냈습니다. – hrickards
하여 앵커를 얻을
function Next(){
var lnkNext = document.getElementById("yourNextAnchorId");
window.location.href = lnkNext.src;
}
당신이 아이디의를 모르는 경우 ...이 사용할 수 있습니다, 저는 믿습니다 - 나는 경우 올바르게 이해하십시오 - 현재 URL에서 앵커를 찾으려고합니다. window.locaiton.hash
으로이 작업을 수행 할 수 있습니다. 예 :
alert(window.location.hash);
감사합니다. 유일한 문제는 사용자가 아래로 스크롤하면 앵커가 URL에없는 것입니다. 현재 스크롤 위치에서 앵커를 찾을 수있는 유사한 코드입니까? – hrickards
페이지에서 다른 앵커를 클릭하지 않거나 페이지에서 특정 지점을 통과 할 때 어떻게 든 앵커 점프가 발생하지 않는 한 유감스럽게도 (필자는이 방법이 가능할지라도이 방법을 권장하지 않습니다 ... 오히려 사용자에 대한 예리한 경험). –
하지만이 사람이하는 것과 비슷한 방식으로 스크롤 위치를 확인할 수 있습니다. http://articles.sitepoint.com/article/preserve-page-scroll-position –
답변 모두 감사합니다,하지만 난 http://marcgrabanski.com/articles/scrollto-next-article-button-jquery를 구현하여이 작업을 얻을 수 있었다. 이것은 다음 앵커가 아닌 다음 헤더로 이동하지만 앵커를 사용하는 것이 중요하다면 쉽게 적응할 수 있다고 상상합니다.
흥미 롭습니다. 저기있는 jQuery 플러그인 : D 상당히 정교한 코드처럼 보이지만 트릭을 수행하는 한 충분히 좋습니다. 좋은 발견. –
- 1. PHP에서 JS로 HTML 보내기
- 2. 페이지 섹션으로 이동하는 방법
- 3. Silverlight 컨트롤을 HTML/CSS/JS로 변환하는 방법
- 4. Java Script를 사용하여 다음 HTML 요소로 이동하는 방법
- 5. emacs에서 latexmk를 호출하고 다음 오류로 이동하는 방법
- 6. 프레임 안의 다음 컨트롤로 이동하는 방법?
- 7. CSharp : 버튼을 눌러 다음 탭으로 이동하는 방법
- 8. VI에서 다음 묶음 괄호로 이동하는 방법
- 9. 키보드를 다음 텍스트 필드로 이동하는 방법
- 10. Xcode에서 다음 검색 결과로 이동하는 방법
- 11. 값이 앵커로 설정된 HTML 옵션 태그
- 12. 페이지 사이를 이동하는 동안로드를 표시하는 방법
- 13. .getJSON을 사용하여 이미지를 반환 한 다음 앵커로 래핑합니다.
- 14. 파일에서 html로 기본 브라우저를 시작한 다음 특정 앵커로 이동
- 15. html5/js로 이동하는 요소 (Apple Iphone 웹 사이트와 유사)
- 16. 빈 HTML 팝업을 JS로 열 수 있습니까?
- 17. js로 html 문서 크기를 얻는 방법은 무엇입니까?
- 18. 셀레늄에서 페이지 A에서 페이지 B로 초점을 이동하는 방법
- 19. 자바 스크립트를 통해 앵커로 이동
- 20. jquery.load 뒤에 앵커로 스크롤
- 21. 페이지 사이를 이동하는 방법을 효과적으로
- 22. 방법, HTML 페이지, 예를 들어
- 23. DOM 요소를 이동하는 방법
- 24. HTML : 페이지 중앙에 앵커가있는 링크를 만듭니다.
- 25. JS로 스케치
- 26. JavaScript - 명명 된 앵커로 이동
- 27. 페이지 로딩하기 전에 asp.net/ajax 컨트롤을 이동하는 방법?
- 28. asp.net 드롭 다운 목록 앵커로 돌아 가기
- 29. 3 초를 기다린 다음 다른 웹 페이지로 이동하는 방법
- 30. TextMate 질문 : 캐럿을 다음/이전 공백 행으로 이동하는 방법
다음으로 어떤 의미로? 현재 스크롤 량에 비례하여 가장 낮은 위치에 있습니까? –
예. 나는 html 전자 책에서 각 챕터 설정을 자신의 앵커와 부동 바닥 글로 사용하고 있는데 다음과 이전 챕터 버튼을 가질 수 있기를 원합니다. – hrickards
이것이 공정한 질문이라고 생각합니다. 이유가 확실하지 않은 이유는 무엇입니까? –