下班后,,没事捣鼓捣鼓个人的小爱好。

首先,说明我的这个运动框架(css所有属性)也是常见的框架一种,健壮性并不是太好,对于新手学习倒是挺好,,若是大神,老司机请拐弯。

上来,我们先定义一个区块,然后在关联一个可以实时看到属性值发生变化值的标签。

html:

<body>
<div id = "div1">
</div>
<input type = "text" id = "txt1">
</input>
</body>

css:

#div1{
width:200px;
height:200px;
position:absolute;
top:200px;
left:0px;
background-color:yellow;
opacity:0.3;
filter:alpha(opacity:30);

}

js:

首先,我们先写页面加载函数,因为我不是把函数直接绑定到元素上面的方式

//编写加载函数

window.onload = function(){

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

//对标签进行鼠标上移事件绑定

oDiv.onmouseover = function(){

startMove(this , 'opacity',100);

};

//对标签进行鼠标离开事件绑定

oDiv.onmouseout = function(){

startMove(this, 'opacity',30);

};

};

//编写得到样式函数,因为我们需要对元素的css进行动画

function getStyle(obj,attr){

if(obj.currentStyle){

return obj.currentStyle[attr];

}

else{

return getComputedStyle(obj, false)[attr];

};

};

//编写对标签元素进行控制的运动框架

function startMove(obj,attr,iTarget){

//上来先清除定时器,为什么自己可以试试看

clearInterval(obj.timer);

obj.timer = setInterval(function(){

//先定义一个获取当前值的容器

var cur = 0;
     //兼容透明度动画
     if(attr == 'opacity'){

cur = Math.round(parseFloat(getStyle(obj,attr))*100);

}

else{

cur = parseInt(getStyle(obj,attr));

}

//设置动画的步长
   //让动画具有缓冲效果

var speed = (ITarget-cur)/6;

speed = speed>0?Math.ceil(apeed):Math.floor(speed);

//当动画需要的步长设置好,之后我们需要进一步判断我们的目标值,来进一步确认动画的开始和结束

if(cur == iTarget){

//如果到达了目标值,那么我们就清除动画,释放这个定时器,解放内存

clearInterval(obj.timer);

}
    else{

//如果没有达到我们的目标值,那么我们需要这个动画一直持续下去,在这个动画的变化中,需要对透明度单独判断

if(attr == 'opacity'){

obj.style.opacity = (cur+speed)/100;

ob.style.filter = 'alpha(opacity:'+(cur+speed)+')';

document.getElementById('txt1').value = obj.style.opacity;

}

else{

obj.style[attr] = cur+speed+'px';

document.getElementById('txt1').value = obj.style.opacity;

}

}

},30);

}

