实例代码详解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 相关文章推荐
node.js中的fs.futimes方法使用说明
Dec 17 Javascript
JavaScript模拟深蓝vs卡斯帕罗夫的国际象棋对局示例
Apr 22 Javascript
使用Sticky组件实现带sticky效果的tab导航和滚动导航的方法
Mar 22 Javascript
js判断某个字符出现的次数的简单实例
Jun 03 Javascript
详解jQuery中ajax.load()方法
Jan 25 Javascript
Jquery把获取到的input值转换成json
May 15 jQuery
EL表达式截取字符串的函数说明
Sep 22 Javascript
原生JS实现的跳一跳小游戏完整实例
Jan 27 Javascript
微信小程序常用简易小函数总结
Feb 01 Javascript
关于JavaScript 数组你应该知道的事情(推荐)
Apr 10 Javascript
JavaScript实现多张图片放大镜效果示例【不限定图片尺寸,rem单位】
May 14 Javascript
js 计数排序的实现示例(升级版)
Jan 12 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里得到前天和昨天的日期的代码
2007/08/16 PHP
php 数学运算验证码实现代码
2009/10/11 PHP
Drupal简体中文语言包安装教程
2014/09/27 PHP
PHP中Closure类的使用方法及详解
2015/10/09 PHP
php实现zip文件解压操作
2015/11/03 PHP
php编程中echo用逗号和用点号连接的区别
2016/03/26 PHP
PHP simplexml_load_file()函数讲解
2019/02/03 PHP
纯js实现瀑布流展现照片(自动适应窗口大小)
2013/04/08 Javascript
控制页面按钮在后台执行期间不重复提交的JS方法
2013/06/24 Javascript
Javascript改变CSS样式(局部和全局)
2013/12/18 Javascript
JavaScript实现twitter puddles算法实例
2014/12/06 Javascript
JavaScript更改字符串的大小写
2015/05/07 Javascript
jQuery实现TAB风格的全国省份城市滑动切换效果代码
2015/08/24 Javascript
JavaScript中eval()函数用法详解
2015/12/14 Javascript
jQuery unbind()方法实例详解
2016/01/19 Javascript
JS中的二叉树遍历详解
2016/03/18 Javascript
javascript字符串对象常用api函数小结(连接,替换,分割,转换等)
2016/09/20 Javascript
jquery.pagination.js分页使用教程
2018/10/23 jQuery
JavaScript实现动态添加、移除元素或属性的方法分析
2019/01/03 Javascript
小程序api实现promise封装过程解析
2019/11/21 Javascript
python 解析html之BeautifulSoup
2009/07/07 Python
Python爬取京东的商品分类与链接
2016/08/26 Python
解决tensorflow1.x版本加载saver.restore目录报错的问题
2018/07/26 Python
python批量处理txt文件的实例代码
2020/01/13 Python
Python实现清理微信僵尸粉功能示例【基于itchat模块】
2020/05/29 Python
HTML5 层的叠加的实现
2020/07/07 HTML / CSS
财务管理专业推荐信
2013/11/19 职场文书
高校十八大报告感想
2014/01/27 职场文书
大学生见习期满自我鉴定
2014/09/13 职场文书
五好文明家庭事迹材料
2014/12/20 职场文书
社区法制宣传日活动总结
2015/05/05 职场文书
大学军训心得体会800字
2016/01/11 职场文书
Pytorch 如何实现LSTM时间序列预测
2021/05/17 Python
Spring mvc是如何实现与数据库的前后端的连接操作的?
2021/06/30 Java/Android
详解Vue router路由
2021/11/20 Vue.js
volatile保证可见性及重排序方法
2022/08/05 Java/Android