鼠标悬停时 Javascript 淡入文本

标签 javascript html css

有人已经发布了我的问题的解决方案,如下所示。我想要相同的效果,但只针对页面的某些部分而不是所有内容。我基本上只希望页面的某些部分在鼠标移动时淡入。

// 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 );
};

最佳答案

代替 fadeIn(this, 1000);

  • 为要淡入淡出的元素分配一个类 fade

  • 将样式属性 style="opacity: 0;" 添加到这些元素而不是 body 元素。

  • 获取想要淡出的元素

    var elements = document.getElementsByClassName('fade');
    
  • 遍历每一个淡出的元素

    for (var i = 0; i < elements.length(); i++) {
        fadeIn(elements[i], 1000);
    }
    

这是修改后的 jsbin .

关于鼠标悬停时 Javascript 淡入文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3217626/

相关文章:

javascript - 如果文件或文件位置都不包含,则设置文件名和格式

html - 悬停列表项空间(宽度和高度)而不是文本空间

jquery - 响应式网页上的下拉菜单不起作用

javascript - 如何在输入末尾添加文本以及如何删除输入类型数字的默认向上和向下?

java - 我可以使用 ScriptableObject 在 Java 中构建 Rhino JavaAdapter 吗?

JavaScript 连续变量

javascript - 我们如何将文本从任意开始位置 trim 到任意结束位置?

javascript - 更改 javascript 函数,以便 php 页面将作为弹出窗口出现

jquery - ionic 范围和徽章重叠

javascript - 数组不能在数据表中使用