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

圖像替換新技術(shù) 狀態(tài)域方法

參看Dave Shea's excellent summary ,Paul Young 在分析現(xiàn)存的所有方法的優(yōu)缺點(diǎn)之后,提出了一種新的方法,并將其命名為“狀態(tài)域方法”(The StateMethod),本文將詳細(xì)介紹該方法的原理:

該方法檢查圖片是否禁用,并不是請求服務(wù)器上的圖片,因?yàn)槟菢訒?huì)導(dǎo)致一次額外的http請求。作者創(chuàng)建了一個(gè)巧妙的方法。

在大多數(shù)瀏覽器中,Image對象可以實(shí)例化并追溯到一個(gè)無效的URL(http://0),這樣很容易檢測Image的狀態(tài)。如果禁用,onerror事件將觸發(fā),在js文件的開頭,j建立一個(gè)新的圖像對象:

var img = new Image();

但是,有兩個(gè)古怪的瀏覽器對此方法并不兼容。在Gecko瀏覽器中,不論Image是否被禁用。Onerror事件總是 被觸發(fā)。所幸的是,另外一種可行的方案可以解決此問題--給html元素附加一個(gè)無效的背景圖片,然后通過getComputedStyle方法獲得 style屬性。如果Image禁用,其屬性為none或url(invalid-url:):

 if (img.style.MozBinding != null)
 {
   img.style.backgroundImage = "url(" +document.location.protocol + "http://0)";
   var bg = window.getComputedStyle(img,'').backgroundImage;

   if (bg != "none" && bg !="url(invalid-url:)" || document.URL.substr(0, 2) == "fi")
   {
    document.enableStateScope("images-on", true);
   }
 }

另外一個(gè)富有挑戰(zhàn)性的瀏覽器是safari,如果請求是一個(gè)無效的URL,safari的狀態(tài)欄將出現(xiàn)錯(cuò)誤提示,但頁面 布局不受任何影響。如果用戶的狀態(tài)欄處于開啟狀態(tài),報(bào)錯(cuò)將一直持續(xù),這很不專業(yè),同樣,作者研究了另外一種可行的方案。如果Image來自于1*1的 gif圖像,且被數(shù)據(jù)編碼。如果Image禁用,其寬度將為0,以下為在safari中測試的情況:

 else
 {
   img.style.cssText ="-webkit-opacity:0";
   if (img.style.webkitOpacity == 0)
   {
     img.onload = function()
     {
      document.enableStateScope("images-on", img.width > 0);
     }
     img.src = 
      "data:image/gif;base64," +
      "R0lGODlhAQABAIAAAP///wAAACH5BAE" +
      "AAAAALAAAAAABAAEAAAICRAEAOw==";
   }
}

最后,對于其它瀏覽器,在開始初始化Image對象時(shí),僅僅需要測試onerror觸發(fā)事件。

   else
   {
     img.onerror = function(e)
     {
      document.enableStateScope("images-on", true);
     }
     img.src = "about:blank";
   }

狀態(tài)域是可以切換的

可以創(chuàng)建一個(gè)系統(tǒng)讓用戶在文本和替代圖像之間切換。

查看示例(示例文件由Paul Young提供)

class屬性添加到html之上而不是body或其它子元素之上,主要原因在于在圖像替換之前,body需要全面加載。如果“image-on”不添加到html之上。當(dāng)狀態(tài)域啟用時(shí),將會(huì)出現(xiàn)閃動(dòng)。

圖像替換技術(shù)是css中相當(dāng)重要的一部分。鑒于現(xiàn)存圖像替換技術(shù)的缺點(diǎn),作者花大量時(shí)間另辟蹊徑,方法獨(dú)到,值得借鑒。

示例下載:tate-scope-image-replacement.zip

翻譯原文:http://www.denisdeng.com/?p=235

英文原文:http://www.sitepoint.com/article/image-replacement-state-scope/

JavaScript技術(shù)圖像替換新技術(shù) 狀態(tài)域方法,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 亚洲精品久久久午夜福利电影网 | 寻找最美乡村教师颁奖晚会 | 精品国产自在现线拍400部 | 免费在线看视频 | 日欧一片内射VA在线影院 | 亚洲视频欧美视频 | 亚洲日韩国产成网站在线 | 最近中文字幕免费高清MV视频6 | 中文字幕视频免费在线观看 | 无码人妻视频又大又粗欧美 | 高清观看ZSHH96的视频素材 | 超碰国产亚洲人人 | 免费又黄又硬又爽大片 | 免费精品国产日韩热久久 | 久久国产免费观看精品1 | 一级毛片西西人体44rt高清 | 欧美一区二区VA毛片视频 | 在线观看日韩一区 | 小莹的性荡生活40章 | 羽月希被黑人吃奶dasd585 | 成人毛片手机版免费看 | 欧美精品久久久久久久久大尺度 | 亚洲国产成人一区二区在线 | 国产在线播放精品视频 | 99精品无码AV在线播放 | 理论片午午伦夜理片影院 | 欧美一级黄色影院 | 午夜爽喷水无码成人18禁三级 | 午夜伦4480yy妇女久久 | 亚洲欲色欲色XXXXX在线AV | 无码国产伦一区二区三区视频 | 国产视频这里只有精品 | 无码任你躁久久久久久久 | 绿巨人www在线观看 绿巨人www | 国产精品无码视频一区二区 | 日韩人妻无码专区一本二本 | 久久天天躁狠狠躁夜夜呲 | 欧美亚洲日韩国码在线观看 | 婷婷五月久久精品国产亚洲 | 野花韩国视频中文播放 | 精品久久久噜噜噜久久7 |