首頁 > web前端 > js教程 > js實作遮罩層劃出效果是產生div而不是顯示_javascript技巧

js實作遮罩層劃出效果是產生div而不是顯示_javascript技巧

WBOY
發布: 2016-05-16 16:41:04
原創
1268 人瀏覽過

同遮蓋層劃入一樣,單純的遮蓋層劃出的話算的上是非常簡單了,但是在這裡它卻就不這麼簡單了,而且我前面還選了個比較麻煩的生成div,而不是顯示存在的div,這裡有那麼幾點要特別注意:

1、遮蓋層出現後,滑鼠就算不動,也已經是在遮蓋層上,已經不再給的div區域了,所以注意監聽的位置;

2、onmouseout和onmouseover都是瞬時觸發的,這點很重要;

3、在實際應用中,已存在的div的顯示比臨時創建肯定要有效的多;

這樣我還是上一下程式碼吧,其實之前的地方沒怎麼變,我只記錄改變的地方,那就是onmouseout監聽加在了哪呢?

var getOneDiv=function(){ 

var div=document.createElement("div"); 
div.style.position="absolute"; 
div.style.display="block"; 
div.style.zIndex="10"; 
div.style.background="yellow"; 
div.addEventListener("mouseout",function(event){//我把它加在了这里,而这里监听的判断与之前的划入几乎如出一辙 
var x=event.clientX; 
var y=event.clientY; 
left=x-test.offsetLeft; 
top=y-test.offsetTop; 
right=test.offsetLeft+test.offsetWidth-x; 
bottom=test.offsetTop+test.offsetHeight-y; 
arr=[]; 
arr.push(top); 
arr.push(right); 
arr.push(bottom); 
arr.push(left); 
var least=findLeast(arr); 


if(least==1){ 
} 
if(least==2){//还是距离和宽度的同时改变啊 
div.style.left=test.offsetLeft+"px"; 
div.style.top=test.offsetTop+"px"; 
div.style.height=test.offsetHeight+"px"; 
div.style.width=width+"px"; 
var changeWidth2=setInterval(function(){ 
if(div.offsetLeft>=test.offsetLeft+test.offsetWidth){ 
clearInterval(changeWidth2); 
check=true;//关键点 
}else{ 
marginLeft=marginLeft+10; 
width=width-10; 
div.style.width=width+"px"; 
div.style.left=marginLeft+"px"; 
} 
},30); 
} 
if(least==3){ 

} 
if(least==4){//向左划出,width作为全局变量,这次就是不断减小了 
div.style.left=test.offsetLeft+"px"; 
div.style.top=test.offsetTop+"px"; 
div.style.height=test.offsetHeight+"px"; 
div.style.width=width+"px"; 
var changeWidth1=setInterval(function(){ 
if(div.offsetWidth<=0){ 
clearInterval(changeWidth1); 
check=true;//这里也比较关键哦 
}else{ 
width=width-10; 
div.style.width=width+"px"; 
} 
},30); 
} 
}) 
return div; 
}
登入後複製

就這樣簡單的都實現了劃出劃入的效果,簡單的看的話確實已經有其形了,但是不得不說,這是個拙劣到了極點的實現,還有多少點是還沒有加入的,還有多少情況是還沒考慮到的,另外,這程式碼的重複編寫,優化優化,喏喏...

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板