js函数 运动盒子上下左右

该博客展示了使用HTML、CSS和JavaScript实现元素动态效果的代码。通过HTML创建页面结构,CSS设置元素样式,JavaScript编写交互逻辑,实现了元素的移动和变宽效果,用户点击不同按钮可触发相应动作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<meta http-equiv="X-UA-Compatible" content="ie=edge">

<title>Document</title>

<style>

#box{

position: relative;

top: 100px;

left: 100px;

width: 100px;

height: 100px;

background-color: red;

}

</style>

</head>

<body>

<div id="box"></div>

<button>向左</button> <button>向右</button> <button>向上</button> <button>向下</button> <button>变宽</button>

<script src="./tools.js"></script>

<script>

var oBox = document.getElementById('box');

var oLeft = document.getElementsByTagName('button')[0];

var oRight = document.getElementsByTagName('button')[1];

var oTop = document.getElementsByTagName('button')[2];

var oBottom = document.getElementsByTagName('button')[3];

var oWidth = document.getElementsByTagName('button')[4];

var timer = null;

oRight.onclick = function(){

move(10,500,'left');

}

oLeft.onclick = function(){

move(10,0,'left');

}

oTop.onclick = function(){

move(10,0,'top');

}

oBottom.onclick = function(){

move(10,400,'top');

}

oWidth.onclick = function(){

move(5,400,'width');

}

function move(step,target,attr){ // step: 步长 target:目标值 attr:要运动的样式属性

clearInterval(timer);

var current = parseInt(getCss(oBox,attr));//获取当前值

step = target >= current ? step : -step; //根据目标值判断方向

timer = setInterval(function(){

current+=step;

if(step>0&&current>=target || step<0&&current<=target){

clearInterval(timer);

current = target;

}

oBox.style[attr] = current + 'px';

},20);

}

</script>

</body>

</html>

实现效果如下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小小的梦想!

你的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值