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 相关文章推荐
JS性能优化笔记搜索整理
Aug 21 Javascript
浅析JQuery中的html(),text(),val()区别
Sep 01 Javascript
Jquery ajax基础教程
Nov 20 Javascript
JavaScript的React框架中的JSX语法学习入门教程
Mar 05 Javascript
Angular 通过注入 $location 获取与修改当前页面URL的实例
May 31 Javascript
JS图片轮播与索引变色功能实例详解
Jul 06 Javascript
jQuery实现简单的下拉菜单导航功能示例
Dec 07 jQuery
layui表格checkbox选择全选样式及功能的实例
Mar 07 Javascript
新手快速上手webpack4打包工具的使用详解
Jan 28 Javascript
JS中注入eval, Function等系统函数截获动态代码
Apr 03 Javascript
Vue.js中该如何自己维护路由跳转记录
May 19 Javascript
JavaScript实现浏览器网页自动滚动并点击的示例代码
Dec 05 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安装问题
2006/10/09 PHP
第九节 绑定 [9]
2006/10/09 PHP
一段php加密解密的代码
2006/10/09 PHP
PHP两种快速排序算法实例
2015/02/15 PHP
PHP下载远程图片并保存到本地方法总结
2016/01/22 PHP
php+redis实现多台服务器内网存储session并读取示例
2017/01/12 PHP
php实现的中秋博饼游戏之掷骰子并输出结果功能详解
2017/11/06 PHP
PHP实现数组向任意位置插入,删除,替换数据操作示例
2019/04/05 PHP
PHP网站常见安全漏洞,及相应防范措施总结
2021/03/01 PHP
jQuery 美元符冲突的解决方法
2010/03/28 Javascript
jQuery Study Notes学习笔记 (二)
2010/08/04 Javascript
Jquery数独游戏解析(一)-页面布局
2010/11/05 Javascript
用JavaScript仿PS里的羽化效果代码
2011/12/20 Javascript
统计jQuery中各字符串出现次数的工具
2012/05/03 Javascript
调用HttpHanlder的几种返回方式小结
2013/12/20 Javascript
你未必知道的JavaScript和CSS交互的5种方法
2014/04/02 Javascript
div失去焦点事件实现思路
2014/04/22 Javascript
通过js来制作复选框的全选和不选效果
2014/05/22 Javascript
网页下载文件期间如何防止用户对网页进行其他操作
2014/06/27 Javascript
js实现模拟计算器退格键删除文字效果的方法
2015/05/07 Javascript
详解JavaScript节流函数中的Throttle
2016/07/16 Javascript
jQuery窗口拖动功能的实现代码
2017/02/04 Javascript
Three.js获取鼠标点击的三维坐标示例代码
2017/03/24 Javascript
使用JS组件实现带ToolTip验证框的实例代码
2017/08/23 Javascript
jQuery实现鼠标滑过商品小图片上显示对应大图片功能【测试可用】
2018/04/27 jQuery
vue实现数字动态翻牌的效果(开箱即用)
2019/12/08 Javascript
python实现监控windows服务并自动启动服务示例
2014/04/17 Python
python实现简单购物商城
2016/05/21 Python
举例讲解Python常用模块
2019/03/08 Python
浅析Python3中的对象垃圾收集机制
2019/06/06 Python
python opencv 图像拼接的实现方法
2019/06/27 Python
Python实现打印实心和空心菱形
2019/11/23 Python
超市店庆活动方案
2014/08/31 职场文书
公司奖励通知
2015/04/21 职场文书
同事欢送会致辞
2015/07/31 职场文书
公司车辆管理制度
2015/08/04 职场文书