实例代码详解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 相关文章推荐
javascript入门·动态的时钟,显示完整的一些方法,新年倒计时
Oct 01 Javascript
模仿JQuery.extend函数扩展自己对象的js代码
Dec 09 Javascript
JavaScript数据类型详解
Apr 01 Javascript
Bootstrap每天必学之导航条
Nov 27 Javascript
js实现不重复导入的方法
Mar 02 Javascript
JavaScript 是什么意思
Sep 22 Javascript
使用node.js中的Buffer类处理二进制数据的方法
Nov 26 Javascript
jQuery ajax动态生成table功能示例
Jun 14 jQuery
webpack之devtool详解
Feb 10 Javascript
vue 中动态绑定class 和 style的方法代码详解
Jun 01 Javascript
详解vscode中vue代码颜色插件
Oct 11 Javascript
整理 node-sass 安装失败的原因及解决办法(小结)
Feb 19 Javascript
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
php中使用parse_url()对网址进行解析的实现代码(parse_url详解)
2012/01/03 PHP
ThinkPHP CURD方法之data方法详解
2014/06/18 PHP
php数组合并array_merge()函数使用注意事项
2014/06/19 PHP
ThinkPHP 3.2 数据分页代码分享
2014/10/14 PHP
PHP序列化/对象注入漏洞分析
2016/04/18 PHP
PHP并发多进程处理利器Gearman使用介绍
2016/05/16 PHP
php数组指针操作详解
2017/02/14 PHP
IE浏览器PNG图片透明效果代码
2008/09/02 Javascript
通过length属性判断jquery对象是否存在
2013/10/18 Javascript
一个CSS+jQuery实现的放大缩小动画效果
2014/02/19 Javascript
jQuery使用hide方法隐藏指定元素class样式用法实例
2015/03/30 Javascript
js实现兼容IE和FF的上下层的移动
2015/05/04 Javascript
js实现input密码框提示信息的方法(附html5实现方法)
2016/01/14 Javascript
js仿3366小游戏选字游戏
2016/04/14 Javascript
jQuery解析与处理服务器端返回xml格式数据的方法详解
2016/07/04 Javascript
AJAX和jQuery动态加载数据的实现方法
2016/12/05 Javascript
ES6中Array.copyWithin()函数的用法实例详解
2017/09/16 Javascript
vue-cli构建项目使用 less的方法
2017/10/04 Javascript
JavaScript中使用import 和require打包后实现原理分析
2018/03/07 Javascript
详解在vue-test-utils中mock全局对象
2018/11/07 Javascript
Python3连接MySQL(pymysql)模拟转账实现代码
2016/05/24 Python
使用python实现个性化词云的方法
2017/06/16 Python
Python实现购物系统(示例讲解)
2017/09/13 Python
Python基于递归和非递归算法求两个数最大公约数、最小公倍数示例
2018/05/21 Python
如何在Django项目中引入静态文件
2019/07/26 Python
Pycharm IDE的安装和使用教程详解
2020/04/30 Python
data:image data url 文件转为Blob上传后端的方法
2019/07/16 HTML / CSS
罗马尼亚购物网站:Vivantis.ro
2019/07/20 全球购物
房地产管理毕业生自荐信
2013/11/04 职场文书
学生自我鉴定模板
2013/12/30 职场文书
创业计划书——互联网商机
2014/01/12 职场文书
汉语言文学毕业求职信
2014/07/17 职场文书
幼儿园保育员责任书
2014/07/22 职场文书
2014年客服工作总结范文
2014/11/13 职场文书
机动车交通事故协议书
2015/01/29 职场文书
python爬取新闻门户网站的示例
2021/04/25 Python