实例代码详解javascript实现窗口抖动及qq窗口抖动


Posted in Javascript onJanuary 04, 2016

窗口抖动效果在很多地方都有应用,例如网易的登陆窗口就有这样的效果,当登陆失败的时候就会出现抖动效果,这不但有动感,而且让人感觉新颖,下面是一段这样的代码实例,和大家分享一下。

代码如下:

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8"/>
<meta name="author" content="http://www.softwhy.com/" />
<title>窗口登陆效果</title>
<style type="text/css">
#win
{
 position:relative;
 width:100px;
 height:100px;
 background-color:#666;
}
</style>
<script type="text/javascript"> 
var a=['top','left'];
var b=0; 
var u;
function fudu()
{ 
 win.style[a[b%2]]=(b++)%4<2?"0px":"4px"; 
 if(b>15)
 {
 clearInterval(u);
 b=0
 } 
}
function zd()
{
 clearInterval(u); 
 u=setInterval(fudu,32) 
} 
window.onload=function()
{
 var bt=document.getElementById("bt");
 var win=document.getElementById("win");
 bt.onclick=zd;
}
</script> 
</head> 
<body > 
<button id="bt">点击振动</button> 
<div id="win"></div> 
</body> 
</html>

以上代码中,当点击按钮的时候,div会出现抖动效果,当然此效果比较简单,这里仅仅是演示之用,在实际应用中可以自行扩展,下面简单介绍一下实现过程。

一.实现原理:

代码简单,原理也是非常简单。div是采用相对定位,当点击按钮的时候,就会通过定时器函数setInterval()不断调用fudu()函数,此函数可以通过取模的方式来不断的设置left或者top的属性值,也就是不断随机的调整div的位置,这样就实现了抖动效果,当b的值大于15的时候,停止抖动。

二.代码注释:

1.var a=['top','left'],声明一个数组,里面存储有top和left字符串。
2.var b=0,声明一个变量b并赋值为0。
3.var u,声明一个变量,作为定时器函数setInterval()的返回值。
4.function fudu(){},声明一个函数。
5.win.style[a[b%2]]=(b++)%4<2?"0px":"4px",此段代码是核心部分,b%2取模运算的值为0或1,这样就成为数组a的索引值用于获取数组中的值。style[a[b%]这种形式和style.top这种形式的效果是一样的。]]=(b++)%4<2?"0px":"4px",这样通过取模判断值是否小于2,来对div的top和left属性赋值。
6.if(b>15) {clearInterval(u); b=0} ,如果b的值大于15,那么就停止抖动,并将b的值重置为0。
7.function zd(){},声明一个函数。
8.clearInterval(u),停止定时器函数的运行,这句代码是为了防止连续点击按钮出现抖动可能不停止问题,因为两个抖动互相影响。
9.u=setInterval(fudu,30),使用定时器函数不断调用fudu函数。
10.window.onload=function(){},当文档内容完全加载完毕再去执行函数中的代码。
11.var bt=document.getElementById("bt"),获取按钮对象。
12.var win=document.getElementById("win"),获取div对象。
13.bt.onclick=zd,为按钮注册事件处理函数。

下面给大家介绍仿QQ窗口抖动的JavaScript代码

很不借的抖动特效,仿QQ聊天窗口的抖动效果,这里是用JavaScript代码实现,在配上这个假聊天窗口,没想到竟然和QQ的抖动效果还真相似,挺逗人。

<title>仿QQ窗口抖动</title>
<img id="win" style='position:relative' src="/jscss/demoimg/qqwinows.jpg">
<br /><br />
<button onclick="zd()">让我抖一下!</button>
<script >
function zd(u){ 
 var a=['top','left'],b=0;
 u=setInterval(function(){
 document.getElementById('win').style[a[b%2]]=(b++)%4<2?0:4;
 if(b>15){clearInterval(u);b=0}
 },32)
}
</script>

通过以上实例代码给大家介绍javascript实现窗口抖动及qq窗口抖动的相关内容,希望本段代码能够帮助到大家。

