被QQ抖过窗口的你一定会对这种特效印象深刻吧,那么我们是否能在网页中实现这种效果呢?答案当然是肯定的,其实实现原理很简单,下面就为大家简单介绍下js中时如何实现的,喜欢的朋友可以参考下
下面这种支持浏览器(部分)主窗口的抖动,也可支持浏览器网页内指定的某个元素抖动,类似QQ的聊天窗口一样,很有意思:
<title>窗口抖动-www.yiwuku.com</title>
<style>
body{margin:50px; }
#qq{position:relative;}
span{padding:0 4px}
</style>
<body>
<p><button onclick="mfx()">图片抖动</button>
<span></span><button onclick="mfx(1)">浏览器抖动</button></p>
<img id="qq" src="https://www.baidu.com/img/bd_logo1.png" />
</body>
<script>
mfx=function(isWin){
var t=0,z=3,del=function(){clearInterval(mfx.ID);return mfx};
del().ID=setInterval(function(){
var i=t/180*Math.PI,x=Math.sin(i)*z,y=Math.cos(i)*z,s=qq.style;
isWin?window.moveBy(x,y):(s.top=x+'px',s.left=y+'px');
if((t+=90)>1080)del();
},30);
}
</script>第二种抖动浏览器窗口(实际上是控制body)兼容性更高一些:
<html>
<head>
<title> New Document - www.yiwuku.com</title>
<meta name="Generator" content="EditPlus">
<meta name="Author" content="">
<meta name="Keywords" content="">
<meta name="Description" content="">
<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>
</head>
<body id="win" style='position:relative;' border="1">
<button onclick="zd()">振动</button>
<div >asdfasdf<div/>
</body>
</html>