如何从鼠标指针创建“光环”效果?

时间:2011-05-05 18:08:31

标签: javascript jquery html5 css3 mouseover

如果您打开谷歌浏览器并打开多个标签页,则可以通过将鼠标悬停在背景标签上来查看效果。指针将具有“光环”效果,随之而来。

为了澄清,我不是问如何让整个标签发光变浅,我问的是如何在指定的半径范围内给出指针效果。

4 个答案:

答案 0 :(得分:21)

关键部分是获取鼠标坐标,然后放置带有这些坐标的径向渐变。

var originalBG = $(".nav a").css("background-color");

$('.nav li:not(".active") a')
.mousemove(function(e) {

    x  = e.pageX - this.offsetLeft;
    y  = e.pageY - this.offsetTop;
    xy = x + " " + y;

    bgWebKit = "-webkit-gradient(radial, " + xy + ", 0, " + xy + ", 100, from(rgba(255,255,255,0.8)), to(rgba(255,255,255,0.0))), " + originalBG;
    bgMoz    = "-moz-radial-gradient(" + x + "px " + y + "px 45deg, circle, " + lightColor + " 0%, " + originalBG + " " + gradientSize + "px)";

    $(this)
      .css({ background: bgWebKit })
      .css({ background: bgMoz });

}).mouseleave(function() {
        $(this).css({ background: originalBG });
});

这样的事情可以胜任。

从赫赫有名的Chris Coyier那里查看这个演示:http://css-tricks.com/examples/MovingHighlight/

答案 1 :(得分:0)

一些想法 -

  1. 使用javascript在光标位置
  2. 下放置一个绝对定位的半透明png
  3. 使用您自己的光标创建一个.cur文件,并在其下创建一些半透明的光晕,并希望浏览器可以呈现它
  4. 用javascript替换整个光标

答案 2 :(得分:0)

为什么没有人想过提及CSS3过渡?使用CSS3,您可以使用纯CSS创建此效果,无需flash或javascript。

以下是ya的简单示例:D

#auraThingy{
  height:50px;
  width:200px;
  background:blue;
  transistion:background 3s;
  -webkit-transition:background 3s; /*safari/chrome*/
  -moz-transition:background 3s;  /*firefox*/
  -o-transition:background 3s;  /*opera*/
}
#auraThingy:hover{
  background:lightblue;
}

我在http://www.w3schools.com/css3/css3_transitions.asp

找到了一个很好的信息链接

编辑[刚才意识到我应该在回答之前阅读你的整个帖子,我的不好^ - ^ 您可能仍然可以使用渐变图像进行过渡,并在悬停时使用鼠标位置更新背景图像坐标:/

答案 3 :(得分:-9)

$('some_element').hover(function(){
    $(this).css('opacity','.5');
},function(){
    $(this).css('opacity','.2');
});

类似的东西。

小提琴:http://jsfiddle.net/maniator/Sf92n/