鼠标位置在 iframe 上
Mouse position over iframe
我有一个div,在左边充当侧边栏,然后其余的(在右边)是一个IFrame。我的侧边栏的宽度为 50,我希望每当鼠标朝向右侧时,它就会隐藏,然后当鼠标"进入 <50 区域"时,侧边栏再次显示。
这是否可能,或者跨域访问存在问题?
我认为如果我正确理解了你的问题,这不是关于捕获鼠标位置(基于 pageX/pageY 原则); 而是你想简单地在mouseenter和mouseleave(悬停)上触发操作。
您可以通过正确构建 DOM 然后按照您想要的方式设置样式来实现这些结果。
无需预测鼠标的位置,我们可以简单地指示何时显示以及何时隐藏内容。在此方案中,我们使用所需的50px
,并根据用户的操作"显示/隐藏"。请参阅下面的工作 jsFiddle:
编辑
由于性能问题,我选择使用.css()
而不是.animate()
。如果您想调整它,请告诉我。
http://jsfiddle.net/YGmN3/3/
也许是这样的:
.HTML
<div id="sidebar" style="float:left; width:50px; background-color:green; height:250px;"></div>
.JS
$("html").mousemove(function(event)
{
var xPos = event.pageX;
if (xPos <= 50)
{
$("#sidebar").show();
}
else
{
$("#sidebar").hide();
}
});
http://jsfiddle.net/5VEzx/
当你开始使用iframes时,肯定会涉及一些复杂问题 - 这是行不通的:
<Doctype! html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style>
body iframe {
margin-left: 100;
border: 2px solid red;
}
</style>
<script type="text/javascript" src="jquery.js"></script>
<script>
$(function(){
$(document).on('mousemove', function(evt){
$('#pagex').text(evt.pageX);
});
})
</script>
</head>
<body>
<div id="pagex"></div>
<iframe id="theframe">
<div id="innepage"></div>
<script type="text/javascript">
$(document).on('mousemove', function(evt){
console.log(evt);
$('#innerpage').text(evt.pageX);
});
</script>
</iframe>
</body>
</html>
事实上,我无法在 iframe 内成功触发的任何地方放置一个mousemove
侦听器。
我知道 iframe 有自己的规则,但我也知道可以与它们互动,因为人们一直在这样做。不幸的是,我实际上并没有与他们合作,所以我没有答案。
相关文章:
- 测试iFrame的位置.href是在jasmine单元测试中设置的
- 如何设置外部javascript创建的iframe的位置
- 获取相对于窗口的IFRAME位置
- 获取iframe中元素的Y位置
- 如果在iframe中,引导模式弹出将忽略滚动位置
- 在html中插入iframe的适当位置
- 刷新ul中在iframe中找到位置的元素
- 如何获得X&iframe中iframe的Y位置
- 如何使父网页从 iframe 滚动到特定位置(顶部)
- 根据用户光标的位置获取 iframe ID
- 同时加载 iframe 并重置文档位置
- 读取跨站点 iframe 位置
- 使 iframe/表单固定位置
- 如何定位“隐藏”的 iframe?(应用程序:链接到嵌入“隐藏的海报图像”嵌入的 Youtube 视频的起始位置)
- 完全使用 iframe 嵌入页面,没有边框,在边框曾经的位置没有空格
- Jquery 查看 iframe 位置是否已更改
- 窗口位置 阻止 iframe 重定向父窗口
- 如何将 iframe 位置内部重定向到另一个位置
- 在加载前拦截iframe位置更改
- 当iframe内的内容使用#pageName转换时,父网页跳转/自动滚动到iframe位置