手机
当前位置:查字典教程网 >编程开发 >Javascript教程 >原生js实现fadein 和 fadeout淡入淡出效果
原生js实现fadein 和 fadeout淡入淡出效果
摘要:js里面设置DOM节点透明度的函数属性:filter="alpha(opacity="+value+")"(兼容ie)和opacity=va...

js里面设置DOM节点透明度的函数属性:filter= "alpha(opacity=" + value+ ")"(兼容ie)和opacity=value/100(兼容FF和GG)。

先来看看设置透明度的兼容性代码:

复制代码 代码如下:

function setOpacity(ele, opacity) {

if (ele.style.opacity != undefined) {

///兼容FF和GG和新版本IE

ele.style.opacity = opacity / 100;

} else {

///兼容老版本ie

ele.style.filter = "alpha(opacity=" + opacity + ")";

}

}

关于有的小伙伴这样写:

复制代码 代码如下:

function setOpacity(ele, opacity) {

if (document.all) {

///兼容ie

ele.style.filter = "alpha(opacity=" + opacity + ")";

}

ele {

///兼容FF和GG

ele.style.opacity = opacity / 100;

}

}

我想说这样在IE10下运行有问题,点了之后没反应。因为IE10支持opacity属性不支持filter了,这个方法不可取。

fadein 函数代码:

复制代码 代码如下:

function fadein(ele, opacity, speed) {

if (ele) {

var v = ele.style.filter.replace("alpha(opacity=", "").replace(")", "") || ele.style.opacity;

v < 1 && (v = v * 100);

var count = speed / 1000;

var avg = count < 2 ? (opacity / count) : (opacity / count - 1);

var timer = null;

timer = setInterval(function() {

if (v < opacity) {

v += avg;

setOpacity(ele, v);

} else {

clearInterval(timer);

}

}, 500);

}

}

fadeout 函数代码:

复制代码 代码如下:

function fadeout(ele, opacity, speed) {

if (ele) {

var v = ele.style.filter.replace("alpha(opacity=", "").replace(")", "") || ele.style.opacity || 100;

v < 1 && (v = v * 100);

var count = speed / 1000;

var avg = (100 - opacity) / count;

var timer = null;

timer = setInterval(function() {

if (v - avg > opacity) {

v -= avg;

setOpacity(ele, v);

} else {

clearInterval(timer);

}

}, 500);

}

}

下面给一个demo示例:

复制代码 代码如下:

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title></title>

<script type="text/javascript" src="fade.js"></script>

<script type="text/javascript">

window.onload = function () {

document.getElementById('Button1').onclick = function () {

fadeout(document.getElementById('DV'), 0, 6000);

}

document.getElementById('Button2').onclick = function () {

fadein(document.getElementById('DV'), 80, 6000);

}

}

</script>

</head>

<body>

<div id="DV"></div>

<input id="Button1" type="button" value="button" />

<input id="Button2" type="button" value="button" />

</body>

</html>

有什么更好的实现方式可以留言。。。

【原生js实现fadein 和 fadeout淡入淡出效果】相关文章:

原生js实现的贪吃蛇网页版游戏完整实例

实现placeholder效果的方案汇总

nodejs实现获取某宝商品分类

javascript实现十秒钟后注册按钮可点击的方法

jQuery实现仿腾讯微博滑出效果报告每日天气的方法

JavaScript实现广告的关闭与显示效果实例

jquery实现弹出层效果实例

JS+CSS实现的拖动分页效果实例

js输入中文效果

js实现文本框选中的方法

精品推荐
分类导航