• 关于

    getComputedStyle()

    的搜索结果

问题

关于jquery toggle()切换两个函数时报错问题

吴孟桥 2019-12-01 19:36:58 1282 浏览量 回答数 1

问题

请问bstop在这段代码中的作用?以及“:'+(iCur+iSpeed)+'”中左右两个加号的意思?

小旋风柴进 2019-12-01 20:25:06 1359 浏览量 回答数 1

回答

var range = document.getElementById('range'); var span = document.getElementById('span'); var cs = getComputedStyle(range, 0); range.onchange = function() { span.style.left = ((range.value - 1000) * parseInt(cs.width) / 9000 + 18 - range.value/300) + "px"; span.innerHTML = range.value; }; range.onchange();

杨冬芳 2019-12-02 02:39:55 0 浏览量 回答数 0

万券齐发助力企业上云,爆款产品低至2.2折起!

限量神券最高减1000,抢完即止!云服务器ECS新用户首购低至0.95折!

问题

原生js写的动画函数在数值计算上遇到的问题

a123456678 2019-12-01 20:15:28 924 浏览量 回答数 1

问题

js运动框架问题求助

a123456678 2019-12-01 20:19:16 898 浏览量 回答数 1

问题

优化?

杨冬芳 2019-12-01 19:43:16 1111 浏览量 回答数 1

回答

1) 基本上每个JS语句后的;都缺失2) moveAE在事件回调中为什么调用2次,目的是什么?3) 通过getComputedStyle来获取通过CSS添加的样式最终值4) parseInt(elm.style.left)可能获取结果NaN,所以要parseInt(elm.style.left)||0来保护操作5)setTimeout/setInterval要避免出入字符串形式的函数,因其最终是通过eval函数调用,而eval函数是不推荐使用的 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>hey</title> </head> <style type="text/css"> p#line1 { color: transparent; -webkit-text-stroke: 1px #66ceff; position: absolute; top: 350px; left: 140px; font-size: 90px; } p#line2 { color: #66ceff; position: absolute; top: 350px; left: 140px; font-size: 90px; } #botton { background-color:transparent; border: 1px #66ceff solid; position: absolute; top: 250px; left: 520px; font-size: 30px; color:#66ceff; width:150px; height:46px; line-height:40px; text-align:center; } /*#botton :hover{ 错误*/ #botton :hover{ background-color:#66ceff; color:#ffffff; } </style> <body> <p id="line1">Hello,John.</p> <p id="line2">削了个椰子,你却给个梨</p> <div id="botton"> move </div> </body> <script type="text/javascript"> /*function moveAE("elementid", xfi, yfi, intime) { 错误*/ var movement; function moveAE(elementid, xfi, yfi, intime) { if (!document.getElementById(elementid)) return false; var elem = document.getElementById(elementid); var computedstyle=getComputedStyle(elem); var xnow = parseInt(computedstyle.left)||0; var ynow = parseInt(computedstyle.top)||0; console.log(xnow); /*if (xnow = xfi && ynow = yfi) return false 错误*/ //console.log(elem.style); function animation(){ if (xnow == xfi && ynow == yfi) return; if (xnow < xfi) { xnow++; } if (xnow > xfi) { xnow--; } if (ynow < yfi) { ynow++; } if (ynow > yfi) { ynow--; } elem.style.left = xnow + "px"; elem.style.top = ynow + "px"; movement = setTimeout(function(){ animation(); }, intime); } animation(); } var bott = document.getElementById("botton") bott.addEventListener("click", function() { moveAE('line1', 350, 250, 10); //moveAE('line2', 350, 350, 10); }) </script> </html>

西秦说云 2019-12-02 02:53:53 0 浏览量 回答数 0

问题

内容loading加载后高度变化CSS3 transition体验优化

杨冬芳 2019-12-01 20:04:41 970 浏览量 回答数 1

问题

js匀速运动框架,多属性运动,如何让每个属性都到达目标值?

杨冬芳 2019-12-01 20:17:44 791 浏览量 回答数 1

回答

HTMLElement.prototype.__defineGetter__("currentStyle", function () { return this.ownerDocument.defaultView.getComputedStyle(this, null); });function fun(){var color = document.body.currentStyle.backgroundColor; alert(color);}

24k-xf 2019-12-02 00:53:48 0 浏览量 回答数 0

