欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

javascript 線性漸變?nèi)?/h1>
 更新時(shí)間:2009年10月14日 21:45:09   作者:  
上一部分給出的函數(shù)已經(jīng)完全地實(shí)現(xiàn)了跨瀏覽器了,但在IE的實(shí)現(xiàn)是極其低劣,動(dòng)用了多個(gè)table以及一向?yàn)槿怂嵅〉臑V鏡。
IE還有一個(gè)利器至今沒(méi)有被使用過(guò),那就是VML。雖然比不上SVG,但它還是非常強(qiáng)大的。在實(shí)現(xiàn)漸變上,其fill還比IE的Gragient濾鏡強(qiáng)悍得多了。不過(guò)VML出現(xiàn)得比較早,只支持很少的顏色名,如red,blue,yellow,其他如orange就可以搞死它了。因此要使用VML做線性漸變,我們得對(duì)這些顏色名做一下轉(zhuǎn)換。
HTML4的顏色值
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
我們可以在火狐官網(wǎng)以及W3C了解到更多的顏色值。
復(fù)制代碼 代碼如下:

var htmlcolor={ black :"#000",green :"#008000",silver :"#c0c0c0",lime :"#0f0",
gray :"#808080",olive :"#808000",white :"#fff",yellow :"#ff0",
maroon :"#800000",navy :"#000080",red :"#f00",blue :"#00f",
purple :"#800080",teal :"#008080",fuchsia :"#f0f",aqua :"#0ff",
indigo :"#4b0082",orange : "#ffa500",sienna :"#a0522d",plum :"#dda0dd",
gold :"#ffd700", tan :"#d2b48c", snow :"#fffafa",violet :"#ee82ee"
}

接著我們?cè)谛枰€性漸變的那個(gè)元素內(nèi)部創(chuàng)建一個(gè)同樣大小的rect元素,然后里面再添加一個(gè)fill元素,用來(lái)設(shè)置漸變。偽碼如下:
復(fù)制代碼 代碼如下:

<div class="gradient" style="position:relative;width:width;height:height">
javascript線性漸變 by 司徒正美 實(shí)現(xiàn)多重水平漸變效果
<vml:rect style="position:absolute;width:width;height;top:0;left:0" stroked="f" >
<vml:fill colors="與SVG相對(duì)應(yīng)的color-stop" focus="100%" type="gradient" method="linear"/>
</vml:rect>
</div>


[Ctrl+A 全選 注:引入外部Js需再刷新一下頁(yè)面才能執(zhí)行]

利用VML實(shí)現(xiàn)IE的線性漸變后整個(gè)類的長(zhǎng)度減少一半。
我們?cè)賮?lái)看如何實(shí)現(xiàn)角度漸變,IE那邊好辦,直接傳入一個(gè)角就行了(0—360,也可以為負(fù)數(shù))。SVG比較麻煩,它由linearGradient 的四個(gè)屬性來(lái)控制傾斜度,x1,x2,y2,y2,實(shí)質(zhì)就是兩個(gè)點(diǎn)。假設(shè)第一個(gè)點(diǎn)為(0,0),第二個(gè)點(diǎn)為(100,0),它就是水平漸變。假設(shè)第一個(gè)點(diǎn)為(0,0),第二個(gè)點(diǎn)為(0,100),它就是垂直漸變。要實(shí)現(xiàn)傾斜就必須讓第二個(gè)點(diǎn)的坐標(biāo)與第一個(gè)點(diǎn)的坐標(biāo)完全不相等,無(wú)論是X軸還是Y軸。這就要用到三角函數(shù)了。
復(fù)制代碼 代碼如下:

var x = (Math.sin(angle*Math.PI/180) * 100).toFixed(2)+"%";
var y = (Math.cos(angle*Math.PI/180)* 100).toFixed(2)+"%";
this.attr(linearGradient,{x2:x,y2:y});

我們也應(yīng)該看得出水平漸變與垂直漸變其實(shí)只是一個(gè)特例,我們大可以廢除type這個(gè)屬性,改成angle,傳入一個(gè)0至360的數(shù)。

