首页 新闻 会员 周边 捐助

canvas

0
悬赏园豆:15 [已解决问题] 解决于 2015-01-30 12:43

我在一个函数里面动态设置了canvas的宽高
但是要在另一个函数里面想获取canvas的宽高怎么获取
因为是动态的我用width之类的是没有用,而且上面是两个不同的js文件

Mi文的主页 Mi文 | 初学一级 | 园豆:6
提问于:2015-01-29 18:15
< >
分享
最佳答案
0

首先,这种问题你应该去看书,或者w3c~~

然后我就说一下我的做法:

你在函数里设置的宽高设置的是html的style属性还是width或height属性?

1、如果是style属性的话

jq库的$.css函数可以帮你,$.css函数取的是最终显示的属性值。如果你要用原生的,你也可以直接用dom.style.属性名来取,但是这个方法不能取到.css文件里的值。

假设你一定要获取.css文件里的属性,百度一下(google……)很多结果,各大浏览器的支持程度不一样,建议用jq库。

2、如果是width或height属性

原生就可以用dom.setAttribute方法设置或修改属性值,jq的话也很简单,可以看文档~~

收获园豆:15
进击的小矮人 | 菜鸟二级 |园豆:316 | 2015-01-30 09:59

   你的这些我都用过了,主要是canvas是动态设置的宽高,不是写死了的,程序执行的时候他的宽高还没有被设置出来,我这里就去获取他返回的是undefined

Mi文 | 园豆:6 (初学一级) | 2015-01-30 10:13

@Mi文: 请问你是如何动态设置宽高的?可以把代码贴出来吗?

进击的小矮人 | 园豆:316 (菜鸟二级) | 2015-01-30 11:09

@进击的小矮人: 代码太多了,我是用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文 | 园豆:6 (初学一级) | 2015-01-30 11:52

@Mi文: 是顺序的问题,现在可以出来了,谢了

Mi文 | 园豆:6 (初学一级) | 2015-01-30 12:43

@Mi文: 你这样自己写的动态加载,还不如用大神写的按需加载的库,也不叫库吧。类似于requireJS或commonJS的东西,它叫seaJS。js是按照代码顺序执行的,也最好在dom树生成完后再执行js~

进击的小矮人 | 园豆:316 (菜鸟二级) | 2015-01-30 13:18
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册