实例代码详解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 获取对象 根据属性、内容匹配, 还有表单元素匹配
May 31 Javascript
Extjs中ComboBox加载并赋初值的实现方法
Mar 22 Javascript
使用JavaScript动态设置样式实现代码(2)
Jan 25 Javascript
在JavaScript中实现类的方式探讨
Aug 28 Javascript
js实现的map方法示例代码
Jan 13 Javascript
JavaScript 学习笔记之语句
Jan 14 Javascript
js实现滑动触屏事件监听的方法
May 05 Javascript
JS模拟简易滚动条效果代码(附demo源码)
Apr 05 Javascript
jquery easyui validatebox remote的使用详解
Nov 09 Javascript
layui表格实现代码
May 20 Javascript
微信小程序实现联动选择器
Feb 15 Javascript
微信小程序实现点击效果
Jun 21 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 类相关函数的使用详解
2013/05/10 PHP
php登陆页的密码处理方式分享
2013/10/14 PHP
PHP耦合设计模式实例分析
2018/08/08 PHP
Laravel Eloquent分表方法并使用模型关联的实现
2019/11/25 PHP
javascript入门·图片对象(无刷新变换图片)\滚动图像
2007/10/01 Javascript
6款新颖的jQuery和CSS3进度条插件推荐
2013/03/05 Javascript
JS 去前后空格大全(IE9亲测)
2013/07/15 Javascript
chrome下img加载对height()的影响示例探讨
2014/05/26 Javascript
使用JS画图之点、线、面
2015/01/12 Javascript
js实现iGoogleDivDrag模块拖动层拖动特效的方法
2015/03/04 Javascript
BootstrapTable与KnockoutJS相结合实现增删改查功能【二】
2016/05/10 Javascript
很实用的js选项卡切换效果
2016/08/12 Javascript
Jquery给当前页或者跳转后页面的导航栏添加选中后样式的实例
2016/12/08 Javascript
Bootstrap 下拉多选框插件Bootstrap Multiselect
2017/01/22 Javascript
详解如何在webpack中做预渲染降低首屏空白时间
2018/08/22 Javascript
JavaScript错误处理操作实例详解
2019/01/04 Javascript
JS实现处理时间,年月日,星期的公共方法示例
2019/05/31 Javascript
浅谈vue项目用到的mock数据接口的两种方式
2019/10/09 Javascript
微信小程序用canvas画图并分享
2020/03/09 Javascript
javascript 内存模型实例详解
2020/04/18 Javascript
vue实践---根据不同环境,自动转换请求的url地址操作
2020/09/21 Javascript
解决ant Design中Select设置initialValue时的大坑
2020/10/29 Javascript
[02:25]专访DOTA2负责人Erik 国际邀请赛暂不会离开西雅
2014/07/21 DOTA
python读取excel表格生成erlang数据
2017/08/26 Python
Python通过调用mysql存储过程实现更新数据功能示例
2018/04/03 Python
python实现给scatter设置颜色渐变条colorbar的方法
2018/12/13 Python
python实现爬取百度图片的方法示例
2019/07/06 Python
PyTorch中的padding(边缘填充)操作方式
2020/01/03 Python
Python自带的IDE在哪里
2020/07/01 Python
Html5 语法与规则简要概述
2014/07/29 HTML / CSS
DeinDesign德国:设计自己的手机壳
2019/12/14 全球购物
消防器材管理制度
2014/01/28 职场文书
放假通知格式
2015/04/14 职场文书
关于MySQL中的 like操作符详情
2021/11/17 MySQL
分享MySQL常用 内核 Debug 几种常见方法
2022/03/17 MySQL
使用CSS实现六边形的图片效果
2022/08/05 HTML / CSS