简单动画实现代码

动画的实现原型

<div id="div1" style="width:100px;height:50px;background:red;cursor:pointer;color:#fff;text-align:center;line-height:50px;">点击</div>

<script type="text/javascript">
//dom
var oDiv = document.getElementById(‘div1‘);
//调用
oDiv.onclick = function() {
    $(‘#div1‘).run({
        ‘width‘: ‘500‘
    }).run({
        ‘width‘: ‘300‘
    }).run({
        ‘width‘: ‘1000‘
    });
};
</script>

JS

(function($) {

    window.$ = $;

})(function() {

    var rquickExpr = /^(?:#([\w-]*))$/;

    function aQuery(selector) {
        return new aQuery.fn.init(selector);
    }

    /**
     * 动画
     * @return {[type]} [description]
     */
    var animation = function(){
        var self    = {};
        var Queue   = []; //动画队列
        var fireing = false //动画锁
        var first   = true;//通过add接口触发

        var getStyle = function(obj, attr) {
            return obj.currentStyle ? obj.currentStyle[attr] : getComputedStyle(obj, false)[attr];
        }

        var makeAnim = function(element, options, func) {
            var width = options.width
                //包装了具体的执行算法
                //css3
                //setTimeout
            element.style.webkitTransitionDuration = ‘2000ms‘;
            element.style.webkitTransform = ‘translate3d(‘ + width + ‘px,0,0)‘;

            //监听动画完结
            element.addEventListener(‘webkitTransitionEnd‘, function() {
                func()
            });
        }

        var _fire = function() {
            //加入动画正在触发
            if (!fireing) {
                var onceRun = Queue.shift();
                if (onceRun) {
                    fireing = true;
                    //next
                    onceRun(function() {
                        fireing = false;
                        _fire();
                    });
                } else {
                    fireing = true;
                }
            }
        }

        return self = {
            //增加队列
            add: function(element,options) {
                Queue.push(function(func) {
                    makeAnim(element, options, func);
                });

                //如果有一个队列立刻触发动画
                if(first && Queue.length ){
                    first = false;
                    self.fire();
                }
            },
            //触发
            fire: function() {
                _fire();
            }
        }
    }();

    aQuery.fn = aQuery.prototype = {
        run:function(options){
            animation.add(this.element,options);
            return this;
        }
    }

    var init = aQuery.fn.init = function(selector) {
        var match    = rquickExpr.exec(selector);
        var element  = document.getElementById(match[1])
        this.element = element;
        return this;
    }

    init.prototype = aQuery.fn;

    return aQuery;
}());

简单动画实现代码

时间: 2024-10-07 00:45:41

简单动画实现代码的相关文章

ios状态栏调整 简单动画的知识点

首先状态栏式view的属性,所以在viewController中直接重写: /** 修改状态栏 */ - (UIStatusBarStyle)preferredStatusBarStyle { // 修改状态栏的颜色(白色) return UIStatusBarStyleLightContent; } // 这种返回值没有*的说明不是对象,那么不是枚举就是结构体,大多数情况是枚举,所以取值也比较简单,一般是返回值后边加上状态: 在UIKit学习中常用的块动画: // 块动画 animateWit

2016.01.22 简单动画

简单动画没什么好说的,直接看代码.=-= //横向.纵向移动 [UIView animateWithDuration:0.5 animations:^{ self.aView.frame = CGRectMake(_aView.frame.origin.x, _aView.frame.origin.y + 50, _aView.frame.size.width, _aView.frame.size.height); }]; //渐变效果 [UIView animateWithDuration:0

原生javascript实现的一个简单动画

本文章向大家介绍一个javascript实现的动画.点击开始按钮div会往右移动,点击停止后,div停止移动,再点击则继续移动.请看下面代码. <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <head> <title>javascript实现的简单动画</title> <style type="text/css"&g

Javascript 实现简单计算器实例代码

Javascript 实现简单计算器实例代码 这篇文章主要介绍了Javascript 实现简单计算器实例代码的相关资料,需要的朋友可以参考下 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63

关于DOM的简单动画

利用DOM制作的一些简单动画 1.div每点击一次 向右移动200px(带DOM动画过渡) <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> h1 { font-size: 20px; } #testDiv { width: 150px; height

简单的jQuery代码

用户名: 密 码: <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>简单的jQuery代码</title> <!--引入jQuery脚本--> <script src="scripts/jquery-3.1.1.js" type="text/javascri

jquery添加光棒效果的各种方式以及简单动画复杂动画

过滤器.绑定事件.动画 一.基本过滤器 语法 描述 返回值 :first 选取第一个元素 单个元素 :last 选取最后一个元素 单个元素 :not(selector) 选取去除所有与给定选择器匹配的元素 集合元素 :even 选取索引是偶数的所有元素(index 从0开始) 集合元素 :odd 选取索引是奇数的所有元素(index 从0开始) 单个元素 :eq(index) 选取索引等于index的元素 集合元素 :gt 选取索引大于index的元素 集合元素 :lt 选取索引小于index的

自定义实现ExpandableListView收缩的简单动画效果

以下是 ExpandableListView 收缩的简单动画效果 1 /* 2 * Copyright (C) 2014 Gary Guo 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the L

iOS的view翻转动画实现--代码老,供参考

新建一个view-based模板工程,在ViewController文件中添加下面的代码,即可实现翻转效果: - (void)viewDidLoad { [super viewDidLoad]; //需要翻转的视图 UIView *parentView = [[UIView alloc] initWithFrame:CGRectMake(0, 150, 320, 200)]; parentView.backgroundColor = [UIColor yellowColor]; parentVi