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 相关文章推荐
SWFObject 2.1以上版本语法介绍
Jul 10 Javascript
jQuery 回车事件enter使用示例
Feb 18 Javascript
JavaScript 开发工具webstrom使用指南
Dec 09 Javascript
使用jquery+CSS实现控制打印样式
Dec 31 Javascript
jQuery+CSS实现滑动的标签分栏切换效果
Dec 17 Javascript
jquery easyui datagrid实现增加,修改,删除方法总结
May 25 Javascript
微信小程序 简单DEMO布局,逻辑,样式的练习
Nov 30 Javascript
Bootstrap基本插件学习笔记之按钮(21)
Dec 08 Javascript
详解Angular.js指令中scope类型的几种特殊情况
Feb 21 Javascript
强大的 Angular 表单验证功能详细介绍
May 23 Javascript
送你43道JS面试题(收藏)
Jun 17 Javascript
vue下拉刷新组件的开发及slot的使用详解
Dec 23 Vue.js
解释&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 htmlspecialchars加强版
2010/02/16 PHP
php-fpm配置详解
2014/02/12 PHP
PHP常量使用的几个需要注意的地方(谨慎使用PHP中的常量)
2014/09/12 PHP
php字符串替换函数substr_replace()用法实例
2015/03/17 PHP
js类的静态属性和实例属性的理解
2009/10/01 Javascript
关于html+ashx开发中几个问题的解决方法
2011/07/18 Javascript
Array.prototype.concat不是通用方法反驳[译]
2012/09/20 Javascript
js获取控件位置以及不同浏览器中的差别介绍
2013/08/08 Javascript
前端程序员必须知道的高性能Javascript知识
2016/08/24 Javascript
Angular和Vue双向数据绑定的实现原理(重点是vue的双向绑定)
2016/11/22 Javascript
ES6入门教程之let和const命令详解
2017/05/17 Javascript
javascript如何用递归写一个简单的树形结构示例
2017/09/06 Javascript
webpack公共组件引用路径简化小技巧
2018/06/15 Javascript
微信小程序form表单组件示例代码
2018/07/15 Javascript
微信小程序 setData 对 data数据影响问题
2019/04/18 Javascript
JS实现的雪花飘落特效示例
2019/12/03 Javascript
解决微信小程序scroll-view组件无横向滚动的问题
2020/02/04 Javascript
vue组件库的在线主题编辑器的实现思路
2020/04/03 Javascript
vue实现员工信息录入功能
2020/06/11 Javascript
解决vue中el-tab-pane切换的问题
2020/07/19 Javascript
利用python微信库itchat实现微信自动回复功能
2017/05/18 Python
python使用threading获取线程函数返回值的实现方法
2017/11/15 Python
Python 使用PIL中的resize进行缩放的实例讲解
2018/08/03 Python
将python文件打包成EXE应用程序的方法
2019/05/22 Python
python实现人机猜拳小游戏
2020/02/03 Python
Blue Nile中国官网:全球知名的钻石和珠宝网络零售商
2020/03/22 全球购物
一份Java笔试题
2012/02/21 面试题
产品工艺师的岗位职责
2013/11/15 职场文书
专科生就业求职信
2014/06/22 职场文书
乡镇党委书记第三阶段个人整改措施
2014/09/16 职场文书
2014年药剂科工作总结
2014/11/26 职场文书
党员思想汇报材料
2014/12/19 职场文书
社区环境卫生倡议书
2015/04/29 职场文书
工伤劳动仲裁代理词
2015/05/25 职场文书
大学生十八大感想
2015/08/11 职场文书
详解MySQL数据库千万级数据查询和存储
2021/05/18 MySQL