使用js编写一个简单的运动框架的更多相关文章

  1. Python学习 - 编写一个简单的web框架(二)

    在上一篇日志中已经讨论和实现了根据url执行相应应用,在我阅读了bottle.py官方文档后,按照bottle的设计重写一遍,主要借鉴大牛们的设计思想. 一个bottle.py的简单实例 来看看bot ...

  2. Python学习 - 编写一个简单的web框架(一)

    自己动手写一个web框架,因为我是菜鸟,对于python的一些内建函数不是清楚,所以在写这篇文章之前需要一些python和WSGI的预备知识,这是一系列文章.这一篇只实现了如何处理url. 参考这篇文 ...

  3. 利用js编写一个简单的html表单验证,验证通过时提交数据(附源码)

    <!DOCTYPE html> <html lang="en"> <head>     <meta charset="UTF-8 ...

  4. koa2源码解读及实现一个简单的koa2框架

    阅读目录 一:封装node http server. 创建koa类构造函数. 二:构造request.response.及 context 对象. 三:中间件机制的实现. 四:错误捕获和错误处理. k ...

  5. 使用Java编写一个简单的Web的监控系统cpu利用率,cpu温度,总内存大小

    原文:http://www.jb51.net/article/75002.htm 这篇文章主要介绍了使用Java编写一个简单的Web的监控系统的例子,并且将重要信息转为XML通过网页前端显示,非常之实 ...

  6. javascript编写一个简单的编译器(理解抽象语法树AST)

    javascript编写一个简单的编译器(理解抽象语法树AST) 编译器 是一种接收一段代码,然后把它转成一些其他一种机制.我们现在来做一个在一张纸上画出一条线,那么我们画出一条线需要定义的条件如下: ...

  7. 用Python编写一个简单的Http Server

    用Python编写一个简单的Http Server Python内置了支持HTTP协议的模块,我们可以用来开发单机版功能较少的Web服务器.Python支持该功能的实现模块是BaseFTTPServe ...

  8. 如何实现一个简单的MVVM框架

    接触过web开发的同学想必都接触过MVVM,业界著名的MVVM框架就有AngelaJS.今天闲来无事,决定自己实现一个简单的MVVM框架玩一玩.所谓简单,就是仅仅实现一个骨架,仅表其意,不摹其形. 分 ...

  9. 如何编写一个简单的Linux驱动(二)——设备操作集file_operations

    前期知识 如何编写一个简单的Linux驱动(一)--驱动的基本框架 前言 在上一篇文章中,我们学习了驱动的基本框架.这一章,我们会在上一章代码的基础上,继续对驱动的框架进行完善.要下载上一篇文章的全部 ...

随机推荐

  1. Java 编程思想 Chapter_14 类型信息

    本章内容绕不开一个名词:RTTI(Run-time Type Identification) 运行时期的类型识别 知乎上有人推断作者是从C++中引入这个概念的,反正也无所谓,理解并能串联本章知识才是最 ...

  2. 深入理解String的关键点和方法

    String是Java开发中最最常见的,本篇博客针对String的原理和常用的方法,以及String的在开发中常见问题做一个整体性的概括整理.因为之前对String的特性做过一些分析,所以不在详细描述 ...

  3. Paint the Grid Again ZOJ - 3780 拓扑

    Paint the Grid Again Time Limit: 2000MS   Memory Limit: 65536KB   64bit IO Format: %lld & %llu [ ...

  4. python邮件SMTP的GUI编程

    写的是python中smtp的gui编程,用的163邮箱给qq邮箱发送邮件做测试,如果你发现你的发送失败,试着用以下方法解决: 1.网页登陆你的邮箱,设置中查看smtp是否开启,比如163邮箱的smt ...

  5. Codeforces Round #420 (Div. 2)

    /*************************************************************************************************** ...

  6. 屏蔽掉Google Chrome 浏览器 textarea 单词拼写检测

    可以使用html5的spellcheck属性来关闭对元素内容进行拼写检查. <!-以下两种书写方法正确--> <textarea spellcheck="true" ...

  7. LCT学习笔记

    最近自学了一下LCT(Link-Cut-Tree),参考了Saramanda及Yang_Zhe等众多大神的论文博客,对LCT有了一个初步的认识,LCT是一种动态树,可以处理动态问题的算法.对于树分治中 ...

  8. Ubuntu 14.04 安装 Sublime Text 3

    1. 实验环境 Ubuntu 14.04 + Sublime text 3 2. sublime text介绍 ublime Text 是一款流行的文本编辑器软件,有点类似于TextMate,跨平台, ...

  9. es6零基础学习之构建脚本(二)

    编译器打开你的es6项目 首先:创建我们的第一个脚本,tasks/util/args.js      在文件里面要先引入一个包,处理命令行参数 import yargs from 'yargs'; / ...

  10. 51nod 1595 回文度 | 马拉车Manacher DP

    51nod 1595 回文度 题目描述 如果长度为n的字符串是一个回文串,同时它的长度为floor(n/2)的前缀和后缀是K-1度回文串,则这个字符串被称为K度回文串.根据定义,任何字符串(即使是空字 ...