本文介绍如何利用JavaScript与CSS结合,实现鼠标悬停在特定区域时,DIV层以渐变方式显示或隐藏的效果。通过操作DOM元素的opacity和filter属性,配合setInterval定时器,控制透明度变化,实现平滑的视觉过渡。
JS与CSS实现鼠标悬停渐变显示DIV层
本文介绍一种结合JavaScript与CSS的技术方案,用于实现当鼠标经过特定区域时,对应的DIV层以渐变方式显示或隐藏的效果。该方法通过控制元素透明度变化,提供平滑的视觉交互体验,供开发者参考应用。
具体实现代码示例如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>JS+CSS实现的感应鼠标渐变显示的DIV层</title>
<style>
#tip{
position:absolute;
left:90px;
width:0px;
height:0px;
color:#FFF;
font-size:12px;
background-color:#000;
border:1px solid #DEF;
filter:Alpha(Opacity=0);
opacity:0;
z-index:999;
}
</style>
<script type="text/javascript">
<!--
//定义“获得指定dom节点”的函数,因为其重用率高
function $(d){return document.getElementById(d);}
//控制div逐渐显示
var i = 0;
function change_show(){
var obj = $("tip");
i=i+5; //逐渐显示速度
obj.style.filter = "Alpha(Opacity=" + i + ")"; //透明度逐渐变小
obj.style.opacity = i/100; //兼容FireFox
if(i>=100){
clearInterval(s);
i=0;
}
}
//控制div逐渐消失
var j = 100;
function change_hidden(){
var obj = $("tip");
j=j-5; //逐渐消失速度
obj.style.filter = "Alpha(Opacity=" + j + ")"; //透明度逐渐变大
obj.style.opacity = j/100; //兼容FireFox
if(j<=0){
clearInterval(h);
//obj.style.display="none";
j=100;
}
}
//控制change_show()行为
var s;
function show(x){
if(s){clearInterval(s);}
$("tip").style.display="block";
s = setInterval(change_show,1);
}
//控制change_hidden()行为
function hidden(x){
$("tip").innerHTML="";
h = setInterval(change_hidden,1);
}
//-->
</script>
</head>
<body>
<div id="tip" style="background-color:blue;width:48%;height:48%;" onmouseover="show(this);" onmouseout="hidden(this);">
</div>
<br />
<br>鼠标滑过这里,div层渐变显示<br><hr> 收集于互联网,只为兴趣与学习交流,不作商业用途。</font></p>
</body>
</html>
希望本文所述对大家的javascript程序设计有所帮助。