内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

Chrome設(shè)置radius時的事件響應(yīng)問題

2024-01-29    分類: 網(wǎng)站建設(shè)

Chrome設(shè)置radius時的事件響應(yīng)問題 在Firefox和IE中,只要設(shè)置了border-radius和overflow:hidden被切掉的部分就不會再響應(yīng)事件了。而在Chrome中被切掉的部分依然會響應(yīng)事件。雖然對內(nèi)部元素也設(shè)置上border-radius可以解決部分問題,但是對于替換型元素,無論如何設(shè)置都不會奏效。 看下面這個例子 運(yùn)行<style> .circ { border:1px solid #CCC;background:#FAFAFA; width:200px;height:200px;overflow:hidden; float:left;margin:10px; border-radius:100%; } .circ:hover {background:#EEE;} .rect1 {width:100%;height:100%;} .rect2 {width:100%;height:100%;border-radius:100%;} .rect3 {width:100%;height:100%;border-radius:100%;} </style> <div class="circ"><div class="rect1"></div></div> <div class="circ"><div class="rect2"></div></div> <div class="circ"><canvas class="rect2"></canvas></div> 這個例子中三個圓的行為在IE和Firefox上是相同的。但是在Chrome上,第一個和第三個圓的鼠標(biāo)響應(yīng)區(qū)域是矩形的,只有中間的圓是圓形的。第一個圓是因為radius無法切掉內(nèi)部矩形的鼠標(biāo)響應(yīng)區(qū)域,第二個圓是因為內(nèi)部的區(qū)域也是個圓,所以可以正常工作。第三個圓是因為內(nèi)部是替換型元素,即使它是圓的也有個矩形的響應(yīng)范圍。 從純CSS上暫時沒辦法解決這個問題,這屬于Chrome的BUG。但如果是JavaScript我們可以自己計算這個區(qū)域。對于border-radius是滿的物體,這個是很容易計算的,只要計算坐標(biāo)是否在橢圓內(nèi)即可。 運(yùn)行<style> #circ { border:1px solid #CCC;background:#FAFAFA; width:200px;height:200px;overflow:hidden; border-radius:100%; } canvas {width:100%;height:100%;} </style> <div id="circ"><canvas></canvas></div> <script> onload=function(){ //獲取對象的位置和大小,如果是動態(tài)的可以動態(tài)獲取 var pw=circ.offsetWidth/2,ph=circ.offsetHeight/2, px=circ.offsetLeft,py=circ.offsetTop; circ.onmouseout=circ.onmousemove=function(e){ //計算鼠標(biāo)在從圓心開始的x和y位置 var x=(e.pageX-px)-pw,y=(e.pageY-py)-ph; //計算橢圓 if(x*x/pw/pw+y*y/ph/ph<1) this.style.backgroundColor="#EEE"; //hover else this.style.backgroundColor=""; //normal }; }; </script> 但是border-radius不滿就很麻煩了,因為圖形可能是圓角矩形,四個角的半徑還有可能不同,所以需要分別計算。但是這種情況應(yīng)該不會出現(xiàn)的太多,通常做圓角矩形時圓角的半徑并不會設(shè)置太大,因此即使整個區(qū)域作為矩形來響應(yīng)事件也沒問題,特意去為這個計算坐標(biāo)反而得不償失。這個效果我暫時也用不到就不做演示了,總之這個BUG在Chrome上遲早會得到修復(fù)的,只要解決眼下的問題即可。

測試于:Chrome 31.0.1650.57 m

本文名稱:Chrome設(shè)置radius時的事件響應(yīng)問題
URL地址:http://m.rwnh.cn/news47/315997.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管、動態(tài)網(wǎng)站、網(wǎng)站設(shè)計營銷型網(wǎng)站建設(shè)、網(wǎng)站導(dǎo)航、電子商務(wù)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)
筠连县| 博白县| 十堰市| 大悟县| 洪洞县| 吉首市| 基隆市| 大石桥市| 迁安市| 黄骅市| 武汉市| 泰州市| 元阳县| 西乌珠穆沁旗| 福泉市| 沂水县| 呈贡县| 泾源县| 杭锦旗| 逊克县| 石棉县| 富平县| 呼伦贝尔市| 南安市| 阿荣旗| 宣城市| 周宁县| 西乌| 安塞县| 增城市| 揭东县| 唐海县| 正镶白旗| 海南省| 神木县| 呼玛县| 双桥区| 东方市| 西乌| 永川市| 原平市|