html、css、jquery的hover事件怎么样只在下图的margin区域触发?

如图,结构大概是<body><div>这是上方div</div><div>这是下方div</div></body>下方的div设置了margin:20pxauto;如何让... 如图,结构大概是<body> <div>这是上方div</div> <div>这是下方div</div></body>下方的div设置了margin:20px auto;如何让一个事件只在图中的margin区域触发? 展开
 我来答
梦忠魂
2018-06-20 · TA获得超过299个赞
知道小有建树答主
回答量:392
采纳率:93%
帮助的人:170万
展开全部

你这种需求,只能通过判断鼠标的位置了,当鼠标进入的位置处于这两者之间的共同区域时,触发事件。

<!DOCTYPE html>
<html>
  <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <script src="http://cdn.staticfile.org/jquery/2.1.4/jquery.min.js"></script>
        <title>Div MouseOver</title>
  </head>
    <body>
<div id="div1" style="width:600px;height:600px;background-color:#ff0">
<div id="div2" style="width:300px;height:300px;background-color:#f00;margin:100px;display:inline-block;">
</div>
<script>
var $=function(obj){
return document.querySelector(obj);
}
$('div').addEventListener('mouseover',function(e,s){
if(e.offsetX<100&&e.offsetY<600||e.offsetX>400&&e.offsetY<600||e.offsetX>0&&e.offsetY<100||e.offsetX>0&&e.offsetY>400) console.log("X:",e.offsetX, "Y:",e.offsetY);
else console.log('不在区域内');
});
</script>
</div>
</body>
</html>
追问
嗯,大概只能这么干了,但是涉及到居中和按百分百显示时就特别cd了...
另外请问一下,margin在“地理上”是属于div的,因为它占了那块地,但各种事件只能由div的内容、padding以及border触发,这又显得它不属于这个div,目前没有关于margin事件的方法吗?
鹤禧觉色2J
2018-06-15 · 超过36用户采纳过TA的回答
知道答主
回答量:255
采纳率:32%
帮助的人:32万
展开全部
判断当前事件源是谁 然后如果是这两个DIV 就不执行 不是就执行
更多追问追答
追问
比如我在margin添加hover事件,我用所有元素去掉div1、div2这中方式整个页面都不响应这个hover事件,它这个margin好像是属于div2的。
追答
margin和DIV2没关系呀,他只是div2对外的边距罢了。。div2所占的区域就是他自己那一块
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式