Q
div滚动条宽度
6
A
回答
12
,如果你使用jQuery,试试这个:
function getScrollbarWidth()
{
var div = $('<div style="width:50px;height:50px;overflow:hidden;position:absolute;top:-200px;left:-200px;"><div style="height:100px;"></div></div>');
$('body').append(div);
var w1 = $('div', div).innerWidth();
div.css('overflow-y', 'auto');
var w2 = $('div', div).innerWidth();
$(div).remove();
return (w1 - w2);
}
我使用这个项目我的工作,它就像一个魅力。它通过获取滚动条宽度:
- 追加一个div溢出内容的主体(在非可视区域,-200px顶部/左)
- 集溢出
hidden
- 得到宽度
- 集溢流到
auto
(以获得滚动条) - 得到宽度
- 两者。减去宽度以得到滚动条的宽度
所以你要做的就是让你的div($('#mydiv').width()
)的宽度并添加滚动条宽度什么:
var completewidth = $('#mydiv').width() + getScrollbarWidth();
0
这是一个普通的JavaScript版本是这样更快。
function getScrollbarWidth() {
var div, body, W = window.browserScrollbarWidth;
if (W === undefined) {
body = document.body, div = document.createElement('div');
div.innerHTML = '<div style="width: 50px; height: 50px; position: absolute; left: -100px; top: -100px; overflow: auto;"><div style="width: 1px; height: 100px;"></div></div>';
div = div.firstChild;
body.appendChild(div);
W = window.browserScrollbarWidth = div.offsetWidth - div.clientWidth;
body.removeChild(div);
}
return W;
};
2
设置一个div的溢出“scroll
”自动添加scrollbars
(即使没有什么的里面,scrollbars
会在那里,但灰色)。因此,只要一格,找到宽度,设置溢出滚动,并找到新的宽度,并返回的区别:
function getScrollBarWidth() {
var helper = document.createElement('div');
helper.style = "width: 100px; height: 100px; overflow:hidden;"
document.body.appendChild(helper);
var bigger = helper.clientWidth;
helper.style.overflow = "scroll";
var smaller = helper.clientWidth;
document.body.removeChild(helper);
return(bigger - smaller);
}
+0
出于好奇,这是否适用于mac上最新版本的Safari浏览器,滚动条仅在悬停时出现?我只问,因为我最近花了很多时间试图在放弃之前尝试查找滚动条的宽度,并宣布Mac Safari上的三个用户可以处理5或6像素跳跃。我只是试图检查自己,但发现safari的windows版本似乎没有表现出相同的行为。编辑:这是因为它不是Safari,但狮子这样做。我猜这些解决方案可能不适用于Lion。 –
3
试试这个
$("#myDiv")[0].scrollWidth
相关问题
- 1. 影响div宽度的滚动条
- 2. 水平滚动条宽度
- 3. js滚动条宽度
- 4. CSS滚动条宽度
- 5. HTML滚动条宽度
- 6. Flex Advanceddatagrid滚动条宽度
- 7. 没有设置div的宽度,显示div overflow-x滚动条?
- 8. 嵌套的div宽度停止在父滚动div的滚动条上
- 9. div高度100%,滚动条
- 10. jquery,知道div与滚动条的宽度和高度
- 11. CSS:100% - 高度/宽度边界div内的DIV创建垂直滚动条,但不是水平滚动条
- 12. 水平滚动条和宽度自动
- 13. 当div上有最小宽度时,滚动条不会添加到宽度
- 14. 在窗口滚动更改div宽度
- 15. div与屏幕宽度和滚动
- 16. 在滚动时固定div的宽度
- 17. CSS DIV滚动条最小宽度问题
- 18. 水平滚动条出现 - 均匀Div的宽度= 100%
- 19. 根据媒体宽度显示div的滚动条
- 20. CSS - 隐藏div中没有固定宽度的滚动条
- 21. 当滚动条是@底部JQuery时DIV 100%宽度
- 22. CSS DIV滚动条和带最小宽度的背景
- 23. div与滚动条减少内容宽度
- 24. 您可以在IE7中更改滚动条(滚动DIV)的宽度
- 25. IE DIV宽+滚动
- 26. 滚动条改变图像的宽度
- 27. ScrollView中Android滚动条的宽度
- 28. Extjs4如何更改滚动条宽度
- 29. 找到DOM滚动条的宽度
- 30. 解决CSS滚动条宽度
可悲的是不与MacOS的狮子的工作滚动条... – jedierikb