import { isFunction } from "./fns"; // 将选择器与父元素匹配 export function matchesSelectorToParentElements(el, selector, baseNode) { let node = el; const matchesSelectorFunc = [ "matches", "webkitMatchesSelector", "mozMatchesSelector", "msMatchesSelector", "oMatchesSelector" ].find((func) => isFunction(node[func])); if (!isFunction(node[matchesSelectorFunc])) return false; do { if (node[matchesSelectorFunc](selector)) return true; if (node === baseNode) return false; node = node.parentNode; } while (node); return false; } export function getComputedSize($el) { const style = window.getComputedStyle($el); return [parseFloat(style.getPropertyValue("width"), 10), parseFloat(style.getPropertyValue("height"), 10)]; } // 添加事件 export function addEvent(el, event, handler) { if (!el) { return; } if (el.attachEvent) { el.attachEvent("on" + event, handler); } else if (el.addEventListener) { el.addEventListener(event, handler, true); } else { el["on" + event] = handler; } } // 删除事件 export function removeEvent(el, event, handler) { if (!el) { return; } if (el.detachEvent) { el.detachEvent("on" + event, handler); } else if (el.removeEventListener) { el.removeEventListener(event, handler, true); } else { el["on" + event] = null; } }