实例代码详解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 concat数组累加 示例
Sep 03 Javascript
HTML上传控件取消选择
Mar 06 Javascript
confirm确认对话框的实现方法总结
Jun 17 Javascript
微信小程序 less文件编译成wxss文件实现办法
Dec 05 Javascript
AngularJS打开页面隐藏显示表达式用法示例
Dec 25 Javascript
深入理解Javascript中的valueOf与toString
Jan 04 Javascript
JS判断指定dom元素是否在屏幕内的方法实例
Jan 23 Javascript
jQuery+koa2实现简单的Ajax请求的示例
Mar 06 jQuery
vue实现简单的星级评分组件源码
Nov 16 Javascript
vue 内联样式style中的background用法说明
Aug 05 Javascript
vue.js页面加载执行created,mounted的先后顺序说明
Nov 07 Javascript
iview实现动态表单和自定义验证时间段重叠
Jan 10 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
php5数字型字符串加解密代码
2008/04/24 PHP
PHP实现多条件查询实例代码
2010/07/17 PHP
用PHP将数据导入到Foxmail的实现代码
2010/09/05 PHP
PHP设计模式(七)组合模式Composite实例详解【结构型】
2020/05/02 PHP
通过PHP实现用户注册后邮箱验证激活
2020/11/10 PHP
js 代码优化点滴记录
2012/02/19 Javascript
让人印象深刻的10个jQuery手风琴效果应用
2012/05/08 Javascript
jQuery解决下拉框select设宽度时IE 6/7/8下option超出显示不全
2013/05/27 Javascript
js导出格式化的excel 实例方法
2013/07/17 Javascript
js下将阿拉伯数字每三位一逗号分隔(如:15000000转化为15,000,000)
2014/06/02 Javascript
JavaScript实现列出数组中最长的连续数
2014/12/29 Javascript
AngularJS ng-bind-html 指令详解及实例代码
2016/07/30 Javascript
Vue.js动态组件解析
2016/09/09 Javascript
JS中闭包的经典用法小结(2则示例)
2016/12/28 Javascript
利用Vue.js框架实现火车票查询系统(附源码)
2017/02/27 Javascript
Vue实现购物车功能
2017/04/27 Javascript
使用 vue-i18n 切换中英文效果
2018/05/23 Javascript
小程序自定义组件实现城市选择功能
2018/07/18 Javascript
JavaScript函数、闭包、原型、面向对象学习笔记
2018/09/06 Javascript
javascript实现摄像头拍照预览
2019/09/30 Javascript
vue2.x 通过后端接口代理,获取qq音乐api的数据示例
2019/10/30 Javascript
python基础教程之popen函数操作其它程序的输入和输出示例
2014/02/10 Python
python执行shell获取硬件参数写入mysql的方法
2014/12/29 Python
深入理解Django的自定义过滤器
2017/10/17 Python
Python创建字典的八种方式
2019/02/27 Python
python中的逆序遍历实例
2019/12/25 Python
一款简洁的纯css3代码实现的动画导航
2014/10/31 HTML / CSS
马德里运动鞋商店:Nigra Mercato
2020/02/16 全球购物
会计岗位职责范本
2014/03/07 职场文书
2014年群众路线教育实践活动整改措施
2014/09/24 职场文书
2014年安置帮教工作总结
2014/12/11 职场文书
七年级生物教学反思
2016/02/20 职场文书
幼儿园教学反思范文
2016/03/02 职场文书
通知怎么写?
2019/04/17 职场文书
关于Vue中的options选项
2022/03/22 Vue.js
windows系统安装配置nginx环境
2022/06/28 Servers