手ぶれ防止

3623 ワード

流れをせき止める
実行期間以上の場合のみ実行します.コールは実行されません.
function throttle(handler, wait){
	var lastTime = 0
	return function () {
		var nowTime = new Date().getTime()
		if(nowTime - lastTime > wait) {
			handler.apply(this, arguments)
			lastTime = nowTime
		}
	}
}
  • ウィンドウ調整
  • ページスクロール
  • 突貫買い狂ったようにクリックしてください.
    振れを防ぐ
    関数が頻繁にトリガする必要がある場合は、空き時間が十分しかありません.
    function debounce(handler, delay) {
    	var timer = null
    	return function () {
    		var that = this, _arg = arguments
    		clearTimeout(timer)
    		timer = setTimeout(function (){
    			handler.apply(that, _arg)
    		}, delay)
    	}
    }
    
  • リアルタイム検索
  • ドラッグ