回答

function getStyle(obj, attr, value) { if (!value) { if (obj.currentStyle) { return obj.currentStyle(attr); } else { obj.getComputedStyle(attr, false); } } else { obj.style[attr] = value; } }

kun坤 2019-12-02 03:23:06 0 浏览量 回答数 0

回答

一方面,CSS样式修改是渲染中的一种高成本操作,所以浏览器一般会缓存渲染树的更新。但有的情况则不会缓存,比如: 1.调整窗口大小和修改页面默认字体 2.client/offset/scroll(比如访问 node.clientWidth 属性) 3.getComputedStyle() currentStyle 另一方面,setTimeout 是要等执行线程空闲的时候才会触发的。 以上是原理。下面看问题: 假设没有 setTimeout,效果成了: // 立即重排 var height = window.getComputedStyle(element).height; // 缓存之 element.style.height = "auto"; // 立即重排 var targetHeight = window.getComputedStyle(element).height; // 下面开始重点: // 缓存之 element.style.height = height; // 缓存之 if (time) element.style.transition = "height "+ time +"ms"; // 缓存之 element.style.height = targetHeight; // 渲染 结果就是,根本不会渲染高度为 height,而是直接渲染成 targetHeight。我们想要的结果是从 height 到 targetHeight 的过渡。 那有了 setTimeout,效果就是酱紫的了: // 缓存之 element.style.height = height; // 空闲了才干 setTimeout(function() { if (time) element.style.transition = "height "+ time +"ms"; element.style.height = targetHeight; }, 15); // 立即重排 喏喏,浏览器得先重排高度为 height 才闲下来,而一闲下来才要求重排到 targetHeight,这才会产生过渡效果

杨冬芳 2019-12-02 02:34:45 0 浏览量 回答数 0

回答

一方面,CSS样式修改是渲染中的一种高成本操作,所以浏览器一般会缓存渲染树的更新。但有的情况则不会缓存,比如: 1.调整窗口大小和修改页面默认字体 2.client/offset/scroll(比如访问 node.clientWidth 属性) 3.getComputedStyle() currentStyle 另一方面,setTimeout 是要等执行线程空闲的时候才会触发的。 以上是原理。下面看问题: 假设没有 setTimeout,效果成了: // 立即重排 var height = window.getComputedStyle(element).height; // 缓存之 element.style.height = "auto"; // 立即重排 var targetHeight = window.getComputedStyle(element).height; // 下面开始重点: // 缓存之 element.style.height = height; // 缓存之 if (time) element.style.transition = "height "+ time +"ms"; // 缓存之 element.style.height = targetHeight; // 渲染 结果就是,根本不会渲染高度为 height,而是直接渲染成 targetHeight。我们想要的结果是从 height 到 targetHeight 的过渡。 那有了 setTimeout,效果就是酱紫的了: // 缓存之 element.style.height = height; // 空闲了才干 setTimeout(function() { if (time) element.style.transition = "height "+ time +"ms"; element.style.height = targetHeight; }, 15); // 立即重排 喏喏,浏览器得先重排高度为 height 才闲下来,而一闲下来才要求重排到 targetHeight,这才会产生过渡效果。

杨冬芳 2019-12-02 02:52:59 0 浏览量 回答数 0

回答

用手拖动ul,可以根据速度,惯性移动不同距离,超出范围了还能回弹,供参考~ <script type="text/javascript"> //得到各种元素 var nav = document.querySelector("nav"); var navul = document.querySelector("nav ul"); var navullis = document.querySelectorAll("nav ul li"); var navW = parseInt(window.getComputedStyle(nav , null)['width']); //宽度 navul.style.width = navullis.length * 82 +"px"; nav.addEventListener("touchstart",touchstartHandler); nav.addEventListener("touchmove",touchmoveHandler); nav.addEventListener("touchend",touchendHandler); var startX; var nowX = 0; var dX; var lastTwoPoint = [0,0]; //开始滑动 function touchstartHandler(event){ navul.style.webkitTransition = "none"; //去掉过渡 navul.style.transition = "none"; //去掉过渡 startX = event.touches[0].pageX; //记录起点 } //滑动过程 function touchmoveHandler(event){ event.preventDefault();

爵霸 2019-12-02 02:52:25 0 浏览量 回答数 0

回答

