渐隐渐显主要通过对元素的透明度操作进行。当然也可以使用纯 CSS 来进行设计。
下面是纯 js 技术:
<style>
.block {
width: 20px;
height: 20px;
position: absolute;
left: 20px;
top: 200xp;
background-color: #f00;
}
</style>
<div class="block" id="block"></div>
<script>
var temp = document.querySelector('div');
fade(temp, 100, true);
function fade(e, t, io) {
var t = t || 10;
if (io) {
var i = 0;
} else {
var i = 100;
}
var out = setInterval(function () {
setOpacity(e, i);
if (io) {
i++;
if (i >= 1) clearTimeout(out);
} else {
i--;
if (i <= 0) clearTimeout(out);
}
}, t);
}
function setOpacity(e, n) {
var n = parseFloat(n);
if ((n && n > 100) || !n) n = 100;
if (n && n < 0) n = 0;
if (e.filters) {
e.style.filters = 'alpha(opacity=' + n + ')';
} else {
e.style.opacity = n / 100;
}
}
</script>
下面是纯 CSS 设计显隐:
<style>
.block {
width: 20px;
height: 20px;
position: absolute;
left: 20px;
top: 200xp;
background-color: #f00;
animation: fide 2s ease-in-out 0.3s infinite alternate;
}
@keyframes fide {
from {
opacity: 1;
}
to {
opacity: 0;
}
}
</style>
<div class="block " id="block"></div>
由此可见, CSS 3 动画在代码数上更胜一筹,但个有利弊。最好的就是 CSS 与 JS 一起用。怎么方便怎么来。