Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jquery悬停-在鼠标悬停时设置初始不透明度值_Jquery_Animation_Mouseevent_Opacity - Fatal编程技术网

jquery悬停-在鼠标悬停时设置初始不透明度值

jquery悬停-在鼠标悬停时设置初始不透明度值,jquery,animation,mouseevent,opacity,Jquery,Animation,Mouseevent,Opacity,我有一张画布,上面有一个给定的随机不透明度的圆圈。我希望有一个悬停函数来设置不透明度为0.5的动画,但是当用户将鼠标移开(mouseOut)时,我希望恢复到元素先前的不透明度。问题在于,使用当前函数时,所有项目都会恢复为一个单一的不透明度值,而不是以前的相应值 $( "circle" ).hover( function() { var initOpacity = $(this).attr('opacity'); $(this).animate({"opac

我有一张画布,上面有一个给定的随机不透明度的圆圈。我希望有一个悬停函数来设置不透明度为0.5的动画,但是当用户将鼠标移开(mouseOut)时,我希望恢复到元素先前的不透明度。问题在于,使用当前函数时,所有项目都会恢复为一个单一的不透明度值,而不是以前的相应值

$( "circle" ).hover(
    function() {
        var initOpacity = $(this).attr('opacity');
        $(this).animate({"opacity": '0.5'}, 200);
    }, function() {
        var initOpacity = $(this).attr('opacity');
        $(this).animate({"opacity": initOpacity}, 200);
    }
);

谢谢

如果您能够使用css3,那么您可以使用一个名为hover
p:hover
的属性,它将为您完成所有这些。您可以在css本身内设置不透明度

所以你会有这样的想法:

p{background-color: red; opacity: 100%; transition: opacity 1s; } 
p:hover{ opacity: 50%;}
不确定是否必须在后者中设置颜色,它可能继承自另一个


很抱歉,错过了转换部分。

如果您能够使用css3,您可以使用一个名为hover
p:hover
的属性,它将为您完成所有这些。您可以在css本身内设置不透明度

所以你会有这样的想法:

p{background-color: red; opacity: 100%; transition: opacity 1s; } 
p:hover{ opacity: 50%;}
不确定是否必须在后者中设置颜色,它可能继承自另一个


很抱歉,错过了转换部分。

您可以将值存储在每个元素的数据属性中,这样就无需为每个悬停创建大量额外的事件处理程序

$(“.circle”)。在({
鼠标指针:函数(){
//不透明度
var originalocapacity=$(this.css('opacity');
//存储值
$(此).data('originalocapacity',originalocapacity);
//淡出
动画({'opacity':'0.5'},200);
},
mouseleave:function(){
//不透明度
var targetCapacity=$(此).data('originalCapacity');
//淡入
$(this.animate({'opacity':targetOpacity},200);
}
});
.circle{
边界半径:100px;
}

您可以将值存储在每个元素的数据属性中,然后无需为每个悬停创建大量额外的事件处理程序

$(“.circle”)。在({
鼠标指针:函数(){
//不透明度
var originalocapacity=$(this.css('opacity');
//存储值
$(此).data('originalocapacity',originalocapacity);
//淡出
动画({'opacity':'0.5'},200);
},
mouseleave:function(){
//不透明度
var targetCapacity=$(此).data('originalCapacity');
//淡入
$(this.animate({'opacity':targetOpacity},200);
}
});
.circle{
边界半径:100px;
}


在第二个变量initOpacity=$(this.attr('opacity');,您可以调整当前的不透明度,因此只需将动画设置为相同的不透明度。因此,您应该在()之外设置初始不透明度。悬停并使用它。@bksi:有道理,但如何将当前的悬停圆圈作为目标?假设您的选择器在圆圈之前缺少一段时间,假设您的目标是那些div的
opacity
不是元素属性,则使用
css()
而不是
attr()
获取样式属性的CSS不透明度属性的示例:$(document).ready(function(){var initOpacity=…});然后根据需要使用initOpacity。在第二个变量initOpacity=$(this).attr('opacity');,您可以调整当前的不透明度,因此只需将动画设置为相同的不透明度。因此,您应该在()之外设置初始不透明度。悬停并使用它。@bksi:有道理,但如何将当前的悬停圆圈作为目标?假设您的选择器在圆圈之前缺少一段时间,假设您的目标是那些div的
opacity
不是元素属性,则使用
css()
而不是
attr()
获取样式属性的CSS不透明度属性的示例:$(document).ready(function(){var initOpacity=…});然后使用initOpacity,无论你想要什么。