显示比容器宽的文本,滚动问题

时间:2015-03-04 11:25:39

标签: javascript jquery

我有没有包装的列表元素。它们位于一个列表中,该列表位于具有overflow:hidden;overflow-y:auto的固定大小div中,因此可以滚动。正如您所料,文本被裁剪为右侧。

我试图显示鼠标悬停时溢出div的“长”版文本。这很依赖于

if (0 > e.target.clientWidth - e.target.scrollWidth) {

(其中e.target是鼠标悬停事件中的LI。)

这是我想要的基本主要工作(警告:丑陋的黑客,欢迎改进)。

http://jsfiddle.net/h3yzhby0/

但是,我坚持滚动。当我将鼠标悬停在元素上时,它被添加到正文中,因为它比z包含div更高(它在dom后面并且有一个位置:固定) - 它出现在div的滚动条上方,因为我需要。当鼠标悬停在此元素上时,我希望鼠标滚轮[和我尚未编码的键盘箭头]继续向上和向下滚动div。该事件不会从鼠标悬停div“冒泡”,因为它不是同一个父/节点(并且由于溢出要求而不能)。

有没有办法在特定对象上传递或重新触发鼠标滚轮事件(例如传递事件)?

1 个答案:

答案 0 :(得分:2)

我认为最简单的方法是将"pointer-events": "none"添加到long-version元素中,因此滚动不会考虑它。

然后,您需要检查哪些元素需要长版本,并在mouseenter / mouseleave上添加/删除其他div.long-version