admin 管理员组文章数量: 887021
文章目录
- 一、Resize 事件
- 1、Resize 回调
- 方案一:
- 方案二
- 2、禁用 Resize
- 二、浏览器类型
- 三、判断是否 H5 端
- 四、浏览器全屏
- 1、进入全屏
- 2、退出全屏
- 五、回退
- 1、回退
- 2、事件回调
- 六、浏览器参数
- 方案一
- 方案二
- 方案三
- 六、浏览器滚动条
- 一、判读是否出现滚动条
- 二、H5 Header 样式随滚动条高度变化
- 七、网页宽高
- 1、宽高
- 2、获取浏览器宽度和高度
- 3、获取 Dom 控件的宽高
- 4、设置 Dom 控件的宽高
- 九、枚举 HTML 标签属性
一、Resize 事件
1、Resize 回调
方案一:
window.onresize = function(){
location.reload(false); //当为true时重新获取数据加载页面 当为false时获取缓存并刷新页面
}
方案二
window.addEventListener('resize', () => {
...
}, false)
2、禁用 Resize
window.onresize = function(e){
if(e && e.preventDefault){
e.preventDefault(); // 阻止默认事件
}else{
window.event.returnValue = false;
}
return false;
}
二、浏览器类型
function myBrowser(){
var userAgent = navigator.userAgent;
if (userAgent.indexOf("Opera") > -1) {
return "Opera"
}; //判断是否Opera浏览器
if (userAgent.indexOf("Firefox") > -1) {
return "FF";
} //判断是否Firefox浏览器
if (userAgent.indexOf("Chrome") > -1){
return "Chrome";
}
if (userAgent.indexOf("Safari") > -1) {
return "Safari";
} //判断是否Safari浏览器
if (userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1 && !isOpera) {
return "IE";
}; //判断是否IE浏览器
}
三、判断是否 H5 端
navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i))
四、浏览器全屏
1、进入全屏
浏览器无法自启动以后立即触发 进入全屏
function requestFullScreen() {
var de = document.documentElement;
if (de.requestFullscreen) {
de.requestFullscreen();
} else if (de.mozRequestFullScreen) {
de.mozRequestFullScreen();
} else if (de.webkitRequestFullScreen) {
de.webkitRequestFullScreen();
}
}
2、退出全屏
手动(F11)打开的全屏只能手动(ESC)关闭
requestFullScreen 打开的全屏 才能用 exitFullscreen 关闭
function exitFullscreen() {
var de = document;
if (de.exitFullscreen) {
de.exitFullscreen();
} else if (de.mozCancelFullScreen) {
de.mozCancelFullScreen();
} else if (de.webkitCancelFullScreen) {
de.webkitCancelFullScreen();
}
}
五、回退
1、回退
window.history.go(-1); // 返回上一页
window.history.back(); // 返回上一页
2、事件回调
location.onPopState(() => {
...
});
六、浏览器参数
方案一
getQueryString: function (name) {
var reg = new RegExp("(^|&)"+name+"=([^&]*)(&|$)");
var result = window.location.search.substr(1).match(reg);
return result?decodeURIComponent(result[2]):null;
},
方案二
getQueryString: function (name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
var r = window.location.search.substr(1).match(reg);
if (r != null) return unescape(r[2]); return null;
},
方案三
function getQueryString() {
var url = location.search; //获取url中"?"符后的字串
var theRequest = new Object();
if (url.indexOf("?") != -1) {
var str = url.substr(1);
strs = str.split("&");
for(var i = 0; i < strs.length; i ++) {
theRequest[strs[i].split("=")[0]]=unescape(strs[i].split("=")[1]);
}
}
return theRequest;
}
六、浏览器滚动条
一、判读是否出现滚动条
if(document.body.style.overflow!="hidden"
&& document.body.scroll!="no"
&& document.body.scrollHeight>document.body.offsetHeight){
// 有滚动条
...
}else{
// 无滚动条
...
}
二、H5 Header 样式随滚动条高度变化
document.addEventListener('scroll', (e) => {
var scrollTop = 0
if(document.documentElement&&document.documentElement.scrollTop) {
scrollTop = document.documentElement.scrollTop;
} else if(document.body) {
scrollTop = document.body.scrollTop;
}
scrollTop = scrollTop > 90 ? 90 : scrollTop // 90 为固定头部高度,项目种可动态获取
this.opacity = scrollTop / 90
})
七、网页宽高
1、宽高
网页可见区域宽:document.body.clientWidth;
网页可见区域高:document.body.clientHeight;
网页可见区域宽:document.body.offsetWidth; // 包括边线和滚动条的宽
网页可见区域高:document.body.offsetHeight; // 包括边线的宽
网页正文全文宽:document.body.scrollWidth;
网页正文全文高:document.body.scrollHeight;
网页被卷去的高(ff):document.body.scrollTop;
网页被卷去的高(ie):document.documentElement.scrollTop;
网页被卷去的左:document.body.scrollLeft;
网页正文部分上:window.screenTop;
网页正文部分左:window.screenLeft;
屏幕分辨率的高:window.screen.height;
屏幕分辨率的宽:window.screen.width;
屏幕可用工作区高度:window.screen.availHeight;
屏幕可用工作区宽度:window.screen.availWidth;
屏幕彩色位设置是: window.screen.colorDepth;
屏幕像素/英寸设置: window.screen.deviceXDPI;
2、获取浏览器宽度和高度
domWidth = document.body.clientWidth || document.body.scrollWidth;
domHeight = document.body.clientHeight || document.body.scrollHeight;
3、获取 Dom 控件的宽高
document.getElementById('#viewID').offsetHeight;
document.getElementById('#viewID').offsetWidth;
4、设置 Dom 控件的宽高
document.getElementById('#viewID').style.height = "10px";
document.getElementById('#viewID').style.width = "10px";
九、枚举 HTML 标签属性
Object.keys(document.getElementByTagName('a')[0].__proto__)
版权声明:本文标题:前端浏览器事件-Browser 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1729173210h1326936.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论