实例代码详解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 相关文章推荐
js通过八个点 拖动改变div大小的实现方法
Mar 05 Javascript
JS/Jquery判断对象为空的方法
Jun 11 Javascript
以Python代码实例展示kNN算法的实际运用
Oct 26 Javascript
Vue.js鼠标悬浮更换图片功能
May 17 Javascript
浅谈JS函数节流防抖
Oct 18 Javascript
Vue.js分页组件实现:diVuePagination的使用详解
Jan 10 Javascript
MUI 实现侧滑菜单及其主体部分上下滑动的方法
Jan 25 Javascript
jQuery实现table表格checkbox全选的方法分析
Jul 04 jQuery
vue实现点击追加选中样式效果
Nov 01 Javascript
微信小程序语音同步智能识别的实现案例代码解析
May 29 Javascript
JQuery+drag.js上传图片并且实现图片拖曳
Nov 18 jQuery
前端监听websocket消息并实时弹出(实例代码)
Nov 27 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函数
2006/12/06 PHP
PHP入门教程之数组用法汇总(创建,删除,遍历,排序等)
2016/09/11 PHP
PHP文件操作实例总结
2016/09/27 PHP
浅谈PHP的反射机制
2016/12/15 PHP
Yii2语言国际化自动配置详解
2018/08/22 PHP
表单的一些基本用法与技巧
2006/07/15 Javascript
JavaScript 组件之旅(四):测试 JavaScript 组件
2009/10/28 Javascript
悄悄用脚本检查你访问过哪些网站的代码
2010/12/04 Javascript
Javascript变量作用域详解
2013/12/06 Javascript
利用jquery.qrcode在页面上生成二维码且支持中文
2014/02/12 Javascript
常用DOM整理
2015/06/16 Javascript
值得分享的Bootstrap Ace模板实现菜单和Tab页效果
2015/12/30 Javascript
浅谈Javascript数组(推荐)
2016/05/17 Javascript
原生JS实现幻灯片
2017/02/22 Javascript
d3.js实现立体柱图的方法详解
2017/04/28 Javascript
vue axios数据请求及vue中使用axios的方法
2018/09/10 Javascript
VUE简单的定时器实时刷新的实现方法
2019/01/20 Javascript
Element中的Cascader(级联列表)动态加载省\市\区数据的方法
2019/03/27 Javascript
nodejs的安装使用与npm的介绍
2019/09/11 NodeJs
Vue 自定义指令功能完整实例
2019/09/17 Javascript
在vue中实现禁止屏幕滚动,禁止屏幕滑动
2020/07/22 Javascript
vue 获取元素额外生成的data-v-xxx操作
2020/09/09 Javascript
python去除字符串中的换行符
2017/10/11 Python
树莓派3 搭建 django 服务器的实例
2019/08/29 Python
Python读取pdf表格写入excel的方法
2021/01/22 Python
Css3圆角边框制作代码
2015/11/18 HTML / CSS
HTML5新增元素如何兼容旧浏览器有哪些方法
2014/05/09 HTML / CSS
ReVive利维肤美国官网:RéVive Skincare
2018/04/18 全球购物
俄罗斯韩国化妆品网上商店:Cosmasi.ru
2019/10/31 全球购物
新浪网技术部笔试题
2016/08/26 面试题
如何让Java程序执行效率更高
2014/06/25 面试题
迟到检讨书1000字
2014/01/15 职场文书
2014医学院领导班子对照检查材料思想汇报
2014/09/19 职场文书
物业公司管理制度
2015/08/05 职场文书
2016高三毕业赠言寄语
2015/12/04 职场文书
canvas绘制折线路径动画实现
2021/05/12 Javascript