如何通过jQuery仅在悬停一行(而不是悬停的行)时向每个表行添加属性
How to add attribute to every table row only when one is hovered (and not the hovered row) via jQuery?
添加属性的最佳方式是什么(比如-webkit filter:blur(2px);例如)仅当用户悬停在一行上而没有将其设置在被悬停的行上时才设置为每一行?因此,基本上,除了用户悬停的那一行之外,每一行都会被模糊,一旦用户的鼠标没有悬停在任何一行上,效果就会消失(所有行都会再次变得可读,没有任何效果)。
jsFiddle Demo
如果设置类名不相关(如#myTable tbody tr
),请根据选择在类名或规则上设置"全部模糊",悬停时移除类名。为了使表仅在聚焦时显示模糊,请在css定义中使用:hover
。
$(function(){
$("#myTable tr").addClass("unfocused");
$('.unfocused').hover(function(){
$(this).removeClass('unfocused');
},function(){
$(this).addClass('unfocused');
});
});
#myTable:hover .unfocused{
filter: blur(2px);
-webkit-filter: blur(2px);
-moz-filter: blur(2px);
-o-filter: blur(2px);
-ms-filter: blur(2px);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table id="myTable">
<tr>
<td>Hello</td><td>World</td>
</tr>
<tr>
<td>Hello</td><td>World</td>
</tr>
<tr>
<td>Hello</td><td>World</td>
</tr>
<tr>
<td>Hello</td><td>World</td>
</tr>
<tr>
<td>Hello</td><td>World</td>
</tr>
<tr>
<td>Hello</td><td>World</td>
</tr>
</table>
我能想到的最简单的方法是http://jsfiddle.net/n3a1d4z8/
$('.tg tr').hover( function(){
$('.tg tr').toggleClass('blur');
$(this).toggleClass('blur');
});
CSS过滤器属性仅适用于Chrome 31+、Safari 7+和Opera 18+。没有Firefox或Explorer。因此,在一个受支持的浏览器中查看示例以查看模糊效果:)
相关文章:
- 在样式表中声明元素后,删除该元素的悬停属性
- 鼠标悬停的属性数据是什么
- 使用CSS更改悬停时多个元素的属性
- Extjs 3.4 中属性网格行值的工具提示 /Qtip(鼠标悬停)
- 使用JQuery添加css属性悬停
- 当鼠标悬停在一行上时,哪个plot.ly json属性可以显示所有悬停数据
- Javascript模拟“悬停”触发CSS属性
- 地图框 Geojson 属性在悬停时不可用
- 悬停在地图上时如何显示实时属性
- 获取显示菜单的悬停元素的属性
- 在 C# 代码隐藏中添加鼠标悬停属性
- 将鼠标悬停在元素上会导致它进行动画处理,而只是更改其 CSS 属性
- D3.JS鼠标悬停时如何计算某个属性的圆圈数
- d3.js:鼠标悬停时的工具提示和属性更改
- 如何使悬停属性在单击/激活时保持不变
- 使用jQuery更改背景时,链接将丢失css背景颜色悬停属性
- 是否可以根据特定区域的宽度应用悬停属性
- 可以通过javascript设置鼠标悬停的html属性,但不能在Firefox中为鼠标悬停属性分配函数
- 当我将屏幕尺寸缩小到Bootstrap's中、小或超小,我的点击处理程序停止工作,css悬停属性也停止工作
- 如何从WinJS ListView中删除悬停属性