js实现遮罩层划出效果是生成div而不是显示

 更新时间:2014年07月29日 09:18:17   投稿:whsnow  
单纯的遮盖层划出是比较简单的,而本例介绍的这个就有点难度,生成div,而不是显示存在的div,需要的朋友可以参考下

同遮盖层划入一样,单纯的遮盖层划出的话算的上是非常简单了,但是在这里它却就不这么简单了,而且我前面还选了个比较麻烦的生成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; 
}

就这样简单的都实现了划出划入的效果,简单的看的话确实已经有其形了,但是不得不说,这是个拙劣到了极点的实现,还有多少点是还没有加入的,还有多少情况是还没有考虑到的,另外,这代码的重复编写,优化优化,喏喏...

相关文章

  • JavaScript删除字符串中指定字符的4种方法汇总

    JavaScript删除字符串中指定字符的4种方法汇总

    在前端面试中,经常会问到这样的一个问题,删除字符串中指定字符,下面这篇文章主要给大家介绍了关于JavaScript删除字符串中指定字符的4种方法,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-12-12
  • js 计算图片内点个数的示例代码

    js 计算图片内点个数的示例代码

    这篇文章主要介绍了js 计算图片内点个数的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • Bmail联系人飞来飞去效果

    Bmail联系人飞来飞去效果

    Bmail联系人飞来飞去效果...
    2007-01-01
  • javascript简单实现表格行间隔显示颜色并高亮显示

    javascript简单实现表格行间隔显示颜色并高亮显示

    表格行间隔显示颜色并实现高亮显示,这种效果大家都有见到过吧,下面就为大家详细介绍下,需要的朋友可不要错过
    2013-11-11
  • 使用CoffeeScrip优美方式编写javascript代码

    使用CoffeeScrip优美方式编写javascript代码

    CoffeeScript就是JavaScript,他进行的是一对一的编译,或者说是翻译,而且编译成的JavaScript代码可读性很强。本文给大家介绍使用CoffeeScript优美方式编写javascript代码,感兴趣的朋友一起看看吧
    2015-10-10
  • JavaScript 中的异步 forEach

    JavaScript 中的异步 forEach

    这篇文章主要介绍了JavaScript异步forEach的相关知识,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-07-07
  • 详解js创建对象的几种方式和对象方法

    详解js创建对象的几种方式和对象方法

    这篇文章主要介绍了详解js创建对象的几种方式和对象方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • JavaScript给事件委托批量添加事件监听详细流程

    JavaScript给事件委托批量添加事件监听详细流程

    事件委托,一般来讲,会把一个或者一组元素的事件委托到它的父层或者更外层元素上,真正绑定事件的是外层元素,当事件响应到需要绑定的元素上时,会通过事件冒泡机制从而触发它的外层元素的绑定事件上,然后在外层元素上去执行函数
    2021-10-10
  • BootStrap Validator对于隐藏域验证和程序赋值即时验证的问题浅析

    BootStrap Validator对于隐藏域验证和程序赋值即时验证的问题浅析

    这篇文章主要介绍了BootStrap Validator对于隐藏域验证和程序赋值即时验证的问题的解决方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-12-12
  • uni-app全局变量的四种实现方式总结

    uni-app全局变量的四种实现方式总结

    在开发的过程中,我们不可避免的用到全局变量,比如我们的请求的公共路径这个变量,下面这篇文章主要给大家总结介绍了关于uni-app全局变量的四种实现方式,需要的朋友可以参考下
    2023-10-10

最新评论