跨浏览器resize事件分析
resize事件
原生事件分析
window一次resize事件:
IE7 触发3次, IE8 触发2次, IE9 触发1次, IE10 触发1次
Chrome 触发1次
- FF 触发2次
- Opera 触发1次
- Safari 触发1次
场景分析
- window resize时。部分组件须要重置大小(一次)。部分组件不须要重置大小。
开源库分析
- jquery-resize
长处:使用简便
$('#div1').on('resize', function (e) {console.log('[div1] resize');})$('#div1').resize(function (e) {console.log('[div1] resize2');});
缺点:内部使用轮询,性能堪忧
function loopy() {// Start the polling loop, asynchronously.timeout_id = window[ str_setTimeout ](function(){// Iterate over all elements to which the 'resize' event is bound.elems.each(function(){var elem = $(this),width = elem.width(),height = elem.height(),data = $.data( this, str_data );// If element size has changed since the last time, update the element// data store and trigger the 'resize' event.if ( width !== data.w || height !== data.h ) {elem.trigger( str_resize, [ data.w = width, data.h = height ] );}});// Loop.loopy();}, jq_resize[ str_delay ] );
};
- jquery-smartresize
长处:分Debounced和Throttled两种类型,类型明白
缺点:使用不算简易
$(window).on("debouncedresize", function( event ) {// Your event handler code goes here.
});// or...
$(window).on("throttledresize", function( event ) {// Your event handler code goes here.
});// unbind at will
$(window).off( "debouncedresize" );
结论
大多数场景使用jquery-smartresize的Debounced就可以满足一次调用就可以
转载于:https://www.cnblogs.com/bhlsheji/p/5244117.html
跨浏览器resize事件分析相关推荐
- 一些js代码,自己备用的。高手不要笑话我。。(跨浏览器基础事件,浏览器检测,判断浏览器的名称、版本号、操作系统)...
跨浏览器基础事件 View Code 1 //跨浏览器添加事件 2 function addEvent(obj, type, fn) { 3 if (obj.addEventListener) { 4 ...
- 原生JS实现跨浏览器的事件处理程序
<!doctype html> <html lang="en"> <head><meta charset="UTF-8" ...
- IFE-16 addEventHandler跨浏览器实现事件绑定
/** * addEventHandler方法 * 跨浏览器实现事件绑定 */ function addEventHandler(ele, event, hanlder) {if (ele.addEv ...
- JavaScript --- 跨浏览器的事件对象
var EventUtil={addHandler: function(element, type, handler){ // 添加事件方法if (element.addEventListener){ ...
- addevent()实现跨浏览器绑定事件
绑定事件一般有三种方式:传统绑定事件,IE绑定事件,W3C绑定事件.传统绑定存在可读性问题,this问题,覆盖问题.为实现跨浏览器绑定事件,我们采用自定义方法addEvent().代码如下: //跨浏 ...
- javascript --- DOM0级、DOM2级、跨浏览器 的事件处理程序
DOM0级事件处理程序: // 使用DOM0级方法指定的事件处理程序被认为是元素的方法 // 这个时候的事件处理程序是在元素的作用域中运行: <div id = "myBtn" ...
- 跨浏览器的事件处理程序
我们第一个要创建的方法是addHandler() 它的职责是视情况分别使用DOM0级方法.DOM2级方法或者IE方法来添加事件.这个方法属于一个名叫EventUtil的对象.addHandler() ...
- JavaScript --- 跨浏览器的事件处理程序
var EventUtil = {addHandler: function(element, type, handler) { // 添加事件处理程序if (element.addEventListe ...
- dean edward大神的跨浏览器addEvent事件
2019独角兽企业重金招聘Python工程师标准>>> function addEvent(element, type, handler) {// assign each event ...
最新文章
- VRRP在企业网中的应用(H3C设备)
- 刷墙(左蓝右红或同一色)
- jQuery中$.fn的用法示例介绍
- angularjs中$http模块发送post请求request payload转form data
- VC返回文件所在的路径
- 字体单独设置样式_Glyphs 官方教程 | 字体命名
- 数字人民币这一年,互联网企业做了什么?
- ubuntu16.04 运行dso问题梳理
- elk替代_Golang-logrus简单的日志收集系统(替代ELKB)
- 随机森林和GBDT的几个核心问题
- 在Sun Java System Web Server上使用Quercus运行PHP
- ❤️❤️新生代农民工熬夜整理Python入门教程,包教包会!附源码❤️❤️
- Matlab/simulink 2018a利用 powergui 进行FFT分析(傅里叶分析谐波)
- 知行合一 中国古代小说鉴赏 大作业
- 线性可变位移传感器行业调研报告 - 市场现状分析与发展前景预测
- dropify图片上传插件的上传数据
- 微信热搜 API数据接口
- ubuntu下重启tomcat
- Hey Future!
- 未能找到类型或命名空间名称“XXXX”(是否缺少 using 指令或程序集引用?)
热门文章
- Jquery弹出层插件,非常好用绚丽Lee dialog 1.0
- (转)Uncaught TypeError: Cannot set property 'innerHTML' of null
- 申通快递机器人上岗_【峰暴】618, 数万台机器人上岗为您服务!
- 依赖倒置原则_C#教您一步步摆脱面向过程:依赖倒置
- 三维计算机视觉(六)--3DSC(3D形状上下文特征)
- finebi跳转到本地html文件,组件跳转- FineReport帮助文档|报表开发|报表使用|学习教程...
- 分布式技术是大规模应用的最后一个考验
- c++反转字符,算法优化与实现
- python多线程与多进程
- Ansible之roles使用