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 相关文章推荐
Jquery 点击按钮自动高亮实现原理及代码
Apr 25 Javascript
简介JavaScript中用于处理正切的Math.tan()方法
Jun 15 Javascript
第一次接触神奇的Bootstrap
Oct 14 Javascript
JavaScript禁止微信浏览器下拉回弹效果
May 16 Javascript
addeventlistener监听scroll跟touch(实例讲解)
Aug 04 Javascript
捕获未处理的Promise错误方法
Oct 13 Javascript
Bootstrap treeview实现动态加载数据并添加快捷搜索功能
Jan 07 Javascript
浅谈Vue初学之props的驼峰命名
Jul 19 Javascript
前端开发之便利店收银系统代码
Dec 27 Javascript
three.js 制作动态二维码的示例代码
Jul 31 Javascript
element中table高度自适应的实现
Oct 21 Javascript
解析原生JS getComputedStyle
May 25 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
什么是MVC,好东西啊
2007/05/03 PHP
PHP 加密/解密函数 dencrypt(动态密文,带压缩功能,支持中文)
2009/01/30 PHP
用C/C++扩展你的PHP 为你的php增加功能
2012/09/06 PHP
Yii使用Captcha验证码的方法
2015/12/28 PHP
5秒后跳转效果(setInterval/SetTimeOut)
2013/05/03 Javascript
js左侧三级菜单导航实例代码
2013/09/13 Javascript
js实现鼠标点击文本框自动选中内容的方法
2015/08/20 Javascript
Express实现前端后端通信上传图片之存储数据库(mysql)傻瓜式教程(二)
2015/12/10 Javascript
原生JS实现拖拽图片效果
2020/08/27 Javascript
javascript淘宝主图放大镜功能
2016/10/20 Javascript
Bootstrap弹出框modal上层的输入框不能获得焦点问题的解决方法
2016/12/13 Javascript
详解如何较好的使用js
2016/12/16 Javascript
jQuery实现动态文字搜索功能
2017/01/05 Javascript
Angularjs中的ui-bootstrap的使用教程
2017/02/19 Javascript
React-Router如何进行页面权限管理的方法
2017/12/06 Javascript
以v-model与promise两种方式实现vue弹窗组件
2018/05/21 Javascript
微信小程序textarea层级过高(盖住其他元素)问题的解决办法
2019/03/04 Javascript
vue踩坑记录之数组定义和赋值问题
2019/03/20 Javascript
深入浅析Vue中mixin和extend的区别和使用场景
2019/08/01 Javascript
[07:47]DOTA2国际邀请赛采访专栏:探访Valve总部
2013/08/08 DOTA
python九九乘法表的实例
2017/09/26 Python
人工智能最火编程语言 Python大战Java!
2017/11/13 Python
selenium+python 对输入框的输入处理方法
2018/10/11 Python
pycharm远程开发项目的实现步骤
2019/01/20 Python
Python实现最常见加密方式详解
2019/07/13 Python
Python在cmd上打印彩色文字实现过程详解
2019/08/07 Python
使用Matplotlib 绘制精美的数学图形例子
2019/12/13 Python
python爬取招聘要求等信息实例
2020/11/20 Python
OpenCV+Python3.5 简易手势识别的实现
2020/12/21 Python
css3实现图片遮罩效果鼠标hover以后出现文字
2013/11/05 HTML / CSS
canvas里面如何基于随机点绘制一个多边形的方法
2018/06/13 HTML / CSS
浅谈react路由传参的几种方式
2021/03/23 Javascript
师范毕业生个人求职信
2013/12/09 职场文书
工程竣工验收申请报告
2015/05/15 职场文书
青春雷锋观后感
2015/06/10 职场文书
Python生成九宫格图片的示例代码
2021/04/14 Python