Q
打字時輸入滾動
0
A
回答
-1
其中一個解決方案可能是從文本框中移除焦點,如果向下滾動,但用戶無法輸入。
1
我建議不要使用這個解決方案,因爲你可能遇到很多兼容性問題,你不想解決。
但是你可以添加的keydown eventlister您inputelement,防止默認操作,如果keyIdentifier與"U+"
開始(這種方式插入等將工作)
然後你從事件創建一個字符串,如果shift鍵未被按下,keyCode的值將變爲小寫,並將其插入Cursors位置。
inputElement.addEventListener ("keydown",function (e) {
var key = e.keyCode || e.which;
var element = e.srcElement || e.target;
var ident = 0 | parseInt (e.keyIdentifier.slice (-4) , 16)
var cursorPos = element.selectionStart || 0;
var selectionEnd = element.selectionEnd || 0;
if (key < 31 || key > 127 || ident !== key || e.ctrlKey || e.metaKey) { return true };
if (key > 46 && key < 59 && e.shiftKey) {
key ^= 16;
}
if ("U+" === e.keyIdentifier.slice (0,2)) { //We only wan't to target text input values
e.preventDefault() ; //this prevents the default action and with it the scrolling
var characters = element.value.split ("");
characters.splice (cursorPos,selectionEnd - cursorPos, String.fromCharCode (key)["to" + (e.shiftKey?"Upper":"Lower") + "Case"]());
element.value = characters.join (""); //append the string value to the input
cursorPos++;
if(element.createTextRange) {
var range = element.createTextRange();
range.move('character', cursorPos);
range.select();
}
else {
if(element.selectionStart) {
element.focus();
element.setSelectionRange(cursorPos, cursorPos);
}
else {
element.focus();
}
}
}
});
所以這是更新的版本。
Known issues:
Shift + 0 -> `" "`
Shift + 3 -> `"#"`
May not work on IE.
而且可能還有更多。如果有一個ismpler方法,我會使用它,因爲這可能需要針對不同鍵盤佈局的許多兼容性代碼。
但它的東西與
0
開始你可以添加的keydown事件監聽和使用setTimeout
滾動發生後滾動到原來的位置immediateley。
inputElement.addEventListener ("keydown" , function() {
setTimeout (function() {
window.scroll (window.pageXOffset , window.pageYOffset)
},0)
});
只在鉻上進行測試。您可能會注意到閃爍,所以這不是一個最佳的解決辦法
相關問題
- 1. AngularJS:滾動預輸入輸入字段
- 2. Opera輸入滾動字幕?
- 3. 查看滾動鍵盤打開時輸入控制
- 4. 如何在使用RecyclerView時自動滾動到輸入字段
- 5. jqTransform選擇 - 滾動到字母輸入
- 6. 帶滾動條的輸入字段
- 7. Combobox打字時輸入文字
- 8. 無法在輸入字段的滾動矩形中滾動Unity
- 9. Xcode在打字時滾動文本
- 10. Emacs - 插入文字時自動滾動
- 11. 輸入後滾動Phonegap iOS
- 12. 輸入元素不滾動
- 13. 百搭滾動輸入android
- 14. 滾動當輸入與angularjs
- 15. 輸入文本框滾動
- 16. 如何在打字時輸入!=?
- 17. 輸入值問題時快速打字
- 18. 淡入滾動時
- 19. 滾動視圖自動滾動輸入軟鍵盤的輸入鍵
- 20. 按下指定的輸入字段時打開聯繫活動
- 21. 在輸入字段中輸入字符時自動建議?
- 22. 如何在Windows Phone 7中打開輸入面板時啓用滾動功能
- 23. 當輸入面板打開時面板不滾動到集中控制
- 24. 插入滾動條的值到輸入字段
- 25. iPhone瀏覽器:禁用頁面滾動,同時拖動html輸入字段
- 26. iOS - 文字不會在輸入時出現,但會在滾動時出現
- 27. OnChange打字稿輸入
- 28. 用打字稿輸入
- 29. 打字稿輸入onchange event.target.value
- 30. Curses打印字符輸入
還存在一些問題,我會盡力把它固定 – C5H8NNaO4
我們的代碼失敗的退格文v點擊.. – Shashank
@Shashank我知道,閱讀上面的評論=) – C5H8NNaO4