[英]How to use this jQuery to effect css opacity
我得到了一块jQuery,用于查找用户鼠标的位置,并且鼠标越靠近中心,它对页面上元素的不透明度的影响就越大。 理想的效果是,随着鼠标靠近中心,淡入淡出,全屏徽标逐渐变为不透明:0,背景从黑色变为白色,并且显示白色文本。 这是我得到的代码:
$('body').on('mousemove', function(e) {
var x_val = 2 *(e.pageX - $(window).scrollLeft()) / $(window).width() - 1,
y_val = 2 * (e.pageY - $(window).scrollTop()) / $(window).height() - 1,
opacity = (1 - Math.abs(x_val)) * (1 - Math.abs(y_val));
console.log(opacity)
});
现在,我是jQuery的新手,您可以就如何以所需的方式使此CSS效果影响我的CSS的任何建议,深表感谢!
圣诞节快乐!
首先,您将需要添加要更改其不透明度的元素。
$('#body').on('mousemove', function(e) { var x_val = 2 * (e.pageX - $(window).scrollLeft()) / $(window).width() - 1, y_val = 2 * (e.pageY - $(window).scrollTop()) / $(window).height() - 1, opacity = (1 - Math.abs(x_val)) * (1 - Math.abs(y_val)); $(".MyDiv,.something").css("opacity", opacity); });
.MyDiv { background-color: red; height: 100px; width: 100px; margin: 0 auto; display: block; margin-top: 150px } .something { text-align:center; vertical-align:middle; } #body { width: 400px; height: 400px; border: 1px solid #000; }
<head> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> </head> <div id="body"> <div class="MyDiv"></div> <h3 class="something">Something else</h3> </div>
如果可以看到给定的函数返回不透明度的值。 移动鼠标时会调用该函数。 e
表示鼠标悬停在上方的元素。 因此,请使用以下代码将该元素作为元素并设置不透明度。
$(e.target).css('opacity',opacity)
这会将悬停元素设置为计算值的不透明度。 现在会有另一个问题,当鼠标离开时,元素仍将包含之前给出的不透明度。
因此,您应该像这样将事件绑定到上述元素。
$(e.target).bind('mouseleave',function(){
$(this).css('opacity','100') ;
$(this).unbind('mouseleave'); //this will remove unwanted event binds after mouse has left.
})
以上所有代码都应包含在您的函数中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.