Skip to content

Instantly share code, notes, and snippets.

View felanny's full-sized avatar
🖱️
ctrl+c→ctrl+v

felanny

🖱️
ctrl+c→ctrl+v
View GitHub Profile
@boringtu
boringtu / element-ui-bug-fixed.js
Created February 23, 2024 13:33
解决 `body` 设置 `zoom` 导致各种 `popover` 错位的问题(`Vue 2` + `ElementUI 2`)
import Popper from 'element-ui/lib/utils/popper';
const root = window;
// 重写此方法,以解决 body zoom 导致 ElementUI 所有 popper 相关元素错位的问题
// bug 产生原因:因为此方法依赖 `document.documentElement.clientWidth` 和 `document.documentElement.clientHeight`
// 而这两个值是 body 缩放之前的宽度和高度,换句话说,这两个值与 `zoom` 无关
// 所以解决方案的思路就是:重写此方法,将这两个值换成能有效获取实际宽高的方式即可
// 我的方案是换成了 `document.body.getBoundingClientRect()` 的 `width` 和 `height`
// 但这个逻辑依赖于 `body` 本身的宽高,所以请根据自己的情况换成更合适你的方案食用~
@sunzsh
sunzsh / fix-zoom.js
Created December 29, 2023 15:37
解决代码修改了网页zoom导致各种popover错位的问题(适配vue2+elementUI)
export default {
install(Vue) {
const delegates = {
'el-select': (component, element) => {
return [component.$refs.reference.$el]
},
'el-pagination': (component, element) => {
const sizesComponent = component.$children.find((child) => child.$options._componentTag === 'sizes');
const eles_ElSelectInSizes = delegates['el-select'](sizesComponent.$children[0], element);