如果写在 样式表 里面, 用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矩形的宽高等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)