呃…… 自己傻逼了…… 实际调用时没完全按文档来…… 因为在我的动画方法中为了让数值型 CSS 属性之间的运算更方便,自己写的 Get_Style() 函数会对其返回值自动转类型。当各种计算之后要 Set_Style() 时,setProperty() 的第二个参数可能传入的是 Number 值,而非 IE 9 文档规定的 String…… 其实 W3C 的文档也是这么规定的,但大多数浏览器 都会像“连字符 转 驼峰法”那样隐式转换 CSS 属性值的类型,唯独 IE 9 - CSSStyleDeclaration 的程序猿较了个真儿…… —————————————————————— 发个修改后的代码 纪念一下重新开始努力的 IE —— var is_Trident = navigator.userAgent.match(/MSIE (\d+)|Trident[^)]+rv:(\d+)/i); var IE_Version = is_Trident ? Number(is_Trident[1] || is_Trident[2]) : NaN; function Get_Style(iElement, iName) {     var iStyle = (IE_Version < 9) ?             iElement.currentStyle.getAttribute(iName) :             DOM.defaultView.getComputedStyle(iElement, null).getPropertyValue(iName);     if (typeof iStyle == 'number')         return iStyle;     var iNumber = iStyle.match(/(\d+(.\d+)?)(px$)?/i);     iNumber = iNumber ? Number(iNumber[1]) : NaN;     return  isNaN(iNumber) ? iStyle : iNumber; } var PX_Needed = { width: true, 'min-width': true, 'max-width': true, height: true, 'min-height': true, 'max-height': true, 'border-radius': true, margin: true, padding: true, top: true, left: true }; function Set_Style(iElement, iName, iValue) { if ((! isNaN( Number(iValue) )) && PX_Needed[iName]) iValue += 'px'; iElement.style[ (IE_Version < 9) ? 'setAttribute' : 'setProperty' ](         iName,         (IE_Version != 9) ? iValue : iValue.toString(),         'important'     ); }

kun坤 2020-05-28 09:29:47 0 浏览量 回答数 0

回答

呃…… 自己傻逼了…… 实际调用时没完全按文档来…… 因为在我的动画方法中为了让数值型 CSS 属性之间的运算更方便,自己写的 Get_Style() 函数会对其返回值自动转类型。当各种计算之后要 Set_Style() 时,setProperty() 的第二个参数可能传入的是 Number 值,而非 IE 9 文档规定的 String…… 其实 W3C 的文档也是这么规定的,但大多数浏览器 都会像“连字符 转 驼峰法”那样隐式转换 CSS 属性值的类型,唯独 IE 9 - CSSStyleDeclaration 的程序猿较了个真儿…… —————————————————————— 发个修改后的代码 纪念一下重新开始努力的 IE —— var is_Trident = navigator.userAgent.match(/MSIE (\d+)|Trident[^\)]+rv:(\d+)/i); var IE_Version = is_Trident ? Number(is_Trident[1] || is_Trident[2]) : NaN; function Get_Style(iElement, iName) {     var iStyle = (IE_Version < 9) ?             iElement.currentStyle.getAttribute(iName) :             DOM.defaultView.getComputedStyle(iElement, null).getPropertyValue(iName);     if (typeof iStyle == 'number')         return iStyle;     var iNumber = iStyle.match(/(\d+(\.\d+)?)(px$)?/i);     iNumber = iNumber ? Number(iNumber[1]) : NaN;     return  isNaN(iNumber) ? iStyle : iNumber; } var PX_Needed = { width: true, 'min-width': true, 'max-width': true, height: true, 'min-height': true, 'max-height': true, 'border-radius': true, margin: true, padding: true, top: true, left: true }; function Set_Style(iElement, iName, iValue) { if ((! isNaN( Number(iValue) )) && PX_Needed[iName]) iValue += 'px'; iElement.style[ (IE_Version < 9) ? 'setAttribute' : 'setProperty' ](         iName,         (IE_Version != 9) ? iValue : iValue.toString(),         'important'     ); }

kun坤 2020-06-08 11:18:57 0 浏览量 回答数 0

问题

一些书签小程序不能在iOS上执行:如何调试?

游客5akardh5cojhg 2019-12-23 18:33:51 0 浏览量 回答数 0

问题

js新手求助,帮看下面一行代码~(标红的地方)? 400 报错

