如果你去google.com,你会发现当鼠标悬停在页面上时,顶部的菜单会慢慢显示。我想知道谷歌用什么来控制褪色效果?
[编辑]因为我不使用jQuery,我不想仅仅为了使用这个功能而包含它
答案 0 :(得分:7)
有两种方式。
适用于大多数浏览器。
使用Javascript逐渐更改元素的CSS opacity属性。这对于像jQuery这样的好框架来说是最简单的,但是你自己很容易做到。
function fadeIn() {
var element = document.getElementById("someID");
var newOpacity = element.style.opacity + 0.05;
element.style.opacity = newOpacity;
if (newOpacity < 1) {
window.setTimeout(fadeIn, 50);
}
}
目前仅支持Webkit。
#someID {
opacity:0;
-webkit-transition: opacity 1s linear;
}
#someID:hover {
opacity:1;
}
有关示例,请查看Surfin' Safari blog。
答案 1 :(得分:3)
您可以使用jQuery并在标记上添加onmousemove回调,该标记将ID为“mymenu”的隐藏div删除,例如:
$("html").one("mousemove", function() {
$("#mymenu").fadeIn("slow")
});
警告:这是在这里输入的,所以我不知道它是否编译了ootb。
答案 2 :(得分:1)
我从来没有看过它,但假设有一个计时器在页面的加载时启动,并调整指定元素的alpha或覆盖它的另一个元素的不透明度,这是合乎逻辑的。 ,在该元素的CSS中。每个计时器滴答,数字上下调整一点,文字变得更加清晰。达到完全可见度时,计时器将关闭。
JQuery是一个完整的,可以在跨平台兼容包中实现的。你只需添加它,搅拌它就完成了。
如果您选择不接受其他答案的建议,您必须自己研究并实施我的顶级段落中的策略。祝你好运!
答案 3 :(得分:0)
我认为他们将搜索框以外的元素的初始不透明度设置为零。触发mouseover事件时,元素的不透明度逐渐增加到1。
编辑:在代码中它看起来像这样:
var hiddenStuff = document.getElementByClassName("hiddenStuff");
var interval=document.setInterval(function() {
for (var i=0; i<hiddenStuff.length;i++){
hiddenStuff[i].style.opacity+=0.1
}
if (hiddenStuff[1].style.opacity===1){
window.clearInterval(interval);
}
}, 100);
您可能需要调整参数以获得平滑的动画。
答案 4 :(得分:0)
由于跨浏览器的不同,这实际上是一件相当复杂的事情。基础知识如下:
setInterval
触发一个函数,该函数会根据您的速率增加不透明度:setInterval(function(){myElement.style.opacity = parseFloat(myElement.style.opacity)+0.01;}, 1);
在某处,您需要检查是否已到达动画的终点并关闭间隔。< / LI>
醇>
答案 5 :(得分:0)
@ Georg,该示例也适用于Firefox 3.5。 : - )
答案 6 :(得分:0)
演示:PURE CSS http://jsfiddle.net/6QS2a/1/
</div>
的CSS:
.item {
height:150px;
width:150px;
border-radius:100%;
background:skyblue;
-webkit-transition: opacity 1s ease-in-out;
-moz-transition: opacity 1s ease-in-out;
-ms-transition: opacity 1s ease-in-out;
-o-transition: opacity 1s ease-in-out;
transition: opacity 1s ease-in-out;
opacity:0.2;
}
.item:hover {
opacity: 1;
}