JavaScript实现淡入淡出
<!DOCTYPE html>
<html>
<head>
<title>css动画</title>
</head>
<body>
<script type="text/javascript">
/**
* 将e转化为相对定位的元素,使之左右“震动”
* 第一个参数可以是元素对象或者元素的id
* 如果第二个参数是函数,以e为参数,他将在动画结束时调用
* 第三个参数指定e震动的距离,默认是5像素
* 第四个参数指定震动多久,默认是500毫秒
*/
function shake( e , oncomplete , distance , time ){
//句柄参数
if(typeof e === "string")
e = document.getElementById(e);
if(!time)
time=500;
if(!distance)
distance = 5;
var orginalStyle = e.style.cssText; //保存e的原始style
e.style.position ="relative"; //使e相对定位
var start = (new Date()).getTime(); //注意:动画的开始时间
animate(); //动画开始 //函数检查消耗的时间,并更新e的位置
//如果动画完成,他将e还原为原始状态
//否则,它更新e的位置,安排他自身重新运行
function animate(){
var now = (new Date()).getTime(); //得到当前时间
var elapsed = now-start; //从开始依赖消耗了多长时间
var fraction = elapsed/time; //是总时间的几分之几 if(fraction < 1 ){ //如果话未完成
//作为动画完成比例的函数,计算e的x位置
//使用正弦函数将完成比例乘以4pi
//所以,他来回往复两次
var x = distance*Math.sin(fraction*4*Math.PI);
e.style.left = x+"px"; //在25毫秒后或在总时间的最后尝试再次运行函数
//目的是为了产生每秒40帧的动画
setTimeout(animate,Math.min(25,time-elapsed));
}
else{ //否则动画完成
e.style.cssText = orginalStyle; //恢复原有样式
if(oncomplete)
oncomplete(e);
}
}
} /**
* 以毫秒级的时间将e从完全不透明淡出到完全透明
* 在调用函数时,假设e是完全不透明的
* oncomplete是一个可选的函数,以e为参数,它将在动画结束时调用
* 如果不指定time,默认是500毫秒
* 该函数在IE中不能正常工作,但也可以修改的能工作
* 除了opacity,IE使用非标准的filter属性
*/
function fadeOut( e , oncomplete , time ){
if( typeof e ==="string")
e = document.getElementById(e);
if(!time)
time = 500; //使用Math.sqrt作为一个简单的“缓存函数”来创建动画
//精巧的非线性,一开始淡出的比较快,然后缓慢了一些
var ease = Math.sqrt; var start = (new Date()).getTime(); //注意;动画开始的时间
animate(); //动画开始 function animate(){
var elapsed = (new Date()).getTime()-start; //消耗的时间
var fraction = elapsed/time; //总时间的几分之几
if(fraction < 1) { //如果动画未完成
var opacity = 1 - ease(fraction); // 计算元素的不透明度
e.style.opacity = String(opacity); //设置在e上
setTimeout(animate,Math.min(25,time-elapsed));
}else{
e.style.opacity = "0";
if(oncomplete) oncomplete(e);
}
}
}
</script>
<button onclick="shake(this,fadeOut)">淡入淡出</button>
</body>
</html>
JavaScript实现淡入淡出的更多相关文章
- javascript 图片淡入淡出效果 实例源代码
代码说明:把代码粘贴好之后,需要更改html代码中的图片路径,即可执行成功.后面还有对js代码的详细说明,希望大家好好消化,好好理解. html源代码: <head> <title& ...
- javascript背景淡入淡出
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...
- javascript写淡入淡出效果的轮播图
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- JQ淡入淡出效果
<script type="text/javascript"> //页面淡入淡出 $(document).ready(function() { $('body').hi ...
- javascript 单个图片的淡入淡出效果和多张图片的淡入淡出效果
最近刚好在看之前妙趣网站的javascript 初级运动教程,教程里说设置图片的透明度使用了一个变量.这种方法确实不错,但是燕姐喜欢麻烦.就用自己的理解方法写了一遍.其中也是各种坑.现在先把一个图片的 ...
- javascript淡入淡出效果的实现思路
这个思路是最近写XScroll.js类的时候想明白的.平常我们说的淡入淡出效果,一般分成两部分,一半是淡入,另一半就是淡出了.不过经过分析,我觉得其实只需要一半就行了如题,只有思路,没有代码. 这个思 ...
- javascript多物体运动案例:多物体淡入淡出
javascript多物体运动案例:多物体淡入淡出 任务描述: 补充代码,当鼠标移入红色区域时,该区域透明度逐渐增加至不透明;当鼠标移出该红色区域时,该区域透明度逐渐恢复至初始程度. 效果图: < ...
- 练习:javascript淡入淡出半透明效果
划过无透明 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...
- 图片轮播(淡入淡出)--JS原生和jQuery实现
图片轮播(淡入淡出)--js原生和jquery实现 图片轮播有很多种方式,这里采用其中的 淡入淡出形式 js原生和jQuery都可以实现,jquery因为封装了很多用法,所以用起来就简单许多,转换成j ...
随机推荐
- Java经典编程题50道之一
有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? public class Example01 { publi ...
- 由Find All References引发的思考。,
今天在研究C#代码问题的时候遇到了一个Visual Studio的小问题.在Visual Studio 2013中,使用Find All References功能不能找到同一类型不同版本的所有引用,具 ...
- 冒泡排序的python代码实现
li = [33, 2, 10, 1,564,880,8,99,51,3]# for i in range(len(li) - 1):# current = li[i]# next_v ...
- PHP基础入门(二)---入门必备哦!
前言 在上一章中,我们初步了解了PHP的网页基础和PHP的入门基础,今天继续给大家分享更多有关PHP的知识. 理论知识看起来可能比较枯燥一些,但是我们的实践(敲代码)毕竟离不开它. 只有理论与实践相结 ...
- Java之【线程通信】--标志位练习2
定义一个线程A,输出1 - 10之间的整数,定义一个线程B,逆序输出1 - 10之间的整数,要求线程A和线程B交替输出 方法一:非标志位方法 package Homework; //1 定义一个线程A ...
- Eclipse用法:自动生成get和set方法
方法一 Java的类中,除了常量声明为静态且公有的,一般的对象数据作用域,都是声明为私有的.这样做能保护对象的属性不会被随意改变,调试的时候也会方便很多:在类的公有方法中大一个调用栈就能看到哪里改 ...
- 是时候开始用C#快速开发移动应用了
从2015年接触Xamarin到至今已经2个年头,我对Xamarin的技能没有长进多少,但它却已经足够成熟到在跨平台移动开发工具中占有一席之地.在扫了一些资料之后,突然发现国外有很多移动端的应用已经是 ...
- 使用React改版网站后的一些感想
文章转载:http://www.jianshu.com/p/8f74cfb146f7 网站是毕业设计的作品,开发这个网站的目的主要用于记录一些笔记,以及聚合一些资讯信息,也算自己在网络世界中的一块静地 ...
- 关于HBuilder的一些使用技巧。
在HBuilder中一个名为扩展代码块的功能. 扩展代码块 看,它就在上方工具栏的工具选项中,分为自定义html代码块, 自定义js代码块, 自定义css代码块, 自定义jquery代码块. 以下便是 ...
- Java基础——多态
多态性是指允许不同类型的对象对同一消息做出相应.具有灵活性.抽象.行为共享.代码共享的优势,共享就意味着最大化利用和简洁,还有就是加载速度. 一.多态的作用 消除类型之间的耦合关系.即同一事件发生在不 ...