爱吃鱼的程序员 2020-05-30 22:52:02 0 浏览量 回答数 1

回答

documen.getElementById("1").style.left获取的是dom对象中css值,级联样式要用window.getComputedStyle(标准浏览器)或者currentStyle(IE低版本)

小旋风柴进 2019-12-02 02:11:54 0 浏览量 回答数 0

回答

" 呃…… 自己傻逼了…… 实际调用时没完全按文档来……<img src=""http://www.oschina.net/js/ke/plugins/emoticons/images/43.gif"" alt="""" /><img src=""http://www.oschina.net/js/ke/plugins/emoticons/images/17.gif"" alt="""" /><img src=""http://www.oschina.net/js/ke/plugins/emoticons/images/10.gif"" alt="""" /><img src=""http://www.oschina.net/js/ke/plugins/emoticons/images/36.gif"" alt="""" /><img src=""http://www.oschina.net/js/ke/plugins/emoticons/images/38.gif"" alt="""" /> 因为在我的动画方法中为了让数值型 CSS 属性之间的运算更方便,自己写的 Get_Style() 函数会对其返回值自动转类型。当各种计算之后要 Set_Style() 时,setProperty() 的第二个参数可能传入的是 Number 值,而非 IE 9 文档规定的 String…… 其实 W3C 的文档也是这么规定的,但大多数浏览器 都会像“连字符 转 驼峰法”那样隐式转换 CSS 属性值的类型,唯独 IE 9 - CSSStyleDeclaration 的程序猿较了个真儿…… —————————————————————— 发个修改后的代码 纪念一下重新开始努力的 IE —— var is_Trident = navigator.userAgent.match(/MSIE (\d+)|Trident[^\)]+rv:(\d+)/i); var IE_Version = is_Trident ? Number(is_Trident[1] || is_Trident[2]) : NaN; function Get_Style(iElement, iName) {     var iStyle = (IE_Version < 9) ?             iElement.currentStyle.getAttribute(iName) :             DOM.defaultView.getComputedStyle(iElement, null).getPropertyValue(iName);     if (typeof iStyle == 'number')         return iStyle;     var iNumber = iStyle.match(/(\d+(\.\d+)?)(px$)?/i);     iNumber = iNumber ? Number(iNumber[1]) : NaN;     return  isNaN(iNumber) ? iStyle : iNumber; } var PX_Needed = { width: true, 'min-width': true, 'max-width': true, height: true, 'min-height': true, 'max-height': true, 'border-radius': true, margin: true, padding: true, top: true, left: true }; function Set_Style(iElement, iName, iValue) { if ((! isNaN( Number(iValue) )) && PX_Needed[iName]) iValue += 'px'; iElement.style[ (IE_Version < 9) ? 'setAttribute' : 'setProperty' ](         iName,         (IE_Version != 9) ? iValue : iValue.toString(),         'important'     ); }"

montos 2020-05-31 13:03:41 0 浏览量 回答数 0

问题

js控制Style时报错.

杨冬芳 2019-12-01 20:07:58 1095 浏览量 回答数 1

回答

如果是行间样式,获取div.style.XX修改即可,如果是样式表,可以用div.currentStyle.XX(for IE)或者getComputedStyle(div).XX(for Chrome)

pppiglet 2019-12-02 02:07:35 0 浏览量 回答数 0

问题

Javascript获取有CSS动画的标签的属性值

小旋风柴进 2019-12-01 20:23:18 940 浏览量 回答数 1

回答

这里说一下,样式的三种方式:内联样式:直接写在标签上内部样式:直接写在当前文件,通过style标签包含外部样式表:通过外部.css文件加载xx.style.**的方式,只能获取到内联样式,对于后面两种是获取不到的。从而引入了currentStyle,runtimeStyle,getComputedStyle这三种获取样式的方式(其实是两种)

a123456678 2019-12-02 02:04:41 0 浏览量 回答数 0

回答

兼容模式是IE浏览器,一般内核就是ie7,ie8之类的,Promise是es6语法了,不兼容ie7,8。要兼容性好就在服务器端生成,而不是用客户端js 因为是要将echarts导出,echarts的直接转成base64的时候有个黑底,但是又不能简单的通过添加背景颜色去解决。我看了一下echarts渲染图表的节点,环形图是分了3个canvas在渲染,一个放背景颜色,一个放一些气泡动画,还有一个放图表内容。也就是我想导出的那个包含图表内容的canvas节点,是无法通过config去配置它的底色的。。。。也许改源码可以,但是这个超过能力范畴了。总的来说就是无论后台生成还是前端直接导出,我都要用到html2canvas去截这个图。但现在这个插件的代码在IE下面跑不下去。 另外为什么不用echarts自带的图片导出:一是因为除了图片还有一个pdf格式的需求,二是因为一个页面是由多张图表组成的,美工要求导出的文件排下版一起导出 楼主,解决了吗,我的也是这个问题,尝试使用了ie兼容补丁也是不行 你好?请问解决了吗?我现在也是使用html2canvas在360兼容模式下报错,另外保存如何将base64图片保存到本地。要考虑ie的兼容性。 楼主解决了吗?我也是这个问题,求解决方案 IE8调试了下,其中有句代码t.getComptedStyle(e,n)报错了,原因是ie8不支持getComputedStyle方法,改为e.currentStyle?e.currentStyle:t.getComputedStyle(e,n),是可以解决这个问题了,但是后面还有其他问题引出。暂时无解。

爱吃鱼的程序员 2020-06-23 14:11:47 0 浏览量 回答数 0

回答

1.首先说一下你写的这段代码,这段代码是有效的,代表整个页面默认字体大小为16*2,16px字体大小是初始化时网页默认的大小,你的是200%,当然也是按照2倍计算的。2.你说的html的父元素,这个可能有点问题,你想知道的应该是根元素document.documentElement的字体大小是多少对吧,我不说是多说,你自己运行一下就会一目了然window.getComputedStyle(document.documentElement,null)['fontSize']3.字体的规定可以用百分数,px,em,rem或者其他的单位,看你想做什么样的页面了,固定尺寸的就用px就够了,但是如果要做响应式rem常用一些,兼容低版本自然会有相应的办法,如sass中的计算方式,或者通过js来改变根元素的大小。em相对于父元素来决定,而rem是根据html的字体大小来决定的。

杨冬芳 2019-12-02 02:32:30 0 浏览量 回答数 0

回答

1.首先说一下你写的这段代码,这段代码是有效的,代表整个页面默认字体大小为16*2,16px字体大小是初始化时网页默认的大小,你的是200%,当然也是按照2倍计算的。2.你说的html的父元素,这个可能有点问题,你想知道的应该是根元素document.documentElement的字体大小是多少对吧,我不说是多说,你自己运行一下就会一目了然window.getComputedStyle(document.documentElement,null)['fontSize']3.字体的规定可以用百分数,px,em,rem或者其他的单位,看你想做什么样的页面了,固定尺寸的就用px就够了,但是如果要做响应式rem常用一些,兼容低版本自然会有相应的办法,如sass中的计算方式,或者通过js来改变根元素的大小。em相对于父元素来决定,而rem是根据html的字体大小来决定的。最后,你可以多动手写一下,这样不但加深印象,也会认识的更深刻,多去一些css,前端网站看看,如大漠大大的w3cplus和sass中国,这是一篇文章,你可以看看http://www.cn-sass.com/%E6%8A%80%E5%B7%A7/sass-px-to-rem-with-mixin-and-function.html

a123456678 2019-12-02 02:23:49 0 浏览量 回答数 0

回答

浏览器渲染机制 浏览器采用流式布局模型(Flow Based Layout)浏览器会把HTML解析成DOM,把CSS解析成CSSOM,DOM和CSSOM合并就产生了渲染树(Render Tree)。有了RenderTree,我们就知道了所有节点的样式,然后计算他们在页面上的大小和位置,最后把节点绘制到页面上。由于浏览器使用流式布局,对Render Tree的计算通常只需要遍历一次就可以完成,但table及其内部元素除外,他们可能需要多次计算,通常要花3倍于同等元素的时间,这也是为什么要避免使用table布局的原因之一。 重绘 由于节点的几何属性发生改变或者由于样式发生改变而不会影响布局的,称为重绘,例如outline, visibility, color、background-color等,重绘的代价是高昂的,因为浏览器必须验证DOM树上其他节点元素的可见性。 回流 回流是布局或者几何属性需要改变就称为回流。回流是影响浏览器性能的关键因素,因为其变化涉及到部分页面(或是整个页面)的布局更新。一个元素的回流可能会导致了其所有子元素以及DOM中紧随其后的节点、祖先节点元素的随后的回流。 <body> <div class="error"> <h4>我的组件</h4> <p><strong>错误:</strong>错误的描述…</p> <h5>错误纠正</h5> <ol> <li>第一步</li> <li>第二步</li> </ol> </div> </body> 在上面的HTML片段中,对该段落(p标签)回流将会引发强烈的回流,因为它是一个子节点。这也导致了祖先的回流(div.error和body – 视浏览器而定)。此外,h5和ol也会有简单的回流,因为其在DOM中在回流元素之后。大部分的回流将导致页面的重新渲染。 回流必定会发生重绘,重绘不一定会引发回流。 浏览器优化 现代浏览器大多都是通过队列机制来批量更新布局,浏览器会把修改操作放在队列中,至少一个浏览器刷新(即16.6ms)才会清空队列,但当你获取布局信息的时候,队列中可能有会影响这些属性或方法返回值的操作,即使没有,浏览器也会强制清空队列,触发回流与重绘来确保返回正确的值。 主要包括以下属性或方法: - offsetTop、offsetLeft、offsetWidth、offsetHeight - scrollTop、scrollLeft、scrollWidth、scrollHeight - clientTop、clientLeft、clientWidth、clientHeight - width、height - getComputedStyle() - getBoundingClientRect() 所以,我们应该避免频繁的使用上述的属性,他们都会强制渲染刷新队列。 减少重绘与回流 CSS 使用 transform 替代 top使用 visibility 替换 display: none ,因为前者只会引起重绘,后者会引发回流(改变了布局)避免使用table布局,可能很小的一个小改动会造成整个 table 的重新布局。尽可能在DOM树的最末端改变class,回流是不可避免的,但可以减少其影响。尽可能在DOM树的最末端改变class,可以限制了回流的范围,使其影响尽可能少的节点。 避免设置多层内联样式,CSS 选择符从右往左匹配查找,避免节点层级过多。 <div> <a> <span></span> </a> 对于第一种设置样式的方式来说,浏览器只需要找到页面中所有的 span 标签然后设置颜色,但是对于第二种设置样式的方式来说,浏览器首先需要找到所有的 span 标签,然后找到 span 标签上的 a 标签,最后再去找到 div 标签,然后给符合这种条件的 span 标签设置颜色,这样的递归过程就很复杂。所以我们应该尽可能的避免写过于具体的 CSS 选择器,然后对于 HTML 来说也尽量少的添加无意义标签,保证层级扁平。 - 将动画效果应用到position属性为absolute或fixed的元素上,避免影响其他元素的布局,这样只是一个重绘,而不是回流,同时,控制动画速度可以选择 requestAnimationFrame,详见探讨 requestAnimationFrame。 - 避免使用CSS表达式,可能会引发回流。 - 将频繁重绘或者回流的节点设置为图层,图层能够阻止该节点的渲染行为影响别的节点,例如will-change、video、iframe等标签,浏览器会自动将该节点变为图层。 - CSS3 硬件加速(GPU加速),使用css3硬件加速,可以让transform、opacity、filters这些动画不会引起回流重绘 。但是对于动画的其它属性,比如background-color这些,还是会引起回流重绘的,不过它还是可以提升这些动画的性能。 2. Javascript - 避免频繁操作样式,最好一次性重写style属性,或者将样式列表定义为class并一次性更改class属性。 - 避免频繁操作DOM,创建一个documentFragment,在它上面应用所有DOM操作,最后再把它添加到文档中。 - 避免频繁读取会引发回流/重绘的属性,如果确实需要多次使用,就用一个变量缓存起来。 - 对具有复杂动画的元素使用绝对定位,使它脱离文档流,否则会引起父元素及后续元素频繁回流。

九旬 2020-05-24 11:22:47 0 浏览量 回答数 0
阿里云大学 云服务器ECS com域名 网站域名whois查询 开发者平台 小程序定制 小程序开发 国内短信套餐包 开发者技术与产品 云数据库 图像识别 开发者问答 阿里云建站 阿里云备案 云市场 万网 阿里云帮助文档 免费套餐 开发者工具 企业信息查询 小程序开发制作 视频内容分析 企业网站制作 视频集锦 代理记账服务 企业建站模板