```html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>移动元素</title>
<style type="text/css">
pre {
font-size: 16px;
font-weight: 700;
margin-top: 255px;
}
* {
margin: 0;
padding: 0;
}
input {
margin-top: 20px;
}
input:hover {
cursor: pointer;
}
div {
margin-top: 30px;
width: 200px;
height: 200px;
position: absolute; /* 要移动div,必须是absolute才不会影响其他元素的布局 */
background-color: green;
}
</style>
</head>
<body>
<input type="button" value="移动400px" id="btn1">
<div id="dv"></div>
<pre>
div要移动必须要脱离文档流:position: absolute;
element.offsetHeight 返回元素的高度。
element.offsetWidth 返回元素的宽度。
element.offsetLeft 返回元素的水平偏移位置。
element.offsetParent 返回元素的偏移容器。
element.offsetTop 返回元素的垂直偏移位置。
</pre>
<script type="text/javascript">
var div = document.getElementById("dv");
document.getElementById("btn1").onclick = function(){
var timeId = setInterval(function(){
var current = div.offsetLeft; // 数字类型,没有px
var step = 9; // 每次移动像素
current += step;
if(current<=400) {
div.style.left = current+"px";
}else {
clearInterval(timeId);
}
}, 20);
}
</script>
</body>
</html>
```
- js应用场景
- js组成
- js书写位置
- 浮点数精度问题
- undefined与null的区别
- 数据类型转换
- 运算符优先级
- 代码调试
- 函数
- 函数的定义和调用
- 函数的return细节
- 函数是一种数据类型
- this的指向
- 函数成员
- 函数闭包
- 作用域
- 预解析
- js对象
- 对象的创建与调用
- new关键字
- this关键字
- 构造函数创建对象
- 事件
- 数据类型
- 继承
- 杂项
- 如何阻止标签的默认行为
- 为一个标签绑定或移除任何一个事件
- 如何阻止事件的冒泡行为
- 事件的三个阶段
- 移动元素的条件
- 匀速动画函数封装
- 变速动画函数封装
- 获取元素的css属性值
- 数据类型判断方法
- 创建对象的7种写法
- 如何继承
- 为js内置对象添加原型函数
- 将局部变量转换为全局变量
- call函数的用法
- 沙箱
- 浅拷贝
- 深拷贝
- 对象赋值会改变对象
- 解析URL中的字符串
- 格式化日期
- 获取当前浏览器类型
- Vue3.x
- 调式工具Vue Devtools