原生js实现fadein 和 fadeout淡入淡出效果_Javascript教程-查字典教程网
原生js实现fadein 和 fadeout淡入淡出效果
原生js实现fadein 和 fadeout淡入淡出效果
发布时间:2016-12-30 来源:查字典编辑
摘要: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>

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

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新Javascript教程学习
    热门Javascript教程学习
    编程开发子分类