jQuery가있는 요소로 스크롤하십시오
질문
이 입력 요소가 있습니다.
<input type="text" class="textfield" value="" id="subject" name="subject">
그런 다음 다른 텍스트 입력, TextAreas 등과 같은 다른 요소가 있습니다.
사용자가 #subject로 입력을 클릭하면 페이지가 좋은 애니메이션이있는 페이지의 마지막 요소로 페이지가 스크롤되어야합니다.그것은 아래로 스크롤되어 맨 위로가되지 않아야합니다.
페이지의 마지막 항목은 #submit이있는 제출 버튼입니다.
<input type="submit" class="submit" id="submit" name="submit" value="Ok, Done.">
애니메이션은 너무 빨리해서는 안되며 유체 여야합니다.
나는 최신 jQuery 버전을 실행하고 있습니다.나는 플러그인을 설치하지 않고 기본 jQuery 기능을 사용하여이를 달성하는 것을 선호합니다.
답변
ID 버튼이있는 버튼이있는 경우이 예제를 시도하십시오.
$("#button").click(function() {
$([document.documentElement, document.body]).animate({
scrollTop: $("#elementtoScrollToID").offset().top
}, 2000);
});
나는 jQuery 플러그인이없는 기사의 코드를 원활하게 스크롤합니다.그리고 나는 아래의 예에서 그것을 테스트했습니다.
<스크립트 src = "https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"> script>
이 간단한 스크립트를 사용합니다
if($(window.location.hash).length > 0){
$('html, body').animate({ scrollTop: $(window.location.hash).offset().top}, 1000);
}
해시 태그가 URL에서 발견되면 ScrollTo가 ID로 애니메이션을 찾으려면 정렬됩니다.해시 태그가 발견되지 않으면 스크립트를 무시하십시오.
답변
jQuery (document). 개선 (함수 ($) { $ ( 'a [href ^ = "#"]'). 바인드 ( 'Click.smoothScroll', 함수 (e) { e.preventDefault (); var target = this.hash, $ target = $ (대상); $ ( 'html, body'). stop (). 애니메이션 ({ 'scrolltop': $ target.offset (). 톱 40 }, 900, 'Swing', Function () { window.location.hash = 대상; }); }); });
최근댓글