[Ctrl+A 全選 注:引入外部Js需再刷新一下頁(yè)面才能執(zhí)行]

相關(guān)文章

  • JavaScript?Promise執(zhí)行流程深刻理解

    JavaScript?Promise執(zhí)行流程深刻理解

    這篇文章主要介紹了JavaScript?Promise執(zhí)行流程深刻理解,他是一個(gè)構(gòu)造函數(shù),每個(gè)創(chuàng)建的promise都有各自狀態(tài)和值,且狀態(tài)初始值為pending,值為undefined
    2022-06-06
  • JavaScript實(shí)現(xiàn)的簡(jiǎn)單加密解密操作示例

    JavaScript實(shí)現(xiàn)的簡(jiǎn)單加密解密操作示例

    這篇文章主要介紹了JavaScript實(shí)現(xiàn)的簡(jiǎn)單加密解密操作,涉及javascript基于charCodeAt與fromCharCode的字符串編碼與解碼操作相關(guān)使用技巧,需要的朋友可以參考下
    2018-06-06
  • 原生JS實(shí)現(xiàn)可拖拽登錄框

    原生JS實(shí)現(xiàn)可拖拽登錄框

    這篇文章主要為大家詳細(xì)介紹了原生JS實(shí)現(xiàn)可拖拽登錄框,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • H5實(shí)現(xiàn)手機(jī)拍照和選擇上傳功能

    H5實(shí)現(xiàn)手機(jī)拍照和選擇上傳功能

    這篇文章主要為大家詳細(xì)介紹了H5實(shí)現(xiàn)手機(jī)拍照和選擇上傳功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-12-12
  • 輕松掌握J(rèn)avaScript裝飾者模式

    輕松掌握J(rèn)avaScript裝飾者模式

    這篇文章主要幫助大家輕松掌握J(rèn)avaScript裝飾者模式,告訴大家什么是js裝飾者模式,感興趣的小伙伴們可以參考一下
    2016-08-08
  • 從理論角度討論JavaScript閉包

    從理論角度討論JavaScript閉包

    本文將介紹一個(gè)在JavaScript經(jīng)常會(huì)拿來(lái)討論的話題 —— 閉包(closure)。 閉包其實(shí)已經(jīng)是個(gè)老生常談的話題了; 有大量文章都介紹過(guò)閉包的內(nèi)容, 盡管如此,這里還是要試著從理論角度來(lái)討論下閉包, 看看ECMAScript中的閉包內(nèi)部究竟是如何工作的
    2019-04-04
  • JS 字符串連接[性能比較]

    JS 字符串連接[性能比較]

    js字符串連接實(shí)現(xiàn)代碼。
    2009-05-05
  • JS對(duì)象創(chuàng)建的幾種方式整理

    JS對(duì)象創(chuàng)建的幾種方式整理

    本文主要介紹了JS對(duì)象創(chuàng)建的幾種方式,具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧
    2017-02-02
  • JS去除字符串兩端空格的簡(jiǎn)單實(shí)例

    JS去除字符串兩端空格的簡(jiǎn)單實(shí)例

    本篇文章主要是對(duì)JS去除字符串兩端空格的簡(jiǎn)單實(shí)例進(jìn)行了介紹,需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助
    2013-12-12
  • Bootstrap Table從服務(wù)器加載數(shù)據(jù)進(jìn)行顯示的實(shí)現(xiàn)方法

    Bootstrap Table從服務(wù)器加載數(shù)據(jù)進(jìn)行顯示的實(shí)現(xiàn)方法

    Bootstrap-Table是一個(gè)Boostrap的表格插件,能夠?qū)SON數(shù)據(jù)直接顯示在表格中。接下來(lái)通過(guò)本文給大家分享Bootstrap Table從服務(wù)器加載數(shù)據(jù)進(jìn)行顯示的實(shí)現(xiàn)方法,感興趣的朋友一起看看吧
    2016-09-09

最新評(píng)論