- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想这样做:
https://github.com/rails/rails/commit/f50aeda2f73b47c47664e3651c638ba624418b8b
看看,当您的鼠标光标移过源代码行时,表格左侧会出现一个图像/按钮吗?那个。
所以我有一个网格,RowDefinition 有 MouseEnter 和 MouseLeave 事件。事实证明这些事件是无用的并且永远不会触发(如果我在这里错了请纠正我),因为它们需要一个 Background 属性(即使它是透明的),而 RowDefinition 没有 Background 属性。
我不能只在每个单元格中的每个元素上 Hook MouseEnter,因为当我移动鼠标时,新显示的按钮已经消失了。
我怎样才能让它工作?
最佳答案
RowDefinitions
和 ColumnDefinitions
实际上不在可视化树中,因为它们是 FrameworkContentElements
(而不是 FrameworkElements
),这就是为什么它们不引发任何鼠标事件,它们不是 Visuals
。 Grid
仅使用它们来定位其子节点。
想到的一种方法是使用 Grid
上的附加事件 Mouse.MouseMove
和 Mouse.MouseLeave
来在以下时间收到通知这些事件是为 Grid
中的任何子项或 Grid
本身引发的。
<Grid Mouse.MouseMove="Grid_MouseMove"
Mouse.MouseLeave="Grid_MouseLeave"
Background="Transparent">
在 Mouse.MouseMove
事件处理程序中,我们可以获取鼠标相对于 Grid
的位置,并计算当前正在使用哪个 RowDefinition
鼠标并将其存储在附加属性中,例如 MouseOverRowDefinition
。
private void Grid_MouseMove(object sender, MouseEventArgs e)
{
Grid grid = sender as Grid;
Point mousePoint = e.GetPosition(grid);
double heightSum = grid.RowDefinitions[0].ActualHeight;
int activeRow = 0;
for (; heightSum < mousePoint.Y; activeRow++)
{
heightSum += grid.RowDefinitions[activeRow].ActualHeight;
}
GridExtensions.SetMouseOverRowDefinition(grid, activeRow);
}
// No RowDefinition is beeing hoovered, set MouseOverRowDefinition to -1
private void Grid_MouseLeave(object sender, MouseEventArgs e)
{
Grid grid = sender as Grid;
GridExtensions.SetMouseOverRowDefinition(grid, -1);
}
现在我们可以为 MouseOverRowDefinition
查询 Grid
所以剩下的只是比较 Grid.Row
为 Image
到 MouseOverRowDefinition
以供 Grid
决定它是否应该Visible
。
如果您想尝试一下,请在此处上传一个小型示例应用:
http://dl.dropbox.com/u/39657172/MouseOverGridRowDefinition.zip
关于c# - RowDefinition 上的 MouseEnter/MouseLeave,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7364398/
我对 mouseenter/mouseleave 函数有一些问题。 请看一下我的代码; $(".elms").live( { mouseenter: function (e) {
我在一个寻呼机中有一个顶部固定列表导航,工作正常。 我使用 jQuery 颜色插件添加了 mouseenter 和 mouseleave 颜色动画,效果也很好。 现在,如果单击链接,我想跳过 mous
我有一个指令在模板上显示学生信息列表,然后在鼠标输入时显示其他学生信息。我希望能够返回到 mouseleave 的初始状态。 尝试了所有资源,但运气不佳。 html - 这是我注入(inject)指令
我试图在鼠标输入鼠标离开事件时替换图像属性源。单击时,图像应保持事件状态。我需要 mouseleave 事件在单击后停止。到目前为止,点击后鼠标离开仍然继续,切换回图像,代码如下: jQue
我想要做的是创建一个下拉列表,当单击链接时该下拉列表会向下滑动,并根据单击的链接显示特定的隐藏 div。我希望它在单击另一个链接时在公开的下拉列表中的隐藏 div 之间优雅地切换。我们已经基本弄清楚了
有没有一种方法可以在拖动元素时检测鼠标离开? 我尝试拖放元素,如果它在视口(viewport)之外,则显示包含 div 元素的弹出窗口。 仅当我不拖动元素时才触发 mouseleave,但如果我尝试拖
如果我想鼠标进入一个div,就会显示一个元素,然后当鼠标离开时,元素就会消失。 我在 mouseenter 内有一个单击功能,因此单击时会出现一个下拉菜单。 我希望下拉菜单和元素即使在鼠标离开时也保持
所以,我的问题是只有当我以一定的速度移动光标时才会触发 MouseLeave 事件。下面是一个带有边框的拇指。单击拇指并按住鼠标按钮。缓慢移出边界 = 无事件,快速移出边界 = 事件。
我用 W3.CSS's slideshow documentation 创建了一个简单的幻灯片。您可以在这个 JS Fiddle上看到代码和幻灯片。 . 一切正常,除了在“mouseleave”事件发
鉴于下面显示的以下 html 表和脚本,我遇到了一个问题,即鼠标离开事件似乎在鼠标进入后立即触发,即使我没有将鼠标移出该行。 function highlightRows(iMainID)
嗨,我在下拉导航菜单上使用 mouseleave() ,这样当用户离开子菜单下拉菜单时,子菜单就会消失,但它似乎忽略了它,菜单仍然存在。有任何想法吗?这是网站和代码: http://www.maiag
http://jsfiddle.net/yZSEA/ $("p").hover(function() { var $this = $(this).find('span'); $this
HTML I'm div-1 I'm div-2 JS $("#div-1").bind('mouseover',function(event){ $('#div-2').stop(true,tr
抱歉,如果这看起来很基础,我是 JQuery 新手。 我的页面上有一个密码元素,我希望它能够在该框处于事件状态并且在框中键入时保持绿色,但 mouseleave 似乎优先于焦点。 这是该元素的代码:
example fiddle JavaScript $('#btn').on('mouseover', function() { $('#tt').show(); }).on('mousele
事情是这样的:我有一张 table 。当您将鼠标悬停在其上时,jQuery 会添加一些编辑按钮。当您将鼠标移出表格时,它们就会消失。问题是,如果您将鼠标移入表格,然后移到按钮上,然后移出,它们会保持在
我有像这样的菜单列表 第一个 ul 标记是从另一个框
我的表单上有一个上下文菜单,一些选项默认情况下应该禁用,但当用户右键单击面板时启用。 我写这个的方式,允许这个特定菜单项的面板有两个事件处理程序: MouseEnter -> 启用选项 MouseLe
我是 Jquery(和 JavaScript)的新手,我一直在尝试制作一个侧边栏,将鼠标悬停在图标上会显示它们各自的 div 元素(如果您愿意,可以称为“侧边栏”)。 我希望它的行为是这样的,只要您将
我试图在鼠标悬停在另一个 div 上时创建一个卷起的 div。它打开但我希望它在离开底部边框时不要关闭。是否可以使用 JS 或 JQuery?这是我当前的代码: $("#sell1").mouseen
我是一名优秀的程序员,十分优秀!