最近,遇到一个开发任务。要求在绿色框线内触发hover事件。
方案一:容器剥离
要求的触发区域并不一个完整的div容器,可以从最外层容器(LI容器)中剥离出上方的时间区域,头像区域,内容区域。即
触发区域 = 外层容器 - 时间区 - 头像区 - 内容区。
判断hover事件的event.target 对象是否属于后三个区域及其子元素。如果true,则return。
不幸地是,鼠标从右侧移动过边框到达内容区有时触发hover,有时不触发,跟移动速度有很大关系。red border属于内容区的border,应该认为进入内容区。border、padding都算入触发区,但不包括margin。