Jon*_*han 25
在焦点上,设置window.scrollTo(0,0); 这可以防止键盘完全推送webview
$('input').on('focus', function(e) {
e.preventDefault(); e.stopPropagation();
window.scrollTo(0,0); //the second 0 marks the Y scroll pos. Setting this to i.e. 100 will push the screen up by 100px.
});
Run Code Online (Sandbox Code Playgroud)
如果您不想为Y滚动位置设置静态值,请随意使用我编写的这个简短的插件,它会自动对齐输入字段下方的键盘.它并不完美,但它能完成这项工作.只需在焦点上调用它,如上所示:
setKeyboardPos(e.target.id);
Run Code Online (Sandbox Code Playgroud)
cap*_*nja 14
使用driftyco/ionic-plugins-keyboard解决了这个问题(https://github.com/driftyco/ionic-plugins-keyboard)
首先安装键盘插件:
cordova plugin add com.ionic.keyboard
Run Code Online (Sandbox Code Playgroud)
现在您可以I)禁用本机键盘滚动:
cordova.plugins.Keyboard.disableScroll(true);
Run Code Online (Sandbox Code Playgroud)
或者II)监听native.keyboardshow
事件deviceready
并在键盘显示时滚动回顶部:
window.addEventListener('native.keyboardshow', keyboardShowHandler);
function keyboardShowHandler(e){
setTimeout(function() {
$('html, body').animate({ scrollTop: 0 }, 1000);
}, 0);
}
Run Code Online (Sandbox Code Playgroud)
我使用了II)方法,因为我喜欢我的情况下的动画滚动.如果你不想用动画替换相应的行window.scrollTo(0, 0);
.但是我担心在这种情况下你将再次处理Imskull所写的"垃圾抖动动画" .
归档时间: |
|
查看次数: |
44392 次 |
最近记录: |