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 相关文章推荐
javascript应用:Iframe自适应其加载的内容高度
Apr 10 Javascript
JavaScipt基本教程之JavaScript语言的基础
Jan 16 Javascript
jQuery LigerUI 使用教程表格篇(1)
Jan 18 Javascript
推荐40个简单的 jQuery 导航插件和教程(下篇)
Sep 14 Javascript
纯javascript实现自动发送邮件
Oct 21 Javascript
Vue.js系列之项目搭建(1)
Jan 03 Javascript
JS 实现百度搜索功能
Feb 01 Javascript
详解ES6系列之私有变量的实现
Nov 21 Javascript
深入理解Vue.js轻量高效的前端组件化方案
Dec 10 Javascript
解决使用layui的时候form表单中的select等不能渲染的问题
Sep 18 Javascript
在vue中实现禁止回退上一步,路由不存历史记录
Jul 22 Javascript
Ajax常用封装库——Axios的使用
May 08 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
了解咖啡雨林联盟认证 什么是雨林认证 雨林认证是什么意思
2021/03/05 新手入门
php实现的一个很好用HTML解析器类可用于采集数据
2013/09/23 PHP
使用gd库实现php服务端图片裁剪和生成缩略图功能分享
2013/12/25 PHP
ThinkPHP3.1数据CURD操作快速入门
2014/06/19 PHP
PHP的APC模块实现上传进度条
2015/10/27 PHP
PHP微信API接口类
2016/08/22 PHP
PHP实现获取url地址中顶级域名的方法示例
2019/06/05 PHP
php判断数组是否为空的实例方法
2020/05/10 PHP
总结AJAX相关JS代码片段和浏览器模型
2007/08/15 Javascript
CSS3,HTML5和jQuery搜索框集锦
2014/12/02 Javascript
JS获取图片lowsrc属性的方法
2015/04/01 Javascript
JavaScript使用Prototype实现面向对象的方法
2015/04/14 Javascript
JS中的THIS和WINDOW.EVENT.SRCELEMENT详解
2015/05/25 Javascript
JS将滑动门改为选项卡(需鼠标点击)的实现方法
2015/09/27 Javascript
jquery实现select选择框内容左右移动代码分享
2015/11/21 Javascript
设计模式中的facade外观模式在JavaScript开发中的运用
2016/05/18 Javascript
vue.js表格组件开发的实例详解
2016/10/12 Javascript
js实现动态显示时间效果
2017/03/06 Javascript
JavaScript实现二叉树定义、遍历及查找的方法详解
2017/12/20 Javascript
详解如何在Angular优雅编写HTTP请求
2018/12/05 Javascript
axios异步提交表单数据的几种方法
2019/08/11 Javascript
浅谈Vue.js之初始化el以及数据的绑定说明
2019/11/14 Javascript
vue 组件简介
2020/07/31 Javascript
[02:55]DOTA2英雄基础教程 发条技师
2013/12/04 DOTA
[13:56]DAC2018 4.5SOLO赛决赛 MidOne vs Paparazi第一场
2018/04/06 DOTA
[01:05:30]VP vs TNC 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
Python外星人入侵游戏编程完整版
2020/03/30 Python
wxpython布局的实现方法
2019/11/01 Python
Habitat家居英国官方网站:沙发、家具、照明、厨房和户外
2019/12/12 全球购物
盛大二次面试题
2016/11/18 面试题
药品质量检测应届生求职信
2013/11/14 职场文书
学校介绍信范文
2014/01/14 职场文书
法院干警四风问题自我剖析材料
2014/09/29 职场文书
女生抽烟检讨书
2014/10/05 职场文书
中学生旷课检讨书500字
2014/10/29 职场文书
详解python字符串驻留技术
2021/05/21 Python