使用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 相关文章推荐
js函数使用技巧之 setTimeout(function(){},0)
Feb 09 Javascript
IE innerHTML,outerHTML所引起的问题
Jun 04 Javascript
JavaScript 判断判断某个对象是Object还是一个Array
Jan 28 Javascript
javascript Array对象基础知识小结
Nov 16 Javascript
js实现带圆角的多级下拉菜单效果
Aug 28 Javascript
BootStrap入门教程(一)之可视化布局
Sep 19 Javascript
Bootstrap列表组学习使用
Feb 09 Javascript
微信小程序开发之麦克风动画 帧动画 放大 淡出
Apr 18 Javascript
纯js实现页面返回顶部的动画(超简单)
Aug 10 Javascript
vue中component组件的props使用详解
Sep 04 Javascript
layui-laydate时间日历控件使用方法详解
Nov 15 Javascript
js实现弹框效果
Mar 24 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截取后台登陆密码的代码
2012/05/05 PHP
PHP正则表达式之定界符和原子介绍
2012/10/05 PHP
php抽象方法和抽象类实例分析
2016/12/07 PHP
PHP实现图片压缩
2020/09/09 PHP
限制文本字节数js代码
2007/03/06 Javascript
jquery ajax 检测用户注册时用户名是否存在
2009/11/03 Javascript
Jquery 高亮显示文本中重要的关键字
2009/12/24 Javascript
JavaScript初学者应注意的七个细节详细介绍
2012/12/27 Javascript
jqplot通过ajax动态画折线图的方法及思路
2013/12/08 Javascript
Bootstrap fileinput文件上传组件使用详解
2017/06/06 Javascript
nodejs 最新版安装npm 的使用详解
2018/01/18 NodeJs
Vue cli 引入第三方JS和CSS的常用方法分享
2018/01/20 Javascript
深入理解Antd-Select组件的用法
2020/02/25 Javascript
[43:58]DOTA2上海特级锦标赛C组败者赛 Newbee VS Archon第二局
2016/02/27 DOTA
[01:01:52]DOTA2-DPC中国联赛定级赛 SAG vs iG BO3第二场 1月9日
2021/03/11 DOTA
使用httplib模块来制作Python下HTTP客户端的方法
2015/06/19 Python
python用reduce和map把字符串转为数字的方法
2016/12/19 Python
Python决策树之基于信息增益的特征选择示例
2018/06/25 Python
PyCharm配置mongo插件的方法
2018/11/30 Python
django admin组件使用方法详解
2019/07/19 Python
PyCharm使用之配置SSH Interpreter的方法步骤
2019/12/26 Python
导致python中import错误的原因是什么
2020/07/01 Python
html5 Canvas绘制线条 closePath()实例代码
2012/05/10 HTML / CSS
联想加拿大官方网站:Lenovo Canada
2018/04/05 全球购物
JAVA中的关键字有什么特点
2014/03/07 面试题
医学生职业规划范文
2014/01/05 职场文书
企业车辆管理制度
2014/01/24 职场文书
村官工作鉴定评语
2014/01/27 职场文书
家居饰品店创业计划书
2014/01/31 职场文书
蜜蜂引路教学反思
2014/02/04 职场文书
三年级评语大全
2014/04/23 职场文书
小摄影师教学反思
2014/04/27 职场文书
服务型党组织建设典型材料
2014/05/07 职场文书
Go Gin实现文件上传下载的示例代码
2021/04/02 Golang
Java实现添加条码或二维码到Word文档
2022/06/01 Java/Android
win10蓝屏0xc0000001安全模式进不了怎么办?win10出现0xc0000001的解决方法
2022/08/05 数码科技