缓冲运动以及方法的封装

缓冲运动:速度由快到慢的一种运动形式,常见于轮播图;现封装一个小插件,方便实现不同元素,实现不同样式的缓冲变化:

 1 //获取非行间样式
 2 function getStyle(ele,attr){
 3     return ele.currentStyle ? ele.currentStyle[attr] : getComputedStyle(ele,null)[attr];
 4 }
 5
 6 function move(ele,json,fn){      //json的接收  {width:10900}
 7                                  //加入回调函数fn(结合开关门) 可以实现多个功能的有序实现
 8     //清除定时器
 9     clearInterval(ele.timer);
10     //开启定时器
11     ele.timer = setInterval(function(){
12         var mStop = true;
13         //遍历json
14         for(attr in json){
15             //获取变换的属性的值
16             var iCur = getStyle(ele,attr);
17             //判断是否为透明
18             if(attr == ‘opacity‘){
19                 iCur *= 100;
20             }else{
21                 iCur = parseInt(iCur);
22             }
23             //设置速度
24             var speed = (json[attr] - iCur) / 8;   //系数8可以更改为其他值,调整速度
25             //速度取整
26             speed = speed > 0 ? Math.ceil(speed) : Math.floor(speed);
27             //判断
28             if(iCur != json[attr]){
29                 mStop = false;
30             }
31             //运动的逻辑
32             if(attr == ‘opacity‘){
33                 ele.style.opacity = (iCur + speed) / 100;
34                 ele.style.filter = ‘alpha(opacity=‘+(iCur + speed)+‘)‘
35             }else{
36                 ele.style[attr] = iCur + speed + ‘px‘;
37             }
38         }
39
40         if(mStop){
41             clearInterval(ele.timer);
42             if(fn){
43                 fn();
44             }
45         }
46     },30)
47 }
48
49 //调用示例:
50 /*
51    move(div,{"width":"400","height":"400"},function(){
52        move(div,{"fontSize":"30"})
53    })
54 */

原文地址:https://www.cnblogs.com/XieYFwin/p/10853160.html

时间: 2024-11-03 01:55:06

缓冲运动以及方法的封装的相关文章

js缓冲运动代码实例

js缓冲运动代码实例:元素的缓冲运动效果要比匀速运动更为美观一些,因为显得更为有张力和弹性,当然对于浏览者来说可能会有更好的效果,那么留住用户的可能性也就更大,下面就通过代码实例简单介绍一下如何实现此效果.代码实例如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www

js之运动框架缓冲运动

由于JS里对于数值小数点会自动去除,所以对于运动位置,需要使用Math.ceil()向上取整或者 Math.floor()向下取整进行解决 以下是我的缓冲运动练习简单代码 <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

关于javascript缓冲运动的笔记

Js里面有关运动的框架比较多,先从基本开始,我感觉缓冲运动是比教基础而且比较重要的,先提供一个小例子. <script type="text/javascript">        window.onload = function()        {            var oBtn = document.getElementById("btn1");            var oDiv = document.getElementById(&

关于多物体缓冲运动

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>多物体缓冲运动</title></head><style>*{margin:0px;padding:0px;}#move li{width:200px;height:100px;display:block;margin-bottom:20

【类库】私房干货.Net数据层方法的封装

[类库]私房干货.Net数据层方法的封装 作者:白宁超 时间:2016年3月5日22:51:47 摘要:继上篇<Oracle手边常用70则脚本知识汇总>文章的发表,引起很多朋友关注.便促使笔者收集整理此文.本文主要针是对微软技术对数据库(下文案例采用的)操作时,调用执行方法的封装,这也是数年逐渐学习.吸收.实践.完成的一个类库.其中不免有不合理之处,亦或是不符合个别读者的使用习惯.在此,共享此文,权当互相学习.(本文原创,转载注明出处:私房干货.Net数据层方法的封装) 1 概述 本文分以下几

使用泛型对读写配置文件的方法进行封装

一般一个站点会有多个配置文件,如果要针对每个配置文件进行读写,这是要疯的节奏 之前学泛型,一直没用到过,在这里练习一下,体会泛型实际对我们减少冗余代码的作用 /// <summary> /// 站点配置文件的路径 /// </summary> public class ConfigPath { /// <summary> /// 数据库配置文件 /// </summary> public static readonly string DB = "/

缓冲运动之框架開始一级简单框架实例

***********************缓冲运动[框架開始]-1.html********************************************* <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> <style type="text/css"

JS实现多物体width缓冲运动实例

多物体运动,运动参数不能公用. 这篇文章主要介绍了JS实现多物体缓冲运动实例代码,有需要的朋友可以参考一下 效果: 思路: 利用setInterval计时器进行运动,offsetWidth实现宽度的变动,在用onmouseover将终点和所选中的DIV放入参数再进行缓冲运动. 代码: 代码如下: <head runat="server"> <title></title> <style type="text/css">

js运动基础之缓冲运动

单属性缓冲运动 1 /** 2 * 单属性缓冲运动 3 */ 4 function fnSingleBufferMove(oDom, sAttr, iTarget, fn){ 5 var iSpeed, iCur; 6 clearInterval(oDom.timer); 7 oDom.timer = setInterval(function(){ 8 // 计算当前值 9 if(sAttr == 'opacity'){ 10 iCur = Math.round(fnGetStyle(oDom,