渐入渐出效果,纯JS,函数调用,速度值可随意更改。函数:
// 获取速度值
function getSpeed(s){
//速度值,可随意更改。
switch(s){
case "fast": return 200;
case "normal": return 500;
case "slow": return 1000;
default: return s;
}
}
// 设置透明度
function opacity(node, opc){
if(node.style.opacity != null) { node.style.opacity = opc; }
else { //for IE
opc *= 100;
var alpha = node.style.filter.match(RegExp("alpha\\(opacity=\\S+\\);"));
node.style.filter = node.style.filter.replace(alpha, "");
node.style.filter += "alpha(opacity="+opc+");";
}
}
// 渐显
function fadeIn(node, speed){
if(speed==null) { speed = "normal"; }
speed = getSpeed(speed);
var delay = speed / 100;
var opc = 0;
opacity(node, opc);
node.style.display = "";
window.setTimeout(function(){fadeInStep(node,opc,delay);},0);
}
// 渐显过程
function fadeInStep(node,opc,delay){
opc+=0.01;
opacity(node, opc);
if(opc>=1){
return true;
}
window.setTimeout(function(){fadeInStep(node,opc,delay);},delay);
}
// 渐隐
function fadeOut(node, speed){
if(speed==null) { speed = "normal"; }
speed = getSpeed(speed);
var delay = speed / 100;
var opc = 1;
opacity(node, opc);
node.style.display = "";
window.setTimeout(function(){fadeOutStep(node,opc,delay);},0);
}
// 渐隐过程
function fadeOutStep(node,opc,delay){
opc-=0.01;
opacity(node, opc);
if(opc<=0){
node.style.display = "none";
return true;
}
window.setTimeout(function(){fadeOutStep(node,opc,delay);},delay);
}使用:
<div id="d1">
</div>
<p>隐藏: <span onclick="hide_slow()">slow</span> <span onclick="hide_fast()">fast</span></p>
<p>显示: <span onclick="show_slow()">slow</span> <span onclick="show_fast()">fast</span></p>
<style>
#d1{
background-color: #EEE;
height: 200px;
width: 300px;
}
p span{
cursor: pointer;
}
</style>
<script>
function hide_slow(){
var d1 = document.getElementById("d1");
fadeOut(d1, "slow");
}
function hide_fast(){
var d1 = document.getElementById("d1");
fadeOut(d1, "fast");
}
function show_slow(){
var d1 = document.getElementById("d1");
fadeIn(d1, "slow");
}
function show_fast(){
var d1 = document.getElementById("d1");
fadeIn(d1, "fast");
}
</script>
// 获取速度值
function getSpeed(s){
//速度值,可随意更改。
switch(s){
case "fast": return 200;
case "normal": return 500;
case "slow": return 1000;
default: return s;
}
}
// 设置透明度
function opacity(node, opc){
if(node.style.opacity != null) { node.style.opacity = opc; }
else { //for IE
opc *= 100;
var alpha = node.style.filter.match(RegExp("alpha\\(opacity=\\S+\\);"));
node.style.filter = node.style.filter.replace(alpha, "");
node.style.filter += "alpha(opacity="+opc+");";
}
}
// 渐显
function fadeIn(node, speed){
if(speed==null) { speed = "normal"; }
speed = getSpeed(speed);
var delay = speed / 100;
var opc = 0;
opacity(node, opc);
node.style.display = "";
window.setTimeout(function(){fadeInStep(node,opc,delay);},0);
}
// 渐显过程
function fadeInStep(node,opc,delay){
opc+=0.01;
opacity(node, opc);
if(opc>=1){
return true;
}
window.setTimeout(function(){fadeInStep(node,opc,delay);},delay);
}
// 渐隐
function fadeOut(node, speed){
if(speed==null) { speed = "normal"; }
speed = getSpeed(speed);
var delay = speed / 100;
var opc = 1;
opacity(node, opc);
node.style.display = "";
window.setTimeout(function(){fadeOutStep(node,opc,delay);},0);
}
// 渐隐过程
function fadeOutStep(node,opc,delay){
opc-=0.01;
opacity(node, opc);
if(opc<=0){
node.style.display = "none";
return true;
}
window.setTimeout(function(){fadeOutStep(node,opc,delay);},delay);
}使用:
<div id="d1">
</div>
<p>隐藏: <span onclick="hide_slow()">slow</span> <span onclick="hide_fast()">fast</span></p>
<p>显示: <span onclick="show_slow()">slow</span> <span onclick="show_fast()">fast</span></p>
<style>
#d1{
background-color: #EEE;
height: 200px;
width: 300px;
}
p span{
cursor: pointer;
}
</style>
<script>
function hide_slow(){
var d1 = document.getElementById("d1");
fadeOut(d1, "slow");
}
function hide_fast(){
var d1 = document.getElementById("d1");
fadeOut(d1, "fast");
}
function show_slow(){
var d1 = document.getElementById("d1");
fadeIn(d1, "slow");
}
function show_fast(){
var d1 = document.getElementById("d1");
fadeIn(d1, "fast");
}
</script>
解决方案 »
- Jquery中引入某个JS
- Javascript中如何动态的加载文件,并将文件嵌入到当前页面的HTML中?
- extjs 怎样给原生window窗口绑定onresize事件。
- 怎么加参数,类似于这样window.opener.location.href=window.opener.location.href?id=...
- 动态删除标签的属性
- 为什么表单无论如何都提交了,跳到另一个页面了呢?
- 火狐下回车事件的获取
- 请教一个关于iframe的问题
- 用insertRow插入的表格的行,怎么给他加入事件?谢!
- 怎样用Javascript修改客户机注册表的资料!
- 在将Web富文本编辑器中的文本导出到Word时,怎么剔除一些HTML代码?
- 请教objxmlhttp
低级javascript代码,鉴定完毕