封装好的 抖动函数 shake
来源:互联网 发布:即时战略推荐 知乎 编辑:程序博客网 时间:2024/06/17 22:41
- 抖动函数
shake
封装 function shake ( obj, attr, endFn ) {
var pos = parseInt( getStyle(obj, attr) );
var arr = []; // 20, -20, 18, -18 ..... 0
var num = 0;
for ( var i=20; i>0; i-=2 ) {
arr.push( i, -i );
}
arr.push(0);
clearInterval( obj.shake );
obj.shake = setInterval(function (){
obj.style[attr] = pos + arr[num] + 'px';
num++;
if ( num === arr.length ) {
clearInterval( obj.shake );
endFn && endFn();
}
}, 50);
}
function getStyle(obj, attr ){
return obj.currentStyle?obj.currentStyle[attr]:getComputedStyle(obj)[attr];
}
解析:shake ( obj, attr, endFn )
obj --> 抖动对象
attr --> 抖动的方向 top / left 要加引号
endfn --> 回调函数 、 可有可无
ps:attr 传参时 要加 引号
解决连续点击会改变元素的位置示例:给元素身上加个开关
示例:
示例:
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset="UTF-8">
<style>
html,body{margin:0;}
#div1{
width:100px;
height:100px;
background:red;
position:absolute;
margin:50px 100px;
}
</style>
<script>
window.onload=function(){
var adiv=document.getElementById('div1');
adiv.onoff=true;
adiv.onclick=function(){
var a=parseInt(getStyle(adiv,'left'))+parseInt(adiv.offsetLeft)
shake ( adiv,'left', function(){adiv.onoff=true});
}
function shake ( obj, attr, endFn ) {
var pos = parseInt( getStyle(obj, attr) );
var arr = []; // 20, -20, 18, -18 ..... 0
var num = 0;
for ( var i=20; i>0; i-=2 ) {
arr.push( i, -i );
}
arr.push(0);
if ( obj.onoff) {
clearInterval( obj.shake );
obj.shake = setInterval(function (){
obj.onoff=false;
obj.style[attr] = pos + arr[num] + 'px';
num++;
if ( num === arr.length ) {
obj.onoff==true
clearInterval( obj.shake );
endFn && endFn();
}
}, 50);
}
}
function getStyle(obj, attr ){
return obj.currentStyle?obj.currentStyle[attr]:getComputedStyle(obj)[attr];
}
}
</script>
</head>
<body>
<div id="div1"></div>
</body>
</html>
1 0
- 封装好的 抖动函数 shake
- 运动函数以及抖动函数的封装
- camera shake 相机抖动
- 抖动函数封装
- 动起来!好玩的CSS抖动样式 – CSS Shake
- 动起来!好玩的CSS抖动样式 – CSS Shake
- css3 的shake效果,css3抖动窗口 大部分手机浏览器都支持
- CSS Shake:CSS3抖动样式让你的网页动起来
- Android-View-Animation 编辑框抖动shake
- 封装好的DLL远程注入函数
- 封装好的CURL和Fsockopen函数
- 封装好的CAPI证书函数
- 字符串中封装好的函数
- 原生js封装好的动画函数+jQuery函数animate
- 鼠标滑过图片抖动晃动效果(css/Shake)
- shake
- SHAKE
- shake
- 版本升级
- Android View的绘制流程
- php基础之常量
- JavaScript学习笔记之通过DOM操作CSS
- rotate
- 封装好的 抖动函数 shake
- 全景视频拼接关键技术
- 版本更新
- post和get的区别?
- 【BZOJ2330】 [SCOI2011]糖果 差分约束+贪心
- iOS plist文件中取值遇到的陷阱
- BZOJ3538: [Usaco2014 Open]Dueling GPS Spfa 水
- SpringAOP之我的理解(二)------具体实现
- mysql各种查询大全