js 获取图像缩放后的实际宽高,位置等信息


Posted in Javascript onMarch 07, 2017

项目中遇到图片实际显示尺寸的判定问题,图片可能被缩放过,所以实际显示的宽高无法通过常见的各种width,height拿到(都是得到图像的自然宽度或者字面宽度,并非实际显示结果)

在网上百度了一大圈也没有找到,今天早上偶然找到2个很方便的方法:

object.getClientRects();object.getBoundingClientRect();

可以轻易获得当前元素的绝对位置(不含scrollLeft和scrollTop,需要用的话单独加上去)和显示出来的实际宽高

getClientRects 和 getBoundingClientRect 的区别

getClientRects 返回一个TextRectangle集合,就是TextRectangleList对象。

getBoundingClientRect 返回 一个TextRectangle对象,即使DOM里没有文本也能返回TextRectangle对象.

浏览器差异:

除了safari,firefox2.0外所有浏览器都支持getClientRects和getBoundingClientRect,

firefox 3.1给TextRectangle增加了 width 和 height。

ie 和非ie浏览器在使用getClientRects还是有些差别的,ie获取TextRectangleList的范围很大。而非ie获取的范围比较小, 只有display:inline的对象才能获取到TextRectangleList,例如em i span 等标签。

通过测试,至少Chrome 2+\Safari 4\Firefox3.5\0pera 9.63+已经支持getBoundingClientRect方法。

出于浏览器兼容的考虑,现在用得最多的是getBoundingClientRect,经常用来获取一个element元素的viewport坐标。

MDN关于getBoundingClientRect的详细介绍:https://developer.mozilla.org/zh-CN/docs/Web/API/Element/getBoundingClientRect

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
jquery异步跨域访问代码
Jun 28 Javascript
JS.elementGetStyle(element, style)应用示例
Sep 24 Javascript
关于jquery中全局函数each使用介绍
Dec 10 Javascript
jQuery队列操作方法实例
Jun 11 Javascript
Lab.js初次使用笔记
Feb 28 Javascript
jquery html动态添加的元素绑定事件详解
May 24 Javascript
express框架实现基于Websocket建立的简易聊天室
Aug 10 Javascript
基于webpack 实用配置方法总结
Sep 28 Javascript
vue搜索和vue模糊搜索代码实例
May 07 Javascript
使用Node.js写一个代码生成器的方法步骤
May 10 Javascript
Openlayers测量距离与面积的实现方法
Sep 25 Javascript
js实现网页随机验证码
Oct 19 Javascript
JavaScript和JQuery获取DIV值的方法示例
Mar 07 #Javascript
AngularJS监听路由变化的方法
Mar 07 #Javascript
微信小程序开发之入门实例教程篇
Mar 07 #Javascript
JavaScript实现替换字符串中最后一个字符的方法
Mar 07 #Javascript
Node.js查找当前目录下文件夹实例代码
Mar 07 #Javascript
jQuery模拟下拉框选择对应菜单的内容
Mar 07 #Javascript
详解JS异步加载的三种方式
Mar 07 #Javascript
You might like
社区(php&&mysql)四
2006/10/09 PHP
用PHP的ob_start();控制您的浏览器cache!
2007/02/14 PHP
PHP mail()函数使用及配置方法
2014/01/14 PHP
php 伪静态之IIS篇
2014/06/02 PHP
thinkphp普通查询与表达式查询实例分析
2014/11/24 PHP
ecshop 2.72如何修改后台访问地址
2015/03/03 PHP
PHP实现WebService的简单示例和实现步骤
2015/03/27 PHP
ThinkPHP实现转换数据库查询结果数据到对应类型的方法
2017/11/16 PHP
JavaScript的目的分析
2007/01/05 Javascript
超强的IE背景图片闪烁(抖动)的解决办法
2007/09/09 Javascript
Javascript实现CheckBox的全选与取消全选的代码
2010/07/20 Javascript
js弹出的对话窗口永远保持居中显示
2012/12/15 Javascript
Jquery实现页面加载时弹出对话框代码
2013/04/19 Javascript
客户端js判断文件类型和文件大小即限制上传大小
2013/11/20 Javascript
分享一个自己写的简单的javascript分页组件
2015/02/15 Javascript
谈一谈javascript中继承的多种方式
2016/02/19 Javascript
Jquery元素追加和删除的实现方法
2016/05/24 Javascript
js实现界面向原生界面发消息并跳转功能
2016/11/22 Javascript
laydate日历控件使用方法详解
2017/11/20 Javascript
让你5分钟掌握9个JavaScript小技巧
2018/06/09 Javascript
在小程序中使用canvas的方法示例
2018/09/17 Javascript
微信小程序实现保存图片到相册功能
2018/11/30 Javascript
layui table单元格事件修改值的方法
2019/09/24 Javascript
JS实现简单日历特效
2020/01/03 Javascript
vue动态设置页面title的方法实例
2020/08/23 Javascript
Python中使用pypdf2合并、分割、加密pdf文件的代码详解
2019/05/21 Python
python实现秒杀商品的微信自动提醒功能(代码详解)
2020/04/27 Python
科颜氏加拿大官方网站: Kiehl’s加拿大
2016/08/16 全球购物
英国女性运动服品牌:Sweaty Betty
2018/11/08 全球购物
Aurora London官网:奢华、负担得起的皮革手袋
2020/08/01 全球购物
办公室文秘自我鉴定
2013/09/21 职场文书
优秀毕业生求职推荐信范文
2013/11/21 职场文书
民族团结好少年事迹材料
2014/08/19 职场文书
品德与社会教学反思
2016/02/24 职场文书
会计专业2019暑假实习报告
2019/06/21 职场文书
OpenCV-Python实现轮廓拟合
2021/06/08 Python