源头
的写法,能够快速解决问题dropdown
、Tooltip
、Select
的弹出层,基本上都是在Popper.js
的基础之上封装的Popper.js
封装了一个vue-popper
组件vue-popper
组件去封装成各个带有弹出层的组件功能vue-popper
组件封装了一个属于自己的tooltip
,大家有空了也可以点击链接去瞅瞅Popper.js
的问题Popper.js
的源代码中有监听resize事件,从而计算出对应的弹出层位置所以解决方案就有啦...
window.dispatchEvent(new Event('resize'))
window.dispatchEvent(new Event('resize'))
window.dispatchEvent(new Event('resize'))
比如以下代码demo:
const querySearchAsync = (queryString, cb) => {
setTimeout(() => {
let apiData = [
{
value: '孙悟空',
id: '111'
},
{
value: '猪八戒',
id: '222'
},
{
value: '沙和尚',
id: '333'
},
]
cb(apiData)
// 解决el-autocomplete弹出建议层错位问题(poper.js就是监听resize事件重新计算dom位置的)
window.dispatchEvent(new Event('resize'))
}, 340);
}
注意,要在合适的时机去派发resize事件哦