获取绝对准确的滚动条宽度

原创,但印象中是看过类似的思路才想出来的方法,不过因为太久了,而且我的笔记里只记录我写的JS脚本,找不到当时看到的文章到底是写的什么了(不过可以确定的是那文章写的不是获取滚动条宽度)

/*!
 * 获取浏览器竖向滚动条宽度
 * 首先创建一个用户不可见、无滚动条的DIV,获取DIV宽度后,
 * 再将DIV的Y轴滚动条设置为永远可见,再获取此时的DIV宽度
 * 删除DIV后返回前后宽度的差值
 *
 * @return    Integer     竖向滚动条宽度
 */
function getScrollWidth() {
  var noScroll, scroll, oDiv = document.createElement("DIV");
  oDiv.style.cssText = "position:absolute; top:-1000px; width:100px; height:100px; overflow:hidden;";
  noScroll = document.body.appendChild(oDiv).clientWidth;
  oDiv.style.overflowY = "scroll";
  scroll = oDiv.clientWidth;
  document.body.removeChild(oDiv);
  return noScroll-scroll;
}
posted @ 2011-07-06 16:17  consatan  阅读(2966)  评论(7编辑  收藏  举报