使用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下动态显示jqGrid以及jqGrid的属性设置容易出现问题的解决方法
Oct 22 Javascript
jquery中获取元素的几种方式小结
Jul 05 Javascript
Js从头学起(基本数据类型和引用类型的参数传递详细分析)
Feb 16 Javascript
Javascript中call与apply的学习笔记
Sep 22 Javascript
jQuery的css()方法用法实例
Dec 24 Javascript
jquery实现的淡入淡出下拉菜单效果
Aug 25 Javascript
JQuery实现网页右侧随动广告特效
Jan 17 Javascript
js实现页面跳转的几种方法小结
May 16 Javascript
js实现QQ面板拖拽效果(慕课网DOM事件探秘)(全)
Sep 19 Javascript
基于jQuery的$.getScript方法去加载javaScript文档解析
Nov 08 jQuery
Vue实现菜单切换功能
Nov 08 Javascript
JavaScript实现鼠标移入随机变换颜色
Nov 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
Linux下 php5 MySQL5 Apache2 phpMyAdmin ZendOptimizer安装与配置[图文]
2008/11/18 PHP
解决163/sohu/sina不能够收到PHP MAIL函数发出邮件的问题
2009/03/13 PHP
md5 16位二进制与32位字符串相互转换示例
2013/12/30 PHP
ThinkPHP使用心得分享-分页类Page的用法
2014/05/15 PHP
PHP解析RSS的方法
2015/03/05 PHP
深入php内核之php in array
2015/11/10 PHP
php中的常用魔术方法汇总
2016/02/14 PHP
javascript 页面划词搜索JS
2009/09/28 Javascript
按给定几率进行随机抽取的js代码
2010/12/28 Javascript
jquery根据name属性查找的小例子
2013/11/21 Javascript
js动态拼接正则表达式的两种方法
2014/03/04 Javascript
javascript简单实现滑动菜单效果的方法
2015/07/27 Javascript
JS截取与分割字符串常用技巧总结
2015/11/10 Javascript
实例代码讲解jquery easyui动态tab页
2015/11/17 Javascript
正则中的回溯定义与用法分析【JS与java实现】
2016/12/27 Javascript
jQuery UI Draggable + Sortable 结合使用(实例讲解)
2017/09/07 jQuery
浅谈JavaScript的innerWidth与innerHeight
2017/10/12 Javascript
JS点击动态添加标签、删除指定标签的代码
2018/04/18 Javascript
从vue源码解析Vue.set()和this.$set()
2018/08/30 Javascript
vue安装遇到的5个报错及解决方法
2019/06/12 Javascript
openLayer4实现动态改变标注图标
2020/08/17 Javascript
[38:41]2014 DOTA2国际邀请赛中国区预选赛 LGD VS CNB
2014/05/22 DOTA
python实现FTP服务器服务的方法
2017/04/11 Python
Python时间戳使用和相互转换详解
2017/12/11 Python
Windows 7下Python Web环境搭建图文教程
2018/03/20 Python
Python从使用线程到使用async/await的深入讲解
2018/09/16 Python
python对文件目录的操作方法实例总结
2019/06/24 Python
numpy ndarray 按条件筛选数组,关联筛选的例子
2019/11/26 Python
python groupby 函数 as_index详解
2019/12/16 Python
Python列表list操作相关知识小结
2020/01/29 Python
美国最大的宠物用品零售商:PetSmart
2016/11/14 全球购物
彪马俄罗斯官网:PUMA俄罗斯
2019/07/13 全球购物
如何安装ruby on rails
2014/02/09 面试题
市场部管理制度
2014/02/02 职场文书
幼儿园小朋友毕业感言
2015/07/30 职场文书
python树莓派通过队列实现进程交互的程序分析
2021/07/04 Python