내 웹 사이트에 플레이어 종류를 구현하려고합니다. 'Play'
버튼을 누르면 음악이 시작되고 페이지가 부드럽게 아래로 스크롤됩니다. 그러나 버튼 (function(){music.volume=0})
을 누르면 페이지가 맨 위에 다시 나타나는 이유를 모르겠습니다. window.scroll()
지체없이 아무 것도하지 않습니다. 그래서 나는 현재 위치에서 페이지를 스크롤 setTimeout
기능을 사용하고 있습니다. 문제는 Opera와 IE에서 setTimeout
이 약 10 ms
을 차지하므로, 'Mute'
버튼을 클릭 할 때 위아래로 틱이 나타나는 것을 볼 수 있습니다. 크롬에서는 단지 2 ms
걸리고 문제가 없습니다. 이제 내 자신의 시간 제한 기능을 만들 때 window.scroll()
이 다시 작동하지 않습니다.setTimeout 함수 만 함수를 실행합니다. JS
var isMuted = false;
muteButton.onclick = function() { ////This function works with big delay.
if (!isMuted) {
mainAudio.volume = 0;
isMuted = true;
} else {
mainAudio.volume = bgAudioTrackVolume;
isMuted = false;
}
setTimeout(function() {
window.scroll(0, offset); /// Works
}, 0)
};
변경의 setTimeout과 :
여기 내 코드입니다
i = 9542155.873; /// I have tried delay time from 1ms - 250ms by changing this value.
while (i > 0.00001) {
i = i/1.00;
if (i < 0.00001) {
window.scroll(0, offset); /// Does not do anything. Strange! Have tried to change variable with a number.
}
}
내가 오프셋 값을 확인할 때마다, 항상 스크롤 기능을 호출하기 전에 사용할 수 있습니다. 나는 내 문제가 평범하지 않다는 것을 알고 정말로 도움이 필요하다.
함수는 브라우저를 단순히 차단하고 실행의 정상적인 체인은 여전히 작동합니다. – adeneo
'offset'의 값은 무엇이고 어떻게 계산됩니까? 내가 맞춰 보자 – jfriend00
, 음소거 버튼은''처럼 보이는 당신은 이벤트를 취소하지? –