做了个demo发现如果一个div不加border属性,用对象的offsetWidth属性来控制width没问题,但是如果一旦加了border属性,问题就来了。

其实offsetWidth属性获取的的是div内容宽度加内外边距和边框的宽度总和,所以为了更好地解决这个bug,自己弄了一个getStyle方法来有效的解决这个bug。以下是代码:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>test</title>
</head>
<style type="text/css">
div{width: 200px;height: 200px;background: red;border: 2px solid blue;}
</style>
<script type="text/javascript">
window.onload = function() {
var oDiv = document.getElementsByTagName("div")[0];
startMove();
function startMove() {
setInterval(function() {
oDiv.style.width = parseInt(getStyle(oDiv,"width"))-1+"px";
},30);
}
function getStyle(obj,attr) {
if (obj.currentStyle){
return obj.currentStyle[attr];
}else{
return getComputedStyle(obj,false)[attr];
}
}
}
</script>
<body>
<div></div>
</body>
</html>

最新文章

  1. ASP.NET MVC 5 with EF 6 上传文件
  2. python3.x + selenium 3.x 遇到的问题:Exception ignored in: &lt;bound method Service.__del__ of &lt;selenium.webdriver.firefox.service.Service object at 0x0045E450&gt;&gt;
  3. c++转义字符、指针
  4. sprintf的缓冲区溢出问题
  5. C# 基础(6)--Winform
  6. Yii2中系统定义的常用路径别名,如果获取web的url
  7. IntelliJ IDEA svn 提交错误
  8. 第一个python实例程序
  9. Java&#160;win7或&#160;xp下配置JDK环境变量
  10. Kafka如何删除topic?
  11. SpringMvc的基本流程
  12. JSP技术复习
  13. MySQL转Oracle,MyBatis Mapper XML 文件修改项总结
  14. vxworks 的 socket, thread, 信号量模型
  15. NavigationController.viewControllers
  16. C# 获取存在DataTable1不存在DataTable2的数据的快速方法
  17. 第一百九十五节,jQuery EasyUI,Resizable(调整大小)组件
  18. [分享]在ubuntu9.10下实现开机自动登录并运行自己的图形程序
  19. 20145239杜文超 《Java程序设计》第10周学习总结
  20. QQ客服代码,支持临时会话

热门文章

  1. 《A First Course in Probability》-chape4-离散型随机变量-几种典型分布列
  2. modelsim使用命令
  3. 3proxy代理软件文档说明
  4. HDU 2876 Ellipse, again and again
  5. PL/SQL:使用pragma restrict_references限制包权限
  6. hibernate入门之person表
  7. qt 与mysql建立交互式连接
  8. atlassian-jira-confluence-bitbucket破解
  9. Android(java)学习笔记185:xml文件生成
  10. 在Nginx中搭建Nagios监控平台