【零碎】js获取宽高和font-size大小以及样式表的其他值

【零碎】js获取宽高和font-size大小以及样式表的其他值,第1张

如果写在 样式表 里面, 用stylewidth拿不到宽度, 但是通过 elementoffsetWidth 可以获取宽度

写在行内的就可以直接用stylewidth来获取

需要注意的是宽高在设定padding的时候是不同的:

对于普通元素一般第二个参数设置为null就可以了

此方法适用于通用样式表获取样式值

这种方法是对的,不过前提是:你必须有足够权限访问 iframe Docuemnt —— 同域

例如,indexhtml 和 my_framehtml 都在同一域名下,或都在桌面,这样可以

如果你把 iframe 的 src 换为百度网址,就会出现类似下面的错误

Permission denied to access property 'getElementById'

无权访问 'getElementById' 属性

如果你的情况是后者,那就没有解决办法。如果是前者,可能你的代码中有错误。

获取canvas的宽高

相信使用canvas制作2d图画的程序员都遇到过这么一个场景,定义好一块区域,然后在这个区域内绘制图画,那么所绘制的图画充满这个区域,但是因为某些原因,我们要改变canvas的大小,同时改变外部包裹容器的大小。那么我们怎么获取宽高呢?

不同于普通DOM节点,我们可以使用documentgetElementById('')stylewidth;或者documentgetElementById('')offserWidth;获取。

在canvas中,使用这两种方法均不可

首先我们要获取到canvas,在此还是使用的原生的js,

var canvas = documentgetElementById('canvas');

接下来,使用getBoundingClientRect( ),绘制矩形对象。将canvas所占的区域绘制为矩形。这个方法返回的是一个对象,包含元素各边与页面上边与左边 的距离及构成元素的宽高。ie有些许数字差,2px

这样就可以获取到canvas的宽高了。

代码如下

var myCanvas = documentgetElementById(’ ‘);

var myCanvas_rect = myCanvasgetBoundingClientRect();

var widths = myCanvas_rectwidth;

var heights = myCanvas_rectheight;

transform本身就是变形属性,不会改变元素的位置大小等,布局不发生变化,只是对元素进行变换。

所以js获取的宽高是元素未变形前的值,需要获取缩放后的宽高,可以用元素的宽高乘以缩放值。

只有在DOM元素被渲染了之后,才能获取元素实际的宽高。

换句话说,如果元素还未插入DOM树里,就不可能走到渲染这一步,更不可能拿到元素的宽和高。

综上所述,你只能通过在DOM中插入元素,之后再获取已经渲染好的元素的宽高。

以上就是关于【零碎】js获取宽高和font-size大小以及样式表的其他值全部的内容,包括:【零碎】js获取宽高和font-size大小以及样式表的其他值、如何获取页面iframe元素内容的高、宽、怎么获取 canvas rect矩形的宽高等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9561488.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存