javascript - 显示滚动条时防止 DIV 调整大小

标签 javascript html

我有一个滚动的 div,我在其中使用 CSS 根据用户是否将鼠标悬停在 div 上来显示/隐藏滚动条。没有悬停 = 没有滚动条。

div.mouseScroll {
    overflow: hidden;
}

div.mouseScroll:hover {
    overflow-y: scroll;
}

很简单,除了一个问题。当用户将鼠标悬停在 div 上时,它会显示滚动条,但同时也会稍微调整 div 内容的大小以适应滚动条。有没有办法以某种方式将滚动条显示在侧面,或将其悬停在顶部?在添加滚动条时如何防止 div 中的内容调整大小。

我可以使用 javascript。

最佳答案

使用 visibility 隐藏/显示在两种状态下永久呈现的滚动条(参见 jsFiddle demo ):

CSS:

.test {
    background: #ccc;
    width: 150px;
}

.test > DIV {
    overflow-y: scroll;
    visibility: hidden;
    height: 150px;
}

.test > DIV > DIV {visibility: visible; }

.test:hover > DIV {visibility: visible; }

    *+HTML .test > DIV > DIV {min-height: 0; } /* hasLayout for IE7 */

HTML:

<div class="test"><div><div>
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
</div></div></div>

关于javascript - 显示滚动条时防止 DIV 调整大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12820522/

相关文章:

javascript - D3轴标签刻度

javascript - 使用 Javascript 更改 url 地址

javascript - 数据库数组更新后 ng-repeat 不更新

java - 使用 [href] 转义 html anchor 标记

php - Javascript 中的关联子数组

javascript - angularjs 单击按钮显示下一个/上一个 div

html - 带无序列表的元素符号中心

html - 这是什么编码以及如何在 UIWebView 中转换

html - 复选框和单选按钮样式在 Firefox 中不起作用

Javascript/jquery : only update content inside div (not outside) - including html and css with live preview