H5页面ios键盘遮挡input问题
2018-02-19 01:34
573 查看
完美方案// 解决输入法被激活时 底部输入框被遮住问题
<textarea type="text" value="" ref="textarea" v-model="newMsg" v-on:focus="focusIpt" v-on:blur="blurIpt" rows="1" />
data(){
return{
timer:null
}
}
methods: {
focusIpt() { // 解决输入框被激活时被键盘遮住问题
this.timer = setInterval(function() {
document.body.scrollTop = document.body.scrollHeight
}, 100)
},
blurIpt() {
clearInterval(this.timer)
}
},
updated(){
let pannel = this.$refs.textarea;
//监听输入框,动态增加输入框高度
pannel.style.height='auto';
pannel.style.height = pannel.scrollHeight + 'px';
}
注意,滑动页面时要 clearInterval(this.timer)-------------------------------------------------------------------------------------------------------------------------------
最初的做法,用div代替textarea,既没有v-on:focus,也没有v-on:blur,不推荐用div代替textarea,上面已经完美解决input框被挡住问题,也解决textarea自适应高度问题
参考很多资料,目前测试有效,不完全好用,但是解决遮挡问题的方法<div class="div-textarea" v-model="newMsg" ref="textarea" tabindex="0"
contenteditable="true"></div>
methods:{
myFocus(){
let pannel = this.$refs.textarea;
// pannel.focus();
console.log("focus")
setTimeout(function(){
pannel.scrollIntoView(true);
pannel.scrollIntoViewIfNeeded();
document.body.scrollTop = document.body.scrollHeight;
},100);
// setInterval( () => {
// document.body.scrollTop = document.body.scrollHeight;
// },300)
}
},
updated(){
this.myFocus()
}参考 http://blog.csdn.net/u010884123/article/details/77143228
<textarea type="text" value="" ref="textarea" v-model="newMsg" v-on:focus="focusIpt" v-on:blur="blurIpt" rows="1" />
data(){
return{
timer:null
}
}
methods: {
focusIpt() { // 解决输入框被激活时被键盘遮住问题
this.timer = setInterval(function() {
document.body.scrollTop = document.body.scrollHeight
}, 100)
},
blurIpt() {
clearInterval(this.timer)
}
},
updated(){
let pannel = this.$refs.textarea;
//监听输入框,动态增加输入框高度
pannel.style.height='auto';
pannel.style.height = pannel.scrollHeight + 'px';
}
注意,滑动页面时要 clearInterval(this.timer)-------------------------------------------------------------------------------------------------------------------------------
最初的做法,用div代替textarea,既没有v-on:focus,也没有v-on:blur,不推荐用div代替textarea,上面已经完美解决input框被挡住问题,也解决textarea自适应高度问题
参考很多资料,目前测试有效,不完全好用,但是解决遮挡问题的方法<div class="div-textarea" v-model="newMsg" ref="textarea" tabindex="0"
contenteditable="true"></div>
methods:{
myFocus(){
let pannel = this.$refs.textarea;
// pannel.focus();
console.log("focus")
setTimeout(function(){
pannel.scrollIntoView(true);
pannel.scrollIntoViewIfNeeded();
document.body.scrollTop = document.body.scrollHeight;
},100);
// setInterval( () => {
// document.body.scrollTop = document.body.scrollHeight;
// },300)
}
},
updated(){
this.myFocus()
}参考 http://blog.csdn.net/u010884123/article/details/77143228
相关文章推荐
- 【移动端H5开发】iOS下页面底部的input被弹出键盘遮挡问题
- iOS下Html页面中input获取焦点弹出键盘时挡问题
- 安卓手机访问h5页面的input,弹出软键盘遮挡input
- 移动端iOS第三方输入法遮挡底部input及android键盘回落后留白问题
- iOS解决呼出键盘遮挡页面问题(装逼模式一)
- 记录H5页面IOS中input输入框失去焦点后,键盘隐藏
- iOS解决呼出键盘遮挡页面问题(装逼模式一)
- iOS 解决autolayout下键盘弹出遮挡问题
- 解决vue js IOS H5focus无法自动弹出键盘的问题
- ios解决webview键盘遮挡问题
- iOS下Html页面中input获取焦点弹出键盘时挡住input解决方案—scrollIntoView()
- iOS pop到前一个页面时键盘闪一下的问题
- iOS键盘弹出遮挡输入框问题
- iOS 调用h5页面 视频不自动播放的问题
- h5安卓页面键盘遮挡表单的办法处理
- IOS和安卓WEB页面,input输入框被软键盘遮挡解决方法
- 【iOS 0 行代码系列】之 0 行代码解决键盘遮挡问题
- iOS下的 Fixed + Input 调用键盘的时候fixed无效问题解决方案
- iOS下Html页面中input获取焦点弹出键盘时挡住input解决方案
- ios键盘遮挡问题