没有找到合适的产品?
联系客服协助选型:023-68661681
提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
原创|其它|编辑:郝浩|2009-10-14 11:22:25.000|阅读 507 次
概述:javascript在处理图像的能力其实是不弱的,可惜浏览器大战连累了它,这还不算,Adobe 收购Macromedia更让SVG处于怠工状态。作为新力军,苹果为我们带来了canvas标签。
# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>
上一部分给出的函数已经完全地实现了跨浏览器了,但在IE的实现是极其低劣,动用了多个table以及一向为人所诟病的滤镜。IE还有一个利器至今没有被使用过,那就是VML。虽然比不上SVG,但它还是非常强大的。在实现渐变上,其fill还比IE的Gragient滤镜强悍得多了。不过VML出现得比较早,只支持很少的颜色名,如red,blue,yellow,其他如orange就可以搞死它了。因此要使用VML做线性渐变,我们得对这些颜色名做一下转换。
black = #000000 | green = #008000 | silver = #c0c0c0 | lime = #00ff00 |
gray = #808080 | olive = #808000 | white = #ffffff | yellow = #ffff00 |
maroon = #800000 | navy = #000080 | red = #ff0000 | blue = #0000ff |
purple = #800080 | teal = #008080 | fuchsia = #ff00ff | aqua = #00ffff |
1.
var htmlcolor={
black
:
"#000"
,
green
:
"#008000"
,
silver
:
"#c0c0c0"
,
lime
:
"#0f0"
,
2.
gray
:
"#808080"
,
olive
:
"#808000"
,
white
:
"#fff"
,yellow :
"#ff0"
,
3.
maroon
:
"#800000"
,
navy
:
"#000080"
,
red
:
"#f00"
,
blue
:
"#00f"
,
4.
purple
:
"#800080"
,
teal
:
"#008080"
,
fuchsia
:
"#f0f"
,
aqua
:
"#0ff"
,
5.
indigo :
"#4b0082"
,orange :
"#ffa500"
,sienna :
"#a0522d"
,plum :
"#dda0dd"
,
6.
gold :
"#ffd700"
, tan :
"#d2b48c"
, snow :
"#fffafa"
,violet :
"#ee82ee"
7.
}
1.
2.
var htmlcolor = {aliceblue:
"#f0f8ff"
, amethyst:
"#96c"
, antiquewhite:
"#faebd7"
, aqua:
"#0ff"
, aquamarine:
"#7fffd4"
, azure:
"#f0ffff"
, beige:
"#f5f5dc"
, bisque:
"#ffe4c4"
, black:
"#000"
, blanchedalmond:
"#ffebcd"
, blue:
"#00f"
, blueviolet:
"#8a2be2"
, brown:
"#a52a2a"
, burlywood:
"#deb887"
, cadetblue:
"#5f9ea0"
, chartreuse:
"#7fff00"
, chocolate:
"#d2691e"
, coral:
"#ff7f50"
, cornflowerblue:
"#6495ed"
, cornsilk:
"#fff8dc"
, crimson:
"#dc143c"
, cyan:
"#0ff"
, darkblue:
"#00008b"
, darkcyan:
"#008b8b"
, darkgoldenrod:
"#b8860b"
, darkgray:
"#a9a9a9"
, darkgreen:
"#006400"
, darkkhaki:
"#bdb76b"
, darkmagenta:
"#8b008b"
, darkolivegreen:
"#556b2f"
, darkorange:
"#ff8c00"
, darkorchid:
"#9932cc"
, darkred:
"#8b0000"
, darksalmon:
"#e9967a"
, darkseagreen:
"#8fbc8f"
, darkslateblue:
"#483d8b"
, darkslategray:
"#2f4f4f"
, darkturquoise:
"#00ced1"
, darkviolet:
"#9400d3"
, deeppink:
"#ff1493"
, deepskyblue:
"#00bfff"
, dimgray:
"#696969"
, dodgerblue:
"#1e90ff"
, firebrick:
"#b22222"
, floralwhite:
"#fffaf0"
, forestgreen:
"#228b22"
, fuchsia:
"#f0f"
, gainsboro:
"#dcdcdc"
, ghostwhite:
"#f8f8ff"
, gold:
"#ffd700"
, goldenrod:
"#daa520"
, gray:
"#808080"
, green:
"#008000"
, greenyellow:
"#adff2f"
, honeydew:
"#f0fff0"
, hotpink:
"#ff69b4"
, indianred:
"#cd5c5c"
, indigo:
"#4b0082"
, ivory:
"#fffff0"
, khaki:
"#f0e68c"
, lavender:
"#e6e6fa"
, lavenderblush:
"#fff0f5"
, lawngreen:
"#7cfc00"
, lemonchiffon:
"#fffacd"
, lightblue:
"#add8e6"
, lightcoral:
"#f08080"
, lightcyan:
"#e0ffff"
, lightgoldenrodyellow:
"#fafad2"
, lightgreen:
"#90ee90"
, lightgrey:
"#d3d3d3"
, lightpink:
"#ffb6c1"
, lightsalmon:
"#ffa07a"
, lightsalmon:
"#ffa07a"
, lightseagreen:
"#20b2aa"
, lightskyblue:
"#87cefa"
, lightslategray:
"#789"
, lightsteelblue:
"#b0c4de"
, lightyellow:
"#ffffe0"
, lime:
"#0f0"
, limegreen:
"#32cd32"
, linen:
"#faf0e6"
, magenta:
"#f0f"
, maroon:
"#800000"
, mediumaquamarine:
"#66cdaa"
, mediumblue:
"#0000cd"
, mediumorchid:
"#ba55d3"
, mediumpurple:
"#9370db"
, mediumseagreen:
"#3cb371"
, mediumslateblue:
"#7b68ee"
, mediumslateblue:
"#7b68ee"
, mediumspringgreen:
"#00fa9a"
, mediumturquoise:
"#48d1cc"
, mediumvioletred:
"#c71585"
, midnightblue:
"#191970"
, mintcream:
"#f5fffa"
, mistyrose:
"#ffe4e1"
, moccasin:
"#ffe4b5"
, navajowhite:
"#ffdead"
, navy:
"#000080"
, oldlace:
"#fdf5e6"
, olive:
"#808000"
, olivedrab:
"#6b8e23"
, orange:
"#ffa500"
, orangered:
"#ff4500"
, orchid:
"#da70d6"
, palegoldenrod:
"#eee8aa"
, palegreen:
"#98fb98"
, paleturquoise:
"#afeeee"
, palevioletred:
"#db7093"
, papayawhip:
"#ffefd5"
, peachpuff:
"#ffdab9"
, peru:
"#cd853f"
, pink:
"#ffc0cb"
, plum:
"#dda0dd"
, powderblue:
"#b0e0e6"
, purple:
"#800080"
, red:
"#f00"
, rosybrown:
"#bc8f8f"
, royalblue:
"#4169e1"
, saddlebrown:
"#8b4513"
, salmon:
"#fa8072"
, sandybrown:
"#f4a460"
, seagreen:
"#2e8b57"
, seashell:
"#fff5ee"
, sienna:
"#a0522d"
, silver:
"#c0c0c0"
, skyblue:
"#87ceeb"
, slateblue:
"#6a5acd"
, slategray:
"#708090"
, snow:
"#fffafa"
, springgreen:
"#00ff7f"
, steelblue:
"#4682b4"
, tan:
"#d2b48c"
, teal:
"#008080"
, thistle:
"#d8bfd8"
, tomato:
"#ff6347"
, turquoise:
"#40e0d0"
, violet:
"#ee82ee"
, wheat:
"#f5deb3"
, white:
"#fff"
, whitesmoke:
"#f5f5f5"
, yellow:
"#ff0"
, yellowgreen:
"#9acd32"
}
接着我们在需要线性渐变的那个元素内部创建一个同样大小的rect元素,然后里面再添加一个fill元素,用来设置渐变。伪码如下:
1.
2.
<
div
class
=
"gradient"
style
=
"position:relative;width:width;height:height"
>
3.
javascript线性渐变 by 司徒正美 实现多重水平渐变效果
4.
<
vml:rect
style
=
"position:absolute;width:width;height;top:0;left:0"
stroked
=
"f"
>
5.
<
vml:fill
colors
=
"与SVG相对应的color-stop"
focus
=
"100%"
type
=
"gradient"
method
=
"linear"
/>
6.
</
vml:rect
>
7.
</
div
>
利用VML实现IE的线性渐变后整个类的长度减少一半。
我们再来看如何实现角度渐变,IE那边好办,直接传入一个角就行了(0—360,也可以为负数)。SVG比较麻烦,它由linearGradient 的四个属性来控制倾斜度,x1,x2,y2,y2,实质就是两个点。假设第一个点为(0,0),第二个点为(100,0),它就是水平渐变。假设第一个点为(0,0),第二个点为(0,100),它就是垂直渐变。要实现倾斜就必须让第二个点的坐标与第一个点的坐标完全不相等,无论是X轴还是Y轴。这就要用到三角函数了。
1.
var
x = (Math.sin(angle*Math.PI/180) * 100).toFixed(2)+
"%"
;
2.
var
y = (Math.cos(angle*Math.PI/180)* 100).toFixed(2)+
"%"
;
3.
this
.attr(linearGradient,{x2:x,y2:y});
我们也应该看得出水平渐变与垂直渐变其实只是一个特例,我们大可以废除type这个属性,改成angle,传入一个0至360的数。
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com
文章转载自:博客园接DevExpress原厂商通知,将于近日上调旗下产品授权价格,现在下单客户可享受优惠报价!
面对“数字中国”建设和中国制造2025战略实施的机遇期,中车信息公司紧跟时代的步伐,以“集约化、专业化、标准化、精益化、一体化、平台化”为工作目标,大力推进信息服务、工业软件等核心产品及业务的发展。在慧都3D解决方案的实施下,清软英泰建成了多模型来源的综合轻量化显示平台、实现文件不失真的百倍压缩比、针对模型中的大模型文件,在展示平台上进行流畅展示,提升工作效率,优化了使用体验。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@evget.com
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢
慧都科技 版权所有 Copyright 2003-
2025 渝ICP备12000582号-13 渝公网安备
50010702500608号