有時(shí)我在看css時(shí),看到有的css屬性定義為background:transparent。意思就是背景透明。實(shí)際上background默認(rèn)的顏色就是透明的屬性。所以寫和不寫都是一樣的 有段時(shí)間沒寫文章了,一直在學(xué)校,雖然帶著電腦,但是不能上網(wǎng)啊!最近在用javascript寫一個(gè)網(wǎng)頁(yè)版的操作系統(tǒng),寫好了一定發(fā)上來,寫的過程中遇到很多問題,許多都是細(xì)節(jié)方面的,很麻煩,不過自己一直在努力解決,也是對(duì)自己的一種提高吧.下面我來說一下我最近遇到的一個(gè)問題. 大家知道,你用createelement新建一個(gè)div,默認(rèn)情況下這個(gè)div的style中的backgroungcolor屬性是transparent,呵呵,如果我做一個(gè)div的蒙板,那么請(qǐng)看下面一段代碼:代碼如下:
div.style.position="absolute"; div.style.width=document.body.clientWidth+"px"; div.style.height=document.body.clientHeight+"px"; div.style.left="0px"; div.style.top="0px"; div.style.zIndex="2000"; div.style.backgroundColor="black"; div.style.filter="alpha(opacity="+0+");";
這是很多蒙板div的設(shè)置,也就是說屏蔽用戶對(duì)網(wǎng)頁(yè)上的其他元素進(jìn)行操作. 我們主要看后面兩行代碼,前面不是已經(jīng)說了嘛,div的默認(rèn)backgroundcolor屬性就是transparent,也就是是透明,那么我們干嘛還要多此一舉去設(shè)置個(gè)black(這個(gè)無所謂,隨便設(shè)置個(gè)顏色,只要不是transparent就行,也不能是空字符串,瀏覽器會(huì)默認(rèn)將空字符串看成transparent),并且設(shè)置濾鏡讓他透明呢. 我自己動(dòng)手做了試驗(yàn),一開始還對(duì)試驗(yàn)結(jié)果很迷惑,但自己靜下來想想便發(fā)現(xiàn)了其中的區(qū)別,如果我們沒有上面代碼的后兩句,那么我們便可以對(duì)蒙板后的元素進(jìn)行操作,也就是說起不到屏蔽的作用,但是這個(gè)操作是有限制的,具體說就是我們只可以對(duì)有焦點(diǎn)的元素進(jìn)行操作,比如文本,圖片,按鈕等,我舉個(gè)例子:代碼如下:
<div style="border:1px red solid;width:100px;height:100px" onclick="alert(1)"123</div >
正常情況下,只要你點(diǎn)擊這個(gè)div的任何位置,都會(huì)alert的,但是當(dāng)它被一個(gè)backgroundcolor為transparent的元素遮住的時(shí)候,我們只有點(diǎn)擊123才會(huì)alert,因?yàn)槲谋臼强梢垣@得焦點(diǎn)的,同理其他元素也一樣.順便說下,這個(gè)backgroundcolor為transparent的元素的事件會(huì)對(duì)被它遮住的元素所截獲.如果我們所觸發(fā)的對(duì)象沒有焦點(diǎn),那么事件會(huì)交換給transparent的元素處理并按這個(gè)元素進(jìn)行冒泡,否則有焦點(diǎn)的會(huì)事件便由有焦點(diǎn)的那個(gè)對(duì)象處理,不會(huì)交換,并且按有焦點(diǎn)的元素進(jìn)行冒泡.(貌似不是很好理解,可以自己多做做試驗(yàn)就明白了) 設(shè)置樣式為透明色 有時(shí),上文寫了代碼如下:background:inherit; 那么下文就可能要清除一下背景,就寫了代碼如下:background:transparent; 透明背景,也就是去掉了被 如果一個(gè)元素覆蓋在另外一個(gè)元素之上,而你想顯示下面的元素,這時(shí)你就需要把上面這個(gè)元素的background設(shè)置為transparent
用createelement新建一個(gè)div,默認(rèn)情況下這個(gè)div的style中的backgroungcolor屬性是transparent,呵呵,如果我做一個(gè)div的蒙板,那么請(qǐng)看下面一段代碼:
這是很多蒙板div的設(shè)置,也就是說屏蔽用戶對(duì)網(wǎng)頁(yè)上的其他元素進(jìn)行操作.
我們主要看后面兩行代碼,前面不是已經(jīng)說了嘛,div的默認(rèn)backgroundcolor屬性就是transparent,也就是是透明,那么我們干嘛還要多此一舉去設(shè)置個(gè)black(這個(gè)無所謂,隨便設(shè)置個(gè)顏色,只要不是transparent就行,也不能是空字符串,瀏覽器會(huì)默認(rèn)將空字符串看成transparent),并且設(shè)置濾鏡讓他透明呢.
我自己動(dòng)手做了試驗(yàn),一開始還對(duì)試驗(yàn)結(jié)果很迷惑,但自己靜下來想想便發(fā)現(xiàn)了其中的區(qū)別,如果我們沒有上面代碼的后兩句,那么我們便可以對(duì)蒙板后的元素進(jìn)行操作,也就是說起不到屏蔽的作用,但是這個(gè)操作是有限制的,具體說就是我們只可以對(duì)有焦點(diǎn)的元素進(jìn)行操作,比如文本,圖片,按鈕等,我舉個(gè)例子:
正常情況下,只要你點(diǎn)擊這個(gè)div的任何位置,都會(huì)alert的,但是當(dāng)它被一個(gè)backgroundcolor為transparent的元素遮住的時(shí)候,我們只有點(diǎn)擊123才會(huì)alert,因?yàn)槲谋臼强梢垣@得焦點(diǎn)的,同理其他元素也一樣.順便說下,這個(gè)backgroundcolor為transparent的元素的事件會(huì)對(duì)被它遮住的元素所截獲.如果我們所觸發(fā)的對(duì)象沒有焦點(diǎn),那么事件會(huì)交換給transparent的元素處理并按這個(gè)元素進(jìn)行冒泡,否則有焦點(diǎn)的會(huì)事件便由有焦點(diǎn)的那個(gè)對(duì)象處理,不會(huì)交換,并且按有焦點(diǎn)的元素進(jìn)行冒泡.(貌似不是很好理解,可以自己多做做試驗(yàn)就明白了)
聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com