天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

javascript線性漸變一

作為新力軍,蘋果為我們帶來了canvas標簽。canvas首次在Mac OS X中的Dashboard中被引入,之后又被蘋果公司的Safari瀏覽器所支持,緊接著就成為HTML5的標準,被IE內核以外的標準瀏覽器所支持。蘋果做的好事還不止這一樁,它認為SVG太笨重了,于是它把SVG里的濾鏡標簽統統CSS屬性化(SVG的濾鏡比IE濾鏡還多呢,而且功能更全面)。firefox一看不對勁,連忙自己也搞一套私有屬性,只不過是前綴由-webkit-改為-moz-罷了。opera的反應比較呆滯,應該說私底下非常不滿,因為opera的CTO就是CSS的發明者Hakon Wium Lie,不喜歡別人對自己的東西啥搞。因此我實現線性漸變就困難重重了,IE需要用IE濾鏡,firefox在動態創建SVG存在一些問題,需要用其-moz-前綴的CSS私有屬性,safari與chrome需要用-webkit-前綴的CSS私有屬性,opera需要用SVG。現在一個個突破吧。

IE要用到DXImageTransform.Microsoft.Gradient濾鏡(最后那個Gradient的首字母大寫小寫無所謂)。
屬性說明
enabled是否啟用濾鏡,默認為true
gradientType是垂直漸變還是水平漸變,默認是0(垂直漸變),1為水平漸變
startColorStr起始顏色,能接受一個8位hex顏色值,從#FF000000到#FFFFFFFF,默認是藍色#FF0000F;或者使用red,green等顏色值F
endColorStr結束顏色,能接受一個8位hex顏色值,從#FF000000到#FFFFFFFF,默認是黑色#FF000000
startColor作用同startColorStr,接受一個0到4294967295整體顏色值,沒有默認值
endColor作用同endColorStr,接受一個0到4294967295整體顏色值,沒有默認值

[Ctrl+A 全選 注:如需引入外部Js需刷新才能執行]
接著講述一下SVG線性漸變的實現,因為相關的CSS私有屬性都衍生于此。由于沒有什么空間支持上傳SVG,我只能動態生成SVG了。對我來說,能動態實現最好不過了,起碼能減少請求數,少寫許多大于號小于號……下面是靜態實現,至于怎樣加入html自己google吧。

linearGradient 有x1,x2,y1,y2等幾個屬性,可以幫助我們實現水平漸變或垂直漸變。我們大可以把x1,x2,y2,y2當成顏色漸變體的兩個點的坐標就是。

當y1等于y2,x1不等于x2,實現水平漸變。
當x1等于x2,y1不等于y2,實現垂直漸變。
當y1不等于y2,x1不等于x2,實現角度漸變。
復制代碼 代碼如下:
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="800px" height="400px" version="1.1"
xmlns="http://www.w3.org/2000/svg">
<desc>Javascript線性漸變(水平) by 司徒正美</desc>
<defs>
<linearGradient id="gradient" x1="0%" y1="0%" x2="100%" y2="0%">
<stop offset="20%" stop-color="rgb(255,255,0)" stop-opacity="1"/>
<stop offset="80%" stop-color="rgb(255,0,0)" stop-opacity="1"/>
</linearGradient>
</defs>
<ellipse cx="200" cy="190" rx="85" ry="55" fill="url(#gradient)"/>
</svg>


[Ctrl+A 全選 注:如需引入外部Js需刷新才能執行]
動態實現,不過在火狐中啞火了,可見火狐在SVG上也怠工了。
復制代碼 代碼如下:
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="800px" height="400px" version="1.1"
xmlns="http://www.w3.org/2000/svg">
<desc>Javascript線性漸變(垂直) by 司徒正美</desc>
<defs>
<linearGradient id="gradient" x1="0%" y1="0%" x2="0%" y2="100%">
<stop offset="0%" stop-color="#008000" stop-opacity="1"/>
<stop offset="80%" stop-color="#a9ea00" stop-opacity="0"/>
</linearGradient>
</defs>
<polygon id = "s1" points = "60,0 120,0 180,60 180,120 120,180 60,180 0,120 0,60" fill="url(#gradient)"/>
</svg>


