使用js解决由border属性引起的div宽度问题


Posted in Javascript onNovember 26, 2013

下面我们来看一个例程

<script type="text/javascript"> 
var timer 
function stopMove(){ 
clearInterval(timer) 
} 
function startMove(){ 
var div=document.getElementById('ok') 
clearInterval(timer) 
timer=setInterval(function(){ 
ok.style.width=ok.offsetWidth-1+'px' ;//理论上应该是宽度不断减少,但是实际却增长,原因在样式表中的border属性,去掉即可解决 
},20) 
} 
</script> 
<style type="text/css"> 
* {margin: 0;padding:0} 
body {font-size: 14px;line-height: 24px;margin: 0px;padding: 0px;} 
#ok{width:800px;height: 200px;background-color:darkgreen;border: 1px red solid; } 
</style> 
</head> 
<body> 
<div id="ok"></div>

注意看注释,为什么会出现这个现象呢?其实就是由于border引起的,由于ok.style.width指定的是div的宽度,而offsetwidth指的是实际的宽度,包括border宽度。所以这个右边的式子得到的宽度值其实比左边大一个像素,解决办法,每次减去3个像素就可以达到实际减去一个像素的目的。或者用右边也用parseInt(div.style.width),但要修改div如下:
<div id="ok" style="width:200px:></div>

终极方案:用currentstyle或getcomputedstyle来获取属性。
Javascript 相关文章推荐
jquery 学习笔记一
Apr 07 Javascript
jquery dialog键盘事件代码
Aug 01 Javascript
JS 精确统计网站访问量的实例代码
Jul 05 Javascript
用js通过url传参把数据从一个页面传到另一个页面
Sep 01 Javascript
JavaScript通过元素索引号删除数组中对应元素的方法
Mar 18 Javascript
javascript每日必学之封装
Feb 23 Javascript
基于javascript实现按圆形排列DIV元素(一)
Dec 02 Javascript
vue实现微信分享朋友圈,发送朋友的示例讲解
Feb 10 Javascript
jQuery访问json文件中数据的方法示例
Jan 28 jQuery
node链接mongodb数据库的方法详解【阿里云服务器环境ubuntu】
Mar 07 Javascript
javascript定时器的简单应用示例【控制方块移动】
Jun 17 Javascript
Vue页面切换和a链接的本质区别详解
Nov 12 Javascript
js 弹出框只弹一次(二次修改之后的)
Nov 26 #Javascript
JS匀速运动演示示例代码
Nov 26 #Javascript
Extjs4中Form的使用之本地hiddenfield
Nov 26 #Javascript
jQuery Mobile的loading对话框显示/隐藏方法分享
Nov 26 #Javascript
当鼠标滑过文本框自动选中输入框内容的JS代码分享
Nov 26 #Javascript
JS判断不能为空实例代码
Nov 26 #Javascript
常用的JavaScript验证正则表达式汇总
Nov 26 #Javascript
You might like
php下获取Discuz论坛登录用户名、用户组、用户ID等信息的实现代码
2010/12/29 PHP
php数组函数序列之array_unique() - 去除数组中重复的元素值
2011/10/29 PHP
解析PHP中常见的mongodb查询操作
2013/06/20 PHP
Laravel Eloquent ORM 多条件查询的例子
2019/10/10 PHP
关于Javascript模块化和命名空间管理的问题说明
2010/12/06 Javascript
javascript提取URL的搜索字符串中的参数(自定义函数实现)
2013/01/22 Javascript
不提示直接关闭网页窗口的JS示例代码
2013/12/17 Javascript
jQuery实现首页顶部可伸缩广告特效代码
2015/04/15 Javascript
JS扩展方法实例分析
2015/04/15 Javascript
JavaScript forEach()遍历函数使用及介绍
2015/07/08 Javascript
JS实现的幻灯片切换显示效果
2016/09/07 Javascript
js如何判断是否在iframe中及防止网页被别站用iframe嵌套
2017/01/11 Javascript
Bootstrap modal 多弹窗之叠加显示不出弹窗问题的解决方案
2017/02/23 Javascript
JavaScript实现删除数组重复元素的5种常用高效算法总结
2018/01/18 Javascript
Vue Autocomplete 自动完成功能简单示例
2019/05/25 Javascript
Vue vm.$attrs使用场景详解
2020/03/08 Javascript
JS 数组和对象的深拷贝操作示例
2020/06/06 Javascript
详解Vue之事件处理
2020/07/10 Javascript
Linux下用Python脚本监控目录变化代码分享
2015/05/21 Python
详解字典树Trie结构及其Python代码实现
2016/06/03 Python
详解python上传文件和字符到PHP服务器
2017/11/24 Python
Python机器学习之决策树算法
2017/12/22 Python
Python实现可自定义大小的截屏功能
2018/01/20 Python
python面向对象 反射原理解析
2019/08/12 Python
python同步两个文件夹下的内容
2019/08/29 Python
python实现批量处理将图片粘贴到另一张图片上并保存
2019/12/12 Python
在pytorch 中计算精度、回归率、F1 score等指标的实例
2020/01/18 Python
英国领先的奢侈品零售商之一:CRUISE
2016/12/02 全球购物
沙特阿拉伯家用电器和电子产品购物网站:Sheta and Saif
2020/04/03 全球购物
JRE、JDK、JVM之间的关系怎样
2012/05/16 面试题
回门宴父母答谢词
2014/01/26 职场文书
自我检讨报告
2015/01/28 职场文书
2016教师节问候语
2015/11/10 职场文书
银行文明优质服务培训心得体会
2016/01/09 职场文书
教你解决往mysql数据库中存入汉字报错的方法
2021/05/06 MySQL
Vue的列表之渲染,排序,过滤详解
2022/02/24 Vue.js