您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
一个允许监听元素resize事件的解决方案
此脚本不应直接安装。它是供其他脚本使用的外部库,要使用该库请加入元指令 // @require https://update.gf.qytechs.cn/scripts/450831/1090316/EleResize.js
- /**
- * Created by taozh on 2017/5/6.
- * taozh1982@gmail.com
- */
- var EleResize = {
- _handleResize: function (e) {
- var ele = e.target || e.srcElement;
- var trigger = ele.__resizeTrigger__;
- if (trigger) {
- var handlers = trigger.__z_resizeListeners;
- if (handlers) {
- var size = handlers.length;
- for (var i = 0; i < size; i++) {
- var h = handlers[i];
- var handler = h.handler;
- var context = h.context;
- handler.apply(context, [e]);
- }
- }
- }
- },
- _removeHandler: function (ele, handler, context) {
- var handlers = ele.__z_resizeListeners;
- if (handlers) {
- var size = handlers.length;
- for (var i = 0; i < size; i++) {
- var h = handlers[i];
- if (h.handler === handler && h.context === context) {
- handlers.splice(i, 1);
- return;
- }
- }
- }
- },
- _createResizeTrigger: function (ele) {
- var obj = document.createElement('object');
- obj.setAttribute('style',
- 'display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden;opacity: 0; pointer-events: none; z-index: -1;');
- obj.onload = EleResize._handleObjectLoad;
- obj.type = 'text/html';
- ele.appendChild(obj);
- obj.data = 'about:blank';
- return obj;
- },
- _handleObjectLoad: function (evt) {
- this.contentDocument.defaultView.__resizeTrigger__ = this.__resizeElement__;
- this.contentDocument.defaultView.addEventListener('resize', EleResize._handleResize);
- }
- };
- if (document.attachEvent) {//ie9-10
- EleResize.on = function (ele, handler, context) {
- var handlers = ele.__z_resizeListeners;
- if (!handlers) {
- handlers = [];
- ele.__z_resizeListeners = handlers;
- ele.__resizeTrigger__ = ele;
- ele.attachEvent('onresize', EleResize._handleResize);
- }
- handlers.push({
- handler: handler,
- context: context
- });
- };
- EleResize.off = function (ele, handler, context) {
- var handlers = ele.__z_resizeListeners;
- if (handlers) {
- EleResize._removeHandler(ele, handler, context);
- if (handlers.length === 0) {
- ele.detachEvent('onresize', EleResize._handleResize);
- delete ele.__z_resizeListeners;
- }
- }
- }
- } else {
- EleResize.on = function (ele, handler, context) {
- var handlers = ele.__z_resizeListeners;
- if (!handlers) {
- handlers = [];
- ele.__z_resizeListeners = handlers;
- if (getComputedStyle(ele, null).position === 'static') {
- ele.style.position = 'relative';
- }
- var obj = EleResize._createResizeTrigger(ele);
- ele.__resizeTrigger__ = obj;
- obj.__resizeElement__ = ele;
- }
- handlers.push({
- handler: handler,
- context: context
- });
- };
- EleResize.off = function (ele, handler, context) {
- var handlers = ele.__z_resizeListeners;
- if (handlers) {
- EleResize._removeHandler(ele, handler, context);
- if (handlers.length === 0) {
- var trigger = ele.__resizeTrigger__;
- if (trigger) {
- trigger.contentDocument.defaultView.removeEventListener('resize', EleResize._handleResize);
- ele.removeChild(trigger);
- delete ele.__resizeTrigger__;
- }
- delete ele.__z_resizeListeners;
- }
- }
- }
- }
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址