各种封装----move框架

运动框架

html <div id="div1"></div>

js:

window.onload=function(){

  var oDiv=document.getElementById(‘div1‘);

   oDiv.onclick=function(){

    move(oDiv,{left:300});  

};

};

使用:move()

function move(obj, json, options)
{
    options=options || {};
    var type=options.type || ‘linear‘;
    var time=options.time || 2000;

var start={};
    var dis={};
    for (var name in json)
    {
        start[name]=parseFloat(getStyle(obj, name));
        dis[name]=json[name]-start[name];
    }

var count=Math.floor(time/30);
    var n=0;
    
    clearInterval(obj.timer);
    obj.timer=setInterval(function (){
        n++;
        
        // 改变样式
        for (var name in json)
        {
            switch (type)
            {
                case ‘linear‘:
                    var cur=start[name]+dis[name]*n/count;
                    break;
                    
                case ‘ease-in‘:
                    var a=n/count;
                    var cur=start[name]+dis[name]*a*a*a;
                    break;
                    
                case ‘ease-out‘:
                    var a=1-n/count;
                    var cur=start[name]+dis[name]*(1-a*a*a);
                    break;
            }
            
            
            if (name == ‘opacity‘)
            {
                obj.style[name]=cur;
            }
            else
            {
                obj.style[name]=cur+‘px‘;
            }
        }
        
        if (n == count)
        {
            clearInterval(obj.timer);
            options.fn && options.fn();
        }
    }, 30);
}
function getStyle(obj, sName)
{
    return (obj.currentStyle || getComputedStyle(obj, false))[sName];
}

时间: 2024-10-03 22:47:19

各种封装----move框架的相关文章

封装运动框架单个属性

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>封装运动框架的单个属性</title> <style> div{ width: 100px; height: 100px; font-weight:bold;">pink; position: absolute; left: 10px

继续封装jQuery框架的模块功能

在前两天已经封装了框架的选择器模块的函数了,在这里为了保持代码的完整性,以及体现框架模块的功能.这里用一个h5的方法,简单表示选择器模块. 1 (function(window){ //传入window全局对象,可以减少作用域的访问深度 2 //1.选择器模块 3 var select = (function () { 4 return function (selector, context) { 5 if (context) { 6 return context.querySelectorAl

原生JS封装运动框架

昨天我们说了一下原生JS中常用的兼容性写法,今天我们来说一下运动框架. 正常情况下我们要写一个运动的效果会用到tween.js这么一个插件,这个东西不是一般人写出来的,因为里面涉及的运动效果都是经过一堆数学的函数运算出来的,我们平常人是写不出来的,所有我们就自己封装一个运动框架,有什么问题改起来也方便,下面我们就开始封装. 首先,我们先写一个div,设置一些简单的样式,我们就拿这个div举例子,如下代码: #div{ width: 100px; height: 100px; background

三维引擎设计-多线程渲染(平台API基础和封装大致框架)

第一部分: Linux线程API基础 一:线程创建与结束 (1)pthread_t //线程的标识符类型 (2)pthread_create //用来创建一个线程, 参数线程标识符, 线程属性, 线程运行函数地址 (3)pthread_join //用来等待一个线程的结束, 参数被等待线程标识符,用户自定义指针 (4)pthread_exit //线程非正常结束,参数线程返回代码 二:修改线程属性 (1)pthread_attr_t //线程属性结构类型 (2)pthread_attr_init

封装事件框架

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style> div{ width: 100px; height: 100px; background: red; } </style> </head> <body> <

第二百六十七节,Tornado框架-分页封装模块

Tornado框架-分页封装模块 框架引擎 #!/usr/bin/env python #coding:utf-8 import tornado.ioloop import tornado.web #导入tornado模块下的web文件 from controllers import index settings = { #html文件归类配置,设置一个字典 "template_path":"views", #键为template_path固定的,值为要存放HTML

OkHttp框架从入门到放弃,解析图片使用Picasso裁剪,二次封装OkHttpUtils,Post提交表单数据

OkHttp框架从入门到放弃,解析图片使用Picasso裁剪,二次封装OkHttpUtils,Post提交表单数据 我们这片博文就来聊聊这个反响很不错的OkHttp了,标题是我恶搞的,本篇将着重详细的分析,探索OkHttp这个框架的使用和封装 一.追其原理 Android系统提供了两种HTTP通信类 HttpURLConnection HttpClient Google推荐使用HttpURLConnection,这个没必要多说,事实上,我这篇写的应该算是比较晚了,很多优秀的博文都已经提出了这些观

封装简单的mvc框架

mvc 自己封装一个框架 MVC模式(Model-View-Controller)是软件工程中的一种软件架构模式. MVC把软件系统分为三个基本部分:模型(Model).视图(View)和控制器(Controller). PHP中MVC模式也称Web MVC,从上世纪70年代进化而来. MVC的目的是实现一种动态的程序设计,便于后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能. 除此之外,此模式通过对复杂度的简化,使程序结构更加直观. MVC各部分的职能: 模型Model – 管

Android中网络框架的简单封装

个人博客 http://www.milovetingting.cn Android中网络框架的简单封装 前言 Android作为一款主要应用在移动终端的操作系统,访问网络是必不可少的功能.访问网络,最基本的接口有:HttpUrlConnection,HttpClient,而在后续的发展中,出现了Volley,OkHttp,Retrofit等网络封装库.由于各种原因,在实际的项目开发中,我们可能会需要在项目的版本迭代中,切换网络框架.如果对于网络框架没有好的封装,那么当需要切换网络框架时,可能就会