Javascript 相关文章推荐
实现超用户体验 table排序javascript实现代码
Jun 22 Javascript
javascript 静态对象和构造函数的使用和公私问题
Mar 02 Javascript
jQuery Tools Dateinput使用介绍
Jul 14 Javascript
jquery获取table中的某行全部td的内容方法
Mar 08 Javascript
JavaScript用JQuery呼叫Server端方法示例代码
Sep 03 Javascript
java中String类型变量的赋值问题介绍
Mar 23 Javascript
原生js编写autoComplete插件
Apr 13 Javascript
简单实现jQuery级联菜单
Jan 09 Javascript
微信小程序之滚动视图容器的实现方法
Sep 26 Javascript
vue 虚拟dom的patch源码分析
Mar 01 Javascript
IE9 elementUI文件上传的问题解决
Oct 17 Javascript
Vue 实现可视化拖拽页面编辑器
Feb 01 Vue.js
javascript基础语法学习笔记
Jan 04 #Javascript
封装好的javascript前端分页插件pagination
Jan 04 #Javascript
详解javascript的变量与标识符
Jan 04 #Javascript
bootstrap实现弹窗和拖动效果
Jan 03 #Javascript
基于javascript实现窗口抖动效果
Jan 03 #Javascript
理解jquery事件冒泡
Jan 03 #Javascript
实例讲解避免javascript冲突的方法
Jan 03 #Javascript
You might like
使用php4加速网络传输
2006/10/09 PHP
请php正则走开
2008/03/15 PHP
一个简单的网页密码登陆php代码
2012/07/17 PHP
浅析php变量修饰符static的使用
2013/06/28 PHP
PHP生成随机密码方法汇总
2015/08/27 PHP
PHP获取用户访问IP地址的5种方法
2016/05/16 PHP
Thinkphp实现站点静态化的方法详解
2017/03/21 PHP
Yii2结合Workerman的websocket示例详解
2018/09/10 PHP
因str_replace导致的注入问题总结
2019/08/08 PHP
日历查询的算法 如何计算某一天是星期几
2012/12/12 Javascript
javascript实现分栏显示小技巧附图
2014/10/13 Javascript
node.js使用require()函数加载模块
2014/11/26 Javascript
jQuery实现拖动调整表格单元格大小的代码实例
2015/01/13 Javascript
javascript实现不同颜色Tab标签切换效果
2016/04/27 Javascript
AngularJs基本特性解析(一)
2016/07/21 Javascript
vue-router路由参数刷新消失的问题解决方法
2017/06/17 Javascript
详解微信小程序 template添加绑定事件
2017/06/23 Javascript
JS二分查找算法详解
2017/11/01 Javascript
cropper js基于vue的图片裁剪上传功能的实现代码
2018/03/01 Javascript
vue项目中引入vue-datepicker插件的详解
2019/05/14 Javascript
js实现盒子拖拽动画效果
2020/08/09 Javascript
详解vue-router的导航钩子(导航守卫)
2020/11/02 Javascript
[55:02]2014 DOTA2国际邀请赛中国区预选赛 HGT VS Orenda
2014/05/21 DOTA
Python查看多台服务器进程的脚本分享
2014/06/11 Python
编写Python脚本把sqlAlchemy对象转换成dict的教程
2015/05/29 Python
详解Python中的元组与逻辑运算符
2015/10/13 Python
Python通过matplotlib画双层饼图及环形图简单示例
2017/12/15 Python
通过selenium抓取某东的TT购买记录并分析趋势过程解析
2019/08/15 Python
Python tkinter常用操作代码实例
2020/01/03 Python
Pandas中两个dataframe的交集和差集的示例代码
2020/12/13 Python
高三体育教学反思
2014/01/29 职场文书
节能标语大全
2014/06/21 职场文书
普通话宣传标语
2014/06/26 职场文书
婚礼父母答谢词
2015/01/04 职场文书
中学生社区服务活动报告
2015/02/05 职场文书
vue-router中hash模式与history模式的区别
2021/06/23 Vue.js