鼠标悬停时Javascript淡入文本
已经有人发布了我的问题的解决方案,如下所示。我想要相同的效果,但只对页面的某些部分,而不是所有的内容。我基本上只希望当鼠标移动时页面的某些部分淡入鼠标悬停时Javascript淡入文本,javascript,html,css,Javascript,Html,Css,已经有人发布了我的问题的解决方案,如下所示。我想要相同的效果,但只对页面的某些部分,而不是所有的内容。我基本上只希望当鼠标移动时页面的某些部分淡入 // attach event handler document.body.onmousemove = function(){ fadeIn( this, 1000 ); // 1000ms -> 1s this.onmousemove = null; // remove to only fade in once! }; /
// attach event handler
document.body.onmousemove = function(){
fadeIn( this, 1000 ); // 1000ms -> 1s
this.onmousemove = null; // remove to only fade in once!
};
// sets the opacity of an element (x-browser)
function setOpacity( obj, value ) {
if ( obj ) {
obj.style.opacity = value / 100;
obj.style.filter = 'alpha(opacity=' + value + ')';
obj.style.zoom = 1;
}
}
// makes an element to fade in
function fadeIn( dom, interval, delay ) {
interval = interval || 1000;
delay = delay || 10;
var opacity = 0,
start = Number(new Date()),
op_per_ms = 100 / interval;
if ( typeof dom === "string" ) {
dom = document.getElementById( dom );
}
function step() {
var now = Number(new Date()),
elapsed = now - start;
opacity = elapsed * op_per_ms;
setOpacity( dom, opacity );
if ( elapsed < interval )
setTimeout( step, delay );
else
setOpacity( dom, 100 );
}
setTimeout( step, delay );
};
//附加事件处理程序
document.body.onmousemove=函数(){
fadeIn(这个,1000);//1000ms->1s
this.onmousemove=null;//删除以仅淡入一次!
};
//设置元素的不透明度(x浏览器)
函数setOpacity(对象,值){
如果(obj){
obj.style.opacity=值/100;
obj.style.filter='alpha(不透明度='+值+')';
obj.style.zoom=1;
}
}
//使元素淡入
函数fadeIn(dom、间隔、延迟){
间隔=间隔| | 1000;
延迟=延迟| | 10;
var不透明度=0,
开始=编号(新日期()),
op_per_ms=100/间隔;
如果(dom的类型==“字符串”){
dom=document.getElementById(dom);
}
函数步骤(){
var now=编号(新日期()),
已用=现在-开始;
不透明度=经过时间*每毫秒运算次数;
setOpacity(dom,opacity);
如果(经过<间隔)
设置超时(步进,延迟);
其他的
setOpacity(dom,100);
}
设置超时(步进,延迟);
};
使用您已有的注释良好的代码并不十分困难。您只需将fadeIn()
调用替换为更合适的调用。将要淡入的元素的ID或元素本身传入第一个参数。只需多次调用fadeIn()
就可以对许多元素执行此操作。动画应该同时发生
更新:在OP的情况下,他或她需要删除body标签上的0不透明样式,以使这些更改生效。而不是fadeIn(这是1000)代码>
- 为要淡入淡出的元素指定一个类
fade
- 将样式属性
style=“opacity:0;”“
添加到这些元素中,而不是添加到body
元素中
- 获取想要淡出的元素
var elements = document.getElementsByClassName('fade');
- 遍历每个元素
for (var i = 0; i < elements.length(); i++) {
fadeIn(elements[i], 1000);
}
for(var i=0;i
这是一个经过修改的问题。这很像是一个“给codez plz”的问题。至少,请使用格式化功能使代码可读。我不是在寻找代码。。。代码已经存在。如果至少我可以对我从中得到的问题发表评论,我就不需要发布一个全新的问题。我确实使用了格式化功能,但不管出于什么原因,它们都不起作用。所以,如果你有代码,问题是什么?我将代码嵌入了我的一个页面中,但它会在所有div和文本中消失。我只希望页面的某些部分褪色。下面是正在运行的代码:。只要把我放在正确的道路上就会有很大的帮助。“有人已经发布了解决方案。”。。是我的孩子……:)它应该是document.getElementsByClassName()
,但是我会犹豫使用它,因为只有最新的浏览器支持它。我也不确定OP是否会将所有这些元素的onmousemove设置为空。这个方法有很多跨浏览器的实现,一个是。@melhosseiny:完全正确。我应该把我的评论说得更清楚。这是为了提醒OP,如果他或她使用这种方法,就要使用这些跨浏览器实现。谢谢TNi和melhosseiny@Mellowwellow使用此功能跨浏览器工作:基本上就是这样。但是,它在jsbin上不起作用=/OP还需要删除主体上的0不透明度样式。更新的答案反映了这一点。编辑:另外,最初淡出的元素应该添加了不透明度0。我应该已经注意到了/总台