현재 다음 코드를 사용하여 스 와이프 감지 스크립트의 콜백 상단으로 자동 스크롤합니다. 애니메이션 중에 화면을 클릭 할 때 애니메이션을 취소하는 기능을 추가하고 싶습니다.클릭시 상단 스크롤을 취소하십시오.
$('body,html').animate({
scrollTop: 0
}, 300);
어떻게하면 취소 할 수 있습니까? 어쩌면이 같은
현재 다음 코드를 사용하여 스 와이프 감지 스크립트의 콜백 상단으로 자동 스크롤합니다. 애니메이션 중에 화면을 클릭 할 때 애니메이션을 취소하는 기능을 추가하고 싶습니다.클릭시 상단 스크롤을 취소하십시오.
$('body,html').animate({
scrollTop: 0
}, 300);
어떻게하면 취소 할 수 있습니까? 어쩌면이 같은
애니메이션을 중지 stop
방법을 사용합니다. jumpToEnd
매개 변수에 false
을 전달해야 사용자가 자동으로 화면 상단으로 이동하지 않습니다.
$(function() {
//Substitute with whatever kicks off this scroll in your app.
$('button').on('click', function(evt) {
$('body,html').animate({
scrollTop: 0
}, 3000);
evt.stopPropagation();
});
$(window).on('click', function(evt) {
$('body,html').stop();
});
});
라이브 예를 - 편집가 http://jsfiddle.net/FcLbH/2/
- @ AVL의 의견에 따라 stop
에 매개 변수를 제거.
음, 이것은 내가 말한 것입니다 : http://jsfiddle.net/DJ8Re/ – AvL
데모의 버튼을 클릭하면 예제가 전파를 멈추지 않습니다. 당신의 대답에서 당신은 자동적으로 사용자가 화면의 맨 위로 이동하는 것을 막기 위해'''''jumpToEnd'''에'''false''를 전달하지 않습니다. –
아마도 내가 틀 렸습니다. 그러나 큐에 더 이상 아무것도 없기 때문에 선택적 매개 변수'clearQueue'가 필요하지 않습니다. 그리고'jumpToEnd'는 기본적으로'false'입니다. 내 jsfiddle 요청한대로 작동 ... – AvL
:
이$('body,html').animate({
scrollTop: 0
}, 3000).click(function() {
$('body,html').stop();
});
I 오전 클릭 감지에 대해, 어쨌든,이 3 초 후에 애니메이션을 중지됩니다 아주 확실하지 :
$('body,html').animate({
scrollTop: 0
}, 6000);
setTimeout(function() { $('html,body').stop(); }, 3000);
를 정지의 모든 정보()의 경우 :의 http://api.jquery.com/stop/
가능한 중복 [ 사용자 상호 작용 후 스크롤 취소] (http://stackoverflow.com/questions/6160058/cancel-scrolling-after-user-interaction) –