javascript - div的 "creating"滚动条

标签 javascript html css

我有一堆不同的图像,当您将鼠标悬停在图像上时,我会显示一个自定义工具提示,该提示将自身设置在光标下方。

现在,工具提示工作正常,但如果我将窗口变大,将图像悬停在边缘,然后再次将窗口变小,那么工具提示 div 在主体外部,它会创建一个滚动条(水平)。

或者如果窗口足够小以至于工具提示超出它,它还会创建一个滚动条(认为这可以通过一些 javascript 检查来修复)

基本上我是在问是否有任何方法可以使 div “不创建滚动条”或在调整窗口大小时调用函数?

JSFiddle showing what's happening

HTML

<div style='position:relative;'>
    <div class='img' onmousemove="showTooltip('tip', event);" onmouseout="hideTooltip('tip');"></div>
    <div id='tip' class='tooltip'></div>
</div>

CSS

.img {
    width:500px;
    height:500px;
    background-color:#F00;
}
.tooltip {
    width:200px;
    height:200px;
    background-color:#888;
    position:absolute;
}

JS

function showTooltip(name, event) {
    var div = document.getElementById(name);
    div.style.visibility = "visible";
    div.style.top = (event.clientY + 20 + document.body.scrollTop) + "px";
    div.style.left = (event.clientX + 20 + document.body.scrollLeft) + "px";
}

function hideTooltip(name) {
    document.getElementById(name).style.visibility = "hidden";
}

最佳答案

你可以使用

overflow: hidden;

在您的 CSS 中防止滚动。在这种情况下,由于您没有任何东西包裹您的区域,因此您必须将它应用到 body 上。

body {
    overflow: hidden;
}

关于javascript - div的 "creating"滚动条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21369241/

相关文章:

javascript - 自定义尴尬的 jquery 插件

javascript - 如何将mysql查询转换为sequelize orm

html - IE9 在使用页面 anchor 链接点击后打开新标签

javascript - Lightgallery 无法获取缩略图

javascript - 单击链接时替换链接的文本区域

css - 不同浏览器的字体大小差异很大

javascript - 如何从 Angular Directive(指令)访问变量?

javascript - 如何排序和过滤 ngTable 日期(毫秒)数据?

javascript - onclick 获取该行数据并向 div 添加滚动条

javascript - 可以修改此 Youtube 代码以强制自动播放吗?