最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript 動態(tài)創(chuàng)建VML的方法

 更新時間:2009年10月14日 19:05:19   作者:  
JavaScript 動態(tài)創(chuàng)建VML的方法,需要的朋友可以參考下。

要使用VML,我們首先要開辟一個命名空間。以前動態(tài)創(chuàng)建比較麻煩
document.namespaces.add('vml', 'urn:schemas-microsoft-com:vml', "#default#VML");
ie8出現(xiàn)后,微軟一口氣升級了IE6,IE7。創(chuàng)建方法更簡單。
document.namespaces.add('vml', 'urn:schemas-microsoft-com:vml');
它們的作用相當于把HTML標簽搞成下面這個樣子:
<html xmlns:vml="urn:schemas-microsoft-com:vml">
接著就是在樣式中調(diào)用對應(yīng)的CSS hehavior。靜態(tài)代碼應(yīng)該是這個樣子:
<style type="text/css">
vml\:* { behavior: url(#default#VML) }
</style>
網(wǎng)上風傳IE8對VML支持不友好,要放棄VML云云,主要原因在于“vml\:*”這個選擇器被IE8認為不合法(反面證明IE在努力修正其 CSS bug)。由此,人們被迫利用v\:line, v\:rect, v\:roundrect, v\:oval這樣子的聯(lián)合選擇器來調(diào)用相關(guān)的CSS hehavior。不過只要是合法選擇器就可以調(diào)用CSS hehavior,因此這里用聯(lián)合選擇器實在太累贅了。我想換類選擇器是否更合適點呢?試驗一下,是無問題的。但僅僅是這樣是渲染不出來的,由于IE8已 經(jīng)重寫了內(nèi)核,因此此bug不是hasLayout可以解決的。官方給出答案是使用display:inline-block,這樣就可以強逼它繼續(xù)渲染了。后來我又發(fā)現(xiàn)display:block也有此功效,但考慮到內(nèi)聯(lián)元素的問題,還是用官方的補丁吧 。至此,開辟命名空與與渲染VML元素的問題就告一段落。
再來看如何動態(tài)創(chuàng)建VML元素,由于是非標準,我們就用非標準的createElement方式來創(chuàng)建它。我們需要拼接一個字符串,作為createElement 的參數(shù),它應(yīng)該包含命名空間與類名。
var createVML = function (tagName) {
return doc.createElement('<vml:' + tagName + ' class="vml">');
};
隨便做了一個小工具,看看后果如何:

復(fù)制代碼 代碼如下:

function(){
if(!window.vml){
window.vml = {};
document.createStyleSheet().addRule(".vml", "behavior:url(#default#VML);display:inline-block;");
if (!document.namespaces.vml && !+"\v1"){
document.namespaces.add("vml", "urn:schemas-microsoft-com:vml");
}
}
var vml = window.vml = function(name){
return vml.fn.create(name || "rect");
}
vml.fn = vml.prototype = {
create : function(name){
this.node = document.createElement('<vml:' + name + ' class="vml">');
return this;
},
appendTo: function(parent){
if(typeof this.node !== "undefined" && parent.nodeType == 1){
parent.appendChild(this.node);
}
return this;
},
attr : function(bag){
for(var i in bag){
if(bag.hasOwnProperty(i)){
this.node.setAttribute(i,bag[i])
}
}
return this;
},
css: function(bag){
var str = ";"
for(var i in bag){
if(bag.hasOwnProperty(i))
str += i == "opacity" ? ("filter:alpha(opacity="+ bag[i] * 100+");"):(i+":"+bag[i]+";")
}
this.node.style.cssText = str;
return this;
}
}
})()

最后附上三種創(chuàng)建VML元素的方法:
復(fù)制代碼 代碼如下:

var VmlElement = document.createElement('<vml:' + tagName + ' class="vml">');
var VmlElement = document.createElement('<' + tagName + '
xmlns="urn:schemas-microsoft.com:vml" class="vml">')
var VmlElement = document.createElement('vml:' + tagName );
VmlElement.className = "vml";//最后必須把命名空間當作類名加上

//最后必須把命名空間當作類名加上

相關(guān)文章

  • js中DOM三級列表(代碼分享)

    js中DOM三級列表(代碼分享)

    本篇文章主要介紹了js中DOM實現(xiàn)三級列表的代碼,具有很好的參考價值。下面跟著小編一起來看下吧
    2017-03-03
  • JS+HTML5 Canvas實現(xiàn)簡單的寫字板功能示例

    JS+HTML5 Canvas實現(xiàn)簡單的寫字板功能示例

    這篇文章主要介紹了JS+HTML5 Canvas實現(xiàn)簡單的寫字板功能,結(jié)合實例形式分析了js結(jié)合HTML5 canvas特性的圖形繪制相關(guān)操作技巧,需要的朋友可以參考下
    2018-08-08
  • 下載網(wǎng)站打開頁面后間隔多少時間才顯示下載鏈接地址的代碼

    下載網(wǎng)站打開頁面后間隔多少時間才顯示下載鏈接地址的代碼

    有時候可能為了一些更好的廣告效果等原因,需要讓用戶等待一段時間以后,再顯示真實下載地址代碼,有利于緩解服務(wù)器壓力。
    2010-04-04
  • 原生JS實現(xiàn)非常好看的計數(shù)器

    原生JS實現(xiàn)非常好看的計數(shù)器

    這篇文章主要為大家詳細介紹了原生JS實現(xiàn)非常好看的計數(shù)器,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • 禁止別人調(diào)試前端代碼的幾種常見方法

    禁止別人調(diào)試前端代碼的幾種常見方法

    這篇文章主要介紹了介紹了多種避免他人調(diào)試前端代碼的方法,包括通過不斷使用debugger語句、將代碼寫在一行、檢測瀏覽器窗口尺寸變化、使用定時器執(zhí)行debugger語句、使用第三方插件disable-devtooldisable-devtool、禁止F12/審查開啟控制臺等,需要的朋友可以參考下
    2025-01-01
  • BootStrap中關(guān)于Select下拉框選擇觸發(fā)事件及擴展

    BootStrap中關(guān)于Select下拉框選擇觸發(fā)事件及擴展

    Select下拉框的問題,想在選擇一個選項后,前臺顯示做出變動,并且知道選擇的是第幾個選項。 怎么解決這個問題呢?下面小編給大家?guī)砹薆ootStrap中關(guān)于Select下拉框選擇觸發(fā)事件及擴展,需要的朋友參考下吧
    2016-11-11
  • 原生js實現(xiàn)輪播圖的示例代碼

    原生js實現(xiàn)輪播圖的示例代碼

    本篇文章主要介紹了原生js實現(xiàn)輪播圖的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-02-02
  • 微信小程序?qū)崿F(xiàn)計時器

    微信小程序?qū)崿F(xiàn)計時器

    這篇文章主要為大家詳細介紹了微信小程序?qū)崿F(xiàn)計時器,小程序點擊事件觸發(fā)計時器,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-09-09
  • JavaScript toDataURL圖片轉(zhuǎn)換問題解讀

    JavaScript toDataURL圖片轉(zhuǎn)換問題解讀

    這篇文章主要介紹了JavaScript toDataURL圖片轉(zhuǎn)換問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • JavaScript this使用方法圖解

    JavaScript this使用方法圖解

    這篇文章主要介紹了JavaScript this使用方法圖解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-02-02

最新評論

秭归县| 南开区| 乌恰县| 广昌县| 新民市| 天柱县| 泰和县| 周口市| 瑞昌市| 桃园县| 班玛县| 丰顺县| 西丰县| 隆化县| 海盐县| 柞水县| 固阳县| 岳阳市| 湛江市| 阳春市| 通海县| 琼结县| 琼结县| 焦作市| 万州区| 东兰县| 云安县| 克什克腾旗| 沂源县| 河西区| 富蕴县| 蒙山县| 新宁县| 巢湖市| 长武县| 石城县| 都昌县| 新化县| 凭祥市| 武邑县| 海原县|