我在一个函数里面动态设置了canvas的宽高
但是要在另一个函数里面想获取canvas的宽高怎么获取
因为是动态的我用width之类的是没有用,而且上面是两个不同的js文件
首先,这种问题你应该去看书,或者w3c~~
然后我就说一下我的做法:
你在函数里设置的宽高设置的是html的style属性还是width或height属性?
1、如果是style属性的话
jq库的$.css函数可以帮你,$.css函数取的是最终显示的属性值。如果你要用原生的,你也可以直接用dom.style.属性名来取,但是这个方法不能取到.css文件里的值。
假设你一定要获取.css文件里的属性,百度一下(google……)很多结果,各大浏览器的支持程度不一样,建议用jq库。
2、如果是width或height属性
原生就可以用dom.setAttribute方法设置或修改属性值,jq的话也很简单,可以看文档~~
你的这些我都用过了,主要是canvas是动态设置的宽高,不是写死了的,程序执行的时候他的宽高还没有被设置出来,我这里就去获取他返回的是undefined
@Mi文: 请问你是如何动态设置宽高的?可以把代码贴出来吗?
@进击的小矮人: 代码太多了,我是用setAttribute去做的,网页上是可以看到的,这个是没问题的,不然我的页面就变形了,应该是js先后加载顺序的问题,我这个js先后顺序加载的代码不知道哪里出问题了,执行不了,在ie下那些回调函数都能被执行,但页面上就是没有创建script引用,能否帮忙看下,如果有可以执行的也可以贴出来看下,谢谢
<script type="text/javascript"> function loadScript(url, callback) { var _script = document.createElement("script"); _script.type="text/javascript"; if (_script.readyState) { _script.onreadystatechange = function () { if (_script.readyState == "loaded" || _script.readyState == "complete") { _script.onreadystatechange = null; callback(); } } }else{ //非IE _script.onload = function () { callback(); } } _script.src=url; document.getElementsByTagName("head")[0].appendChild(_script); } loadScript("js/jquery-1.10.1.min.js",function(){ loadScript("js/idangerous.swiper.js",function(){ loadScript("js/BaccChartParse.js",function(){ loadScript("js/textjs.js",function(){ }); }); }); }); </script>
@Mi文: 是顺序的问题,现在可以出来了,谢了
@Mi文: 你这样自己写的动态加载,还不如用大神写的按需加载的库,也不叫库吧。类似于requireJS或commonJS的东西,它叫seaJS。js是按照代码顺序执行的,也最好在dom树生成完后再执行js~