实例代码详解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 相关文章推荐
基于jQuery制作迷你背词汇工具
Jul 27 Javascript
Jquery 表单验证类介绍与实例
Jun 09 Javascript
表单元素与非表单元素刷新区别详细解析
Nov 06 Javascript
jQuery中:focus选择器用法实例
Dec 30 Javascript
javascript判断网页是关闭还是刷新
Sep 12 Javascript
浅谈Sticky组件的改进实现
Mar 22 Javascript
详解js跨域请求的两种方式,支持post请求
May 05 Javascript
浅谈在node.js进入文件目录的问题
May 13 Javascript
基于vue循环列表时点击跳转页面的方法
Aug 31 Javascript
微信小程序 简易计算器实现代码实例
Sep 02 Javascript
vue中v-for循环选中点击的元素并对该元素添加样式操作
Jul 17 Javascript
如何在vue 中使用柱状图 并自修改配置
Jan 21 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
php array_merge下进行数组合并的代码
2008/07/22 PHP
php验证session无效的解决方法
2014/11/04 PHP
php实现图片上传并利用ImageMagick生成缩略图
2016/03/14 PHP
PHP面向对象类型约束用法分析
2019/06/12 PHP
php解压缩zip和rar压缩包文件的方法
2019/07/10 PHP
JS的数组的扩展实例代码
2008/07/09 Javascript
JavaScript 异步调用框架 (Part 1 - 问题 &amp; 场景)
2009/08/03 Javascript
将函数的实际参数转换成数组的方法
2010/01/25 Javascript
基于javascript实现判断移动终端浏览器版本信息
2014/12/09 Javascript
解决jquery实现的radio重新选中的问题
2015/07/03 Javascript
让网站自动生成章节目录索引的多个js代码
2018/01/07 Javascript
浅谈Vue2.0中v-for迭代语法的变化(key、index)
2018/03/06 Javascript
Vue.js实现数据响应的方法
2018/08/13 Javascript
基于vue如何发布一个npm包的方法步骤
2019/05/15 Javascript
JSON 入门教程基础篇 json入门学习笔记
2020/09/22 Javascript
[02:50]2014DOTA2 TI预选赛预选赛 大神专访第一弹!
2014/05/21 DOTA
[01:01:31]2018DOTA2亚洲邀请赛3月29日小组赛B组 Mineski VS paiN
2018/03/30 DOTA
详解Python中break语句的用法
2015/05/14 Python
浅析python中的分片与截断序列
2016/08/09 Python
python requests 使用快速入门
2017/08/31 Python
浅析python中while循环和for循环
2019/11/19 Python
Python利用FFT进行简单滤波的实现
2020/02/26 Python
英国领先的运动营养品牌:Protein Dynamix
2018/01/02 全球购物
红色连衣裙精品店:Red Dress Boutique
2018/08/11 全球购物
最新党员的自我评价分享
2013/11/04 职场文书
单位人事专员介绍信
2014/01/11 职场文书
中级会计职业生涯规划范文
2014/01/16 职场文书
感恩寄语大全
2014/04/11 职场文书
自主招生推荐信格式模板
2015/03/24 职场文书
文艺部部长竞选稿
2015/11/21 职场文书
企业文化学习心得体会
2016/01/21 职场文书
2016年教师师德师风承诺书
2016/03/25 职场文书
Python基础之操作MySQL数据库
2021/05/06 Python
python 经纬度求两点距离、三点面积操作
2021/06/03 Python
JavaScript实现优先级队列
2021/12/06 Javascript
Java由浅入深通关抽象类与接口(上篇)
2022/04/26 Java/Android