js浏览器缩放提示
2024-08-29 11:17:22
data() {
return {
instance: null,
isZoomOpen: false
};
},
mounted() {
const that = this;
this.isZoom();
window.addEventListener("resize", function() {
that.isZoom();
});
},
methods: {
// 浏览器缩放提示 (打开控制台会影响准确度)
detectZoom: function() {
let ratio = 0,
screen = window.screen,
ua = navigator.userAgent.toLowerCase();
//
if (~ua.indexOf("firefox")) {
if (window.devicePixelRatio !== undefined) {
ratio = window.devicePixelRatio;
}
} else if (~ua.indexOf("msie")) {
if (screen.deviceXDPI && screen.logicalXDPI) {
ratio = screen.deviceXDPI / screen.logicalXDPI;
}
} else if (
window.outerWidth !== undefined &&
window.innerWidth !== undefined
) {
ratio = window.outerWidth / window.innerWidth;
}
//
if (ratio) {
ratio = Math.round(ratio * 100);
}
// 360安全浏览器下的innerWidth包含了侧边栏的宽度
if (ratio !== 100) {
if (ratio >= 95 && ratio <= 105) {
ratio = 100;
}
}
return ratio;
},
isZoom: function() {
if (this.detectZoom() < 100 || this.detectZoom() > 100) {
this.zoomNotifyOpen();
} else {
this.zoomNotifyClose();
}
},
zoomNotifyOpen: function() {
if (!this.isZoomOpen) {
this.isZoomOpen = true; // 加上标记防止多次提示
this.instance = this.$notify({
title: "提示",
message:
"你的浏览器目前处于缩放状态,页面可能会出现错位现象,建议100%大小显示",
type: "info",
duration: 0
});
}
},
zoomNotifyClose: function() {
if (this.instance !== null) {
// 判断是否为null 防止bug
this.instance.close();
this.isZoomOpen = false;
}
}
}
最新文章
- C语言结构体里的成员数组和指针
- C语言中的system函数参数及其作用
- 前端项目构建工具---Grunt
- Node聊天程序实例01
- 扩展Exception,增加判断Exception是否为SQL引用约束异常方法!
- WinDbg 命令三部曲:(三)WinDbg SOSEX 扩展命令手册
- MUI 页面传值 webview
- 如何创建ajax对象?
- ios 总结
- 中国餐馆过程(CRP)
- POJ 1251 Jungle Roads
- swig include使用方法
- Retrofit2.0源码解析
- Python的类与类型
- vue不是内部或外部命令,配置一个Path系统变量就可以解决
- cv2.matchTemplate()函数的应用,匹配图片后画出矩形
- BZOJ1758[Wc2010]重建计划——分数规划+长链剖分+线段树+二分答案+树形DP
- 30 个 OpenStack 经典面试问题和解答
- CSS 颜色
- Pycharm(二)创建项目