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


Posted in Javascript onJuly 29, 2014

同遮盖层划入一样,单纯的遮盖层划出的话算的上是非常简单了,但是在这里它却就不这么简单了,而且我前面还选了个比较麻烦的生成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 相关文章推荐
破除网页鼠标右键被禁用的绝招大全
Dec 27 Javascript
js 函数的执行环境和作用域链的深入解析
Nov 01 Javascript
Extjs gridpanel 出现横向滚动条问题的解决方法
Jul 04 Javascript
国外大牛IE版本检测!现在IE都到9了,IE检测代码
Jan 04 Javascript
广泛收集的jQuery拖放插件集合
Apr 09 Javascript
jQuery拖拽div实现思路
Feb 19 Javascript
JavaScript 消息框效果【实现代码】
Apr 27 Javascript
基于jQuery实现表格的查看修改删除
Aug 01 Javascript
超级简易的JS计算器实例讲解(实现加减乘除)
Aug 08 Javascript
React Native react-navigation 导航使用详解
Dec 01 Javascript
jQuery实现鼠标移入移出事件切换功能示例
Sep 06 jQuery
vue  directive定义全局和局部指令及指令简写
Nov 20 Javascript
解释&amp;&amp;和||在javascript中的另类用法
Jul 28 #Javascript
wap手机图片滑动切换特效无css3元素js脚本编写
Jul 28 #Javascript
jQuery内置的AJAX功能和JSON的使用实例
Jul 27 #Javascript
jQuery.parseJSON(json)将JSON字符串转换成js对象
Jul 27 #Javascript
jquery JSON的解析方式示例介绍
Jul 27 #Javascript
jQuery提交多个表单的小技巧
Jul 27 #Javascript
用javascript对一个json数组深度赋值示例
Jul 27 #Javascript
You might like
基于php在各种web服务器的运行模式详解
2013/06/03 PHP
关于WordPress的SEO优化相关的一些PHP页面脚本技巧
2015/12/10 PHP
微信支付开发动态链接Native支付
2016/07/12 PHP
php简单读取.vcf格式文件的方法示例
2017/09/02 PHP
详解cookie验证的php应用的一种SSO解决办法
2017/10/20 PHP
javascript抖动元素的小例子
2013/10/28 Javascript
jquery基础教程之数组使用详解
2014/03/10 Javascript
Web打印解决方案之证件套打的实现思路
2016/08/29 Javascript
Bootstrap table使用方法详细介绍
2016/12/09 Javascript
JS验证不重复验证码
2017/02/10 Javascript
使用bat打开多个cmd窗口执行gulp、node
2017/02/17 Javascript
AngularJS 最常用的八种功能(基础知识)
2017/06/26 Javascript
vue 实现Web端的定位功能 获取经纬度
2019/08/08 Javascript
Python自然语言处理之词干,词形与最大匹配算法代码详解
2017/11/16 Python
手把手教你用python抢票回家过年(代码简单)
2018/01/21 Python
Python实现的基于优先等级分配糖果问题算法示例
2018/04/25 Python
Django中的Model操作表的实现
2018/07/24 Python
flask中过滤器的使用详解
2018/08/01 Python
python爬虫自动创建文件夹的功能
2018/08/01 Python
详解Python网络框架Django和Scrapy安装指南
2019/04/01 Python
Django基础知识 web框架的本质详解
2019/07/18 Python
python调用函数、类和文件操作简单实例总结
2019/11/29 Python
OpenCV哈里斯(Harris)角点检测的实现
2020/01/15 Python
python高阶函数map()和reduce()实例解析
2020/03/16 Python
python使用nibabel和sitk读取保存nii.gz文件实例
2020/07/01 Python
CSS3实现歌词进度文字颜色填充变化动态效果的思路详解
2020/06/02 HTML / CSS
广州御银科技股份有限公司试卷(C++)
2016/11/04 面试题
声明struct x1 { . . . }; 和typedef struct { . . . }x2;有什么不同
2012/06/02 面试题
人力资源管理专业毕业生自我评价
2013/09/21 职场文书
银行存款证明样本
2014/01/17 职场文书
协议书怎么写
2014/04/21 职场文书
孝敬父母的活动方案
2014/08/28 职场文书
2015年预备党员自我评价
2015/03/04 职场文书
开除员工通知
2015/04/22 职场文书
员工拾金不昧表扬稿
2015/05/05 职场文书
一篇文章带你了解Python和Java的正则表达式对比
2021/09/15 Python