[Ctrl+A 全選 注:如需引入外部Js需刷新才能執行]
復制代碼 代碼如下:
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="800px" height="400px"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<desc>Javascript線性漸變(角度) by 司徒正美</desc>
<defs>
<linearGradient id="content" x1="0%" y1="0%" x2="100%" y2="100%">
<stop stop-color="black" offset="0%"/>
<stop stop-color="teal" offset="50%"/>
<stop stop-color="white" offset="100%"/>
</linearGradient>
</defs>
<rect x="10px" y="10px" width="350" height="350" fill="url(#content)"/>
</svg>


[Ctrl+A 全選 注:如需引入外部Js需刷新才能執行]
接著說說-moz-linear-gradient,火狐的CSS私有屬性,隸屬于background-image,不過它也略寫成background。語法為:
-moz-linear-gradient( <POINT>, <POINT> [, <STOP>]* )
我們可以設置這兩個點的值坪決定其是水平還是垂直,如
/*水平*/
-moz-linear-gradient(left, right [, <STOP>]* )1.
/*垂直*/
-moz-linear-gradient(top, bottom [, <STOP>]* )
至于后面的部分,看看下面的運行框就足夠了。不過這要用最新版的firefox(3.6a1)才能見效果。

[Ctrl+A 全選 注:如需引入外部Js需刷新才能執行]
接著下來看看-webkit-gradient這個CSS屬性,用法來-moz-linear-gradient差不多,但有三點不同。第一個參數用來決定是線性漸變與放射性漸變,這里寫linear就可以了。兩個點值,一定要為left,right,top與bottom的兩個,而且怎樣組合也實現不了角度漸變。三是color-stop的偏移量一定為小數。

[Ctrl+A 全選 注:如需引入外部Js需刷新才能執行]
結語,這就是多種瀏覽器共存的帶來的和諧局面,我寧愿IE實現完全壟斷了。下一部分才是征途的開始,光IE處理濾鏡失效的問題,就要動用table這個上古神器了。SVG,在上面的運框中,你們看到了,我還特意搞了一個小工具來創建這些特殊的對象……

JavaScript技術javascript線性漸變一,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 影音先锋亚洲AV少妇熟女 | 消息称老熟妇乱视频一区二区 | 语文老师扒开胸罩喂我奶 | 国产精品久久毛片A片软件爽爽 | 久久精品无码一区二区日韩av | 一个人在线观看免费高清视频 | 玩高中女同桌肉色短丝袜脚文 | 美女被抽插到哭内射视频免费 | 热巴两次用约老师屁股发底线球 | 久久精品亚洲热综合一本 | 久爱精品亚洲电影午夜 | 亚洲国产综合人成综合网站00 | 羞羞答答影院在线 | 伊人成色综合人网 | 亚洲XXX午休国产熟女屁 | 爆乳啪啪无码成人二区亚洲欧美 | 成人精品在线视频 | np高h肉辣一女多男 no视频在线观看 | 国产精品69人妻无码久久久 | 猫咪www958ii| 甜性涩爱免费下载 | 美女脱了内裤张开腿让男人桶到爽 | 男同志china免费视频 | 一个人高清在线观看日本免费 | 阿v天堂2017在无码 | 精品国产乱码久久久久乱码 | 免费啪视频观试看视频 | 精品少妇爆AV无码专区 | 伊人久久电影网 | 国产精品视频国产永久视频 | 亚洲精品AV一二三区无码 | 兽皇VIDEO另类HD | 蜜芽一二三区 | 双性精跪趴灌满h室友4p | 玖玖爱这里只有精品视频 | 啊灬啊灬啊灬快灬深高潮啦 | 又爽又黄又粗又大免费视频 | 麻豆蜜桃国语精品无码视频 | 99久久国语露脸精品国产 | 2021扫黑风暴在线观看免费完整版 | 亚洲午夜AV久久久精品影院色戒 |