私はずっと試してみましたが、ページ上を上下にスワイプすると、window.onresizeがまだ発火します。スクロール時にwindow.onresizeイベントを停止する方法は?私は一度だけ発射する必要がありますか?
まず、私は基本的なコマンドライン試してください:
window.onresize = function (event) {
setTimeout(Orientation,500);
}
function Orientation() {
if (window.innerHeight > window.innerWidth) {
alert("Portrait");
}
else {
alert("Landscape");
}
}
警告ショーアップを、私は[OK]をクリックします。しかし、私は、なかれのようなもの...
私はjQueryのデビッド・ウォルシュを尽くす再びページを下に、警告表示をアップしたりスワイプするとき:結果は同じである
function debounce(func, wait, immediate) {
var timeout;
return function() {
var context = this, args = arguments;
var later = function() {
timeout = null;
if (!immediate) func.apply(context, args);
};
var callNow = immediate && !timeout;
clearTimeout(timeout);
timeout = setTimeout(later, wait);
if (callNow) func.apply(context, args);
};
};
var myEfficientFn = debounce(function() {
if (window.innerHeight > window.innerWidth) {
alert("Portrait");
}
else {
alert("Landscape");
}
}, 250);
window.addEventListener('resize', myEfficientFn);
!
あなたは携帯電話やタブレットで、ここで試すことができます:http://hangaumy.com/test.html
は、このイベントのために他の方法はありますか?どうもありがとう !
WOW、AMAZINGを、ITは完了です!あなたの美しい助けをありがとう!しかし、Window.resizeイベントは今停止します.Window.resizeを実行すると一度実行しますか? –
私が作っていることを理解しているとは思わない。イベントではなく、発砲からあなたの機能を停止します。タイムアウトを取り出して関数に入れます。 "if else"を2つの別々の条件にしてはいけません。 "それ以外の場合" – Rick