用策略模式实现缓动动画
需求:让小球以各种缓动效果在页面中运动
动画开始前需要记录的:
-
小球所在原始位置
-
小球移动的目标位置
-
动画开始时的时间点
-
小球运动的时间点
之后,用setInterval
创建一个定时器,定时器每19秒循环一次。
1 | //缓动算法,此算法移植于flash |
接着Animation类
1 | var Animate = function( dom ) { |
Animate.prototype.start方法负责启动这个动画
Animate.prototype.step代表小球运动的每一帧要做的事情
1 | Animate.prototype.start = function( propertyName, endPos, duration, easing) { |
最后,调用
1 | var div = document.getElementById('div'); |
表单验证
需求:
-
用户名不能为空
-
密码长度不能少于6位
-
手机号码符合格式
常规,我们可能这么写:
1 | var registerForm = document.getElementById('registerForm'); |
当然,这个也有函数庞大,缺乏弹性,复用性差等问题,所以,开始突出本文的重点,策略模式的应用
1 | var strategies = { |