2012-11-01 34 views
2

我剛剛完成了一個使用HTML5和CSS webkit動畫的iOS網絡應用程序。強制瀏覽器專注於特定元素

可以說,當我在屏幕上的任何地方拖動時,我的手指就跟隨着我的手指「A」。當元素A跟隨我的手指時,我注意到了一些丟幀。這隻在iPad上引人注目。如果我繼續觸摸元素A,那麼在跟隨我的觸摸移動時不會丟幀會更好,但如果我觸摸其他元素而不是元素A並回到元素A,則元素A會丟棄幀大時間嘗試跟隨我的手指,就好像瀏覽器失去了對元素的關注,因爲我挖掘了其他地方。

有沒有辦法強制瀏覽器保持對元素A的焦點,以便它不丟幀?

在此先感謝

+0

取決於用於移動元素A的代碼或其他元素所關注的內容。代碼會有所幫助。 –

回答

1

基本上可以通過重新調整該元素取消blur事件。以下是使用jQuery的方法:

$(document).ready(function() { 
    $(element).blur(function() { 
     var self = this; 
     setTimeout(function() { self.focus(); }, 20); 
    }); 
}); 
+0

我補充說,它沒有區別。我在「var self = this」之後放置了一個console.log,它永遠不會觸發,意味着blur()事件永遠不會被調用,並且在任何地方都會點擊,但是我無法使用此函數打印單個console.log。 – charlitosJS

+0

@ user1791848在$(document).ready()上添加事件處理程序。更新示例 –

+0

它的文檔準備就緒,即使在我把tabindex和其他所有內容確保iOS讀取模糊和焦點事件後,它也不起作用。我不認爲移動Safari在適用於div時知道這些事件。 – charlitosJS