有沒有一種方法可以在沒有頁面滾動的情況下使用javascript焦點輸入。我希望在輸入字段中有光標開始,但我不希望它滾動到頁面的那一部分。使用javascript輸入焦點
目前我使用
function setFocusToTextBox() {
document.getElementById("FirstName1").focus();
}
有沒有一種方法可以在沒有頁面滾動的情況下使用javascript焦點輸入。我希望在輸入字段中有光標開始,但我不希望它滾動到頁面的那一部分。使用javascript輸入焦點
目前我使用
function setFocusToTextBox() {
document.getElementById("FirstName1").focus();
}
你可以滾動前再設置滾動後是這樣的:
function setFocusToTextBox() {
var doc = document.documentElement;
var x = (window.pageXOffset || doc.scrollLeft) - (doc.clientLeft || 0);
var y = (window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0);
document.getElementById("FirstName1").focus();
window.scrollTo(x, y);
}
你可以在focus
之前獲取滾動位置,然後將其設置回恰當之後focus
...
相反,爲什麼不在輸入焦點在視口中變爲可見狀態時才輸入焦點?這樣可以避免整個頁面跳轉到輸入問題,並提供更好的體驗。 – filoxo
我該怎麼做? –
這將是另一個問題的基礎,但是你必須[計算元素是否在視口之外](http://stackoverflow.com/questions/123999/how-to-tell-if-a-dom -element-is-visible-in-the-current-viewport)(並且可能需要將此函數綁定到'window.scroll'事件),並且當元素不在視口之外時,已經在做。 – filoxo