scrollTop
Element.scrollTop 属性可以获取或设置一个元素的内容垂直滚动的像素数。
一个元素的 scrollTop 值是这个元素的内容顶部(卷起来的)到它的视口可见内容(的顶部)的距离的度量。当一个元素的内容没有产生垂直方向的滚动条,那么它的 scrollTop 值为0。
是一个元素向下滚动,离上面的距离
document.documentElement.scrollTop
可以获得距离上面的高度
window.scrollTo()
scrollTo() 方法可把内容滚动到指定的坐标。
scrollTo(xpos,ypos)
xpos,ypops分别是x轴,y轴的距离
Math.max
Math.max()
函数返回一组数中的最大值。
解决的问题是
ios调起的键盘的时候,出现的白屏。获得这个元素距离顶上的距离,不能粗暴的让scrollTop
设置为0,为0时出现的问题是被触发后直接回到顶部,不符合我们的操作习惯。
上代码
resetPage: {
inserted: function(el) {
document.body.addEventListener('focusout', e => {
const targetTagName = e.target.tagName.toLowerCase()
if (targetTagName !== 'input' && targetTagName !== 'textarea') { return }
if (/(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent)) {
// 软键盘收起的事件处理
setTimeout(() => {
const scrollHeight = document.documentElement.scrollTop || document.body.scrollTop || 0
window.scrollTo(0, Math.max(scrollHeight - 1, 0))
}, 100)
}
})
}
},
这串代码是在
export default {
}
里面
整理都是方便自己记忆,不够严谨~~~~