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 detach()后节点中的某个值实现代码
Feb 05 Javascript
jquery动态添加删除div 具体实现
Jul 20 Javascript
offsetHeight在OnLoad中获取为0的现象
Jul 22 Javascript
仿百度输入框智能提示的js代码
Aug 22 Javascript
JS获取CSS样式(style/getComputedStyle/currentStyle)
Jan 19 Javascript
JavaScript File分段上传
Mar 10 Javascript
JS实现表单验证功能(验证手机号是否存在,验证码倒计时)
Oct 11 Javascript
Vue动态控制input的disabled属性的方法
Jun 26 Javascript
Vue如何实现响应式系统
Jul 11 Javascript
浅谈Vue.js中如何实现自定义下拉菜单指令
Jan 06 Javascript
微信小程序之数据绑定原理解析
Aug 14 Javascript
vue npm install 安装某个指定的版本操作
Aug 11 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
php4的彩蛋
2006/10/09 PHP
php知道与问问的采集插件代码
2010/10/12 PHP
php登陆页的密码处理方式分享
2013/10/14 PHP
php mysql PDO 查询操作的实例详解
2017/09/23 PHP
PHP空值检测函数与方法汇总
2017/11/19 PHP
jQuery .tmpl() 用法示例介绍
2014/08/21 Javascript
NodeJS学习笔记之Connect中间件模块(一)
2015/01/27 NodeJs
详解JavaScript基于面向对象之继承实例
2015/12/16 Javascript
将html页面保存成图片,图片写入pdf的实现方法(推荐)
2016/09/17 Javascript
浅谈bootstrap使用中的一些问题以及解决过程
2016/10/18 Javascript
详解前端自动化工具gulp自动添加版本号
2016/12/20 Javascript
jquery+css实现侧边导航栏效果
2017/06/12 jQuery
js防刷新的倒计时代码 js倒计时代码
2017/09/06 Javascript
node.js学习之断言assert的使用示例
2017/09/28 Javascript
node 利用进程通信实现Cluster共享内存
2017/10/27 Javascript
Vue中使用vee-validate表单验证的方法
2018/05/09 Javascript
JS实现图片切换效果
2018/11/17 Javascript
vue elementui el-form rules动态验证的实例代码详解
2019/05/23 Javascript
[46:04]Liquid vs VP Supermajor决赛 BO 第四场 6.10
2018/07/05 DOTA
Python for Informatics 第11章之正则表达式(二)
2016/04/21 Python
Python列表推导式与生成器表达式用法示例
2018/02/08 Python
python定时检测无响应进程并重启的实例代码
2019/04/22 Python
使用pandas读取文件的实现
2019/07/31 Python
python GUI库图形界面开发之PyQt5单行文本框控件QLineEdit详细使用方法与实例
2020/02/27 Python
关于python3.7安装matplotlib始终无法成功的问题的解决
2020/07/28 Python
Python SMTP发送电子邮件的示例
2020/09/23 Python
Python实现自动装机功能案例分析
2020/10/22 Python
利用CSS3实现开门效果实例源码
2016/08/22 HTML / CSS
Html5页面内使用JSON动画的实现
2019/01/29 HTML / CSS
英国复古服装购物网站:Collectif
2019/10/30 全球购物
Yahoo-PHP面试题3
2012/01/14 面试题
Java如何格式化日期
2012/08/07 面试题
应用化学专业职业生涯规划书
2014/01/22 职场文书
《秋姑娘的信》教学反思
2014/02/28 职场文书
小学生勤俭节约演讲稿
2014/08/28 职场文书
mysql查询结果实现多列拼接查询
2022/04/03 MySQL