原生js 解决offsetX兼容性问题
// 针对火狐不支持offsetX/Y
function getOffset(e) {var target = e.target, // 当前触发的目标对象eventCoord,pageCoord,offsetCoord;// 计算当前触发元素到文档的距离pageCoord = getPageCoord(target);// 计算光标到文档的距离eventCoord = {X: window.pageXOffset + e.clientX,Y: window.pageYOffset + e.clientY};// 相减获取光标到第一个定位的父元素的坐标offsetCoord = {X: eventCoord.X - pageCoord.X,Y: eventCoord.Y - pageCoord.Y};return offsetCoord;
}function getPageCoord(element) {var coord = { X: 0, Y: 0 };// 计算从当前触发元素到根节点为止,// 各级 offsetParent 元素的 offsetLeft 或 offsetTop 值之和while (element) {coord.X += element.offsetLeft;coord.Y += element.offsetTop;element = element.offsetParent;}return coord;
}
原生js 解决offsetX兼容性问题相关推荐
- IE7.JS解决IE兼容性问题方法
转自:http://code.google.com/p/ie7-js/ 使IE5,IE6兼容到IE7模式(推荐) <!--[if lt IE 7]> <script src=&quo ...
- 原生js解决表格奇偶列显示
本方案重点在于掌握table的 rows属性和 row的cells属性. 解决的问题: 例子: 奇偶列不同颜色显示 个人实际运用: 表格内部内容我想要让内容相对靠近, 奇数列靠右,偶数列靠左, 用 ...
- 原生js解决dblclick双击和mousedown,mouseup鼠标按下抬起冲突问题
最近在开发项目中遇到这么一条需求,canvas画布上实现图形的拖拽以及双击结束多边形画图的功能.但是遇到了鼠标事件冲突的问题.参考网上demo最后确定的实现思路是,使用setTimeout方法.判断一 ...
- 原生JS代码100例
1.原生JavaScript实现字符串长度截取function cutstr(str, len) {var temp;var icount = 0;var patrn = /[^\x00-\xff]/ ...
- html 引入js 兼容,JS跨浏览器兼容性解决思路及方案汇总,常见JS兼容性知识点汇总...
上篇文章我们介绍了,处理CSS浏览器兼容性的4个解决方案:浏览器CSS样式初始化.浏览器私有属性,CSS hack语法和自动化插件,有兴趣的可以看看,链接放到本文结尾 本文主要介绍JS的跨浏览器兼容性 ...
- 原生js的attachEvent和addEventListener解决window.onload在一个页面只能执行一次的问题
原生js的attachEvent和addEventListener解决window.onload在一个页面只能执行一次的问题 参考文章: (1)原生js的attachEvent和addEventLis ...
- 解决原生JS鼠标移入事件多次触发的问题
在原生JS的onmouseover事件中,一般使用的期望是在鼠标移入的时候触发一次,但是当绑定事件的元素有子元素时候,鼠标在元素和子元素中切换时候会多次触发鼠标移入事件,但是不会触发鼠标移出事件,基于 ...
- 原生JS 面试题 (基础)(概率大)
文章目录 1.面试题: 请描述一下 location.go(-1) 和 history.go(-1) 有什么区别 2.面试题:什么是 cookie? 如何回答! 3.面试题: 描述一下 cookie ...
- 如何上传图片到fileupload空间_如何用原生js写图片上传组件v2.0(还有新版本)?...
js图片上传组件: 基本要求: 1.上传的图片可预览,可删除,可被覆盖更新 2.要求图片格式为jpg和png,大小不能超过2M 新加需求: 1.模拟回显,可用本地存储(实际上的回显是通过后台传过来的u ...
最新文章
- 2021年中国工业互联网安全大赛核能行业赛道writeup之Webshell密码
- 变步长龙格库塔法matlab代码,matlab 龙格库塔法 变步长龙格库塔法.doc
- git是航空母舰:ScrumBoard
- java部署web service的方式
- Apache TomEE + JMS。 这从未如此简单。
- 机器学习基石-作业二-第10题分析
- pptx模块的安装与基本使用
- ES6新特性_ES6对象的简化写法---JavaScript_ECMAScript_ES6-ES11新特性工作笔记008
- Rust语言学习大纲
- Windows10临时关闭数字签名认证
- 射频微波芯片设计2:滤波器芯片
- vue横向树结构_vue组件横向树实现代码
- python去除图片上的文字_python读取图片里面的文字
- huobi程序化交易项目
- Ubuntu16.04建立共享文件夹
- LabVIEW开发太阳能测测系统
- agx上搭建ros2
- 【斯坦福公开课-机器学习】1.机器学习的动机和应用(吴恩达 Andrew Ng)
- 2020年3月27日 失眠问题解决之道 ~ 观想法①
- jk触发器的异步置位端和异步复位端的表示方法
热门文章
- 正则:密码为8-16位的字母、数字以及英文标点符号且同时包含大小写字母
- yum安装mysql缺点_centos7通过yum安装mysql 关键步就几步
- S5PV210的地址映射
- [Python自动化]用Python开发自动化测试脚本
- 用selenium4 webdriver + java 开发第一个自动化测试脚本
- 简单的一个自动化测试脚本
- 【Python画图】matplotlib画折线图plt.plot、柱状图plt.bar、堆叠柱状图、饼图plt.pie以及自定义坐标轴的位置、显示汉字
- yolov4模型部署流程
- 工作流框架flowable6与activiti7的选择
- 自媒体盈利模式有哪些?如何实现盈利?