小白对js不太熟悉,那么请问,我如果js来做点击按钮,然后div经过5s移动到右边500px的地方,这种效果的制作思路是啥?
是先写好一个class,让这些效果完全都达到了,然后用js来切换className么?
但是在点击事件里面,把所有的css效果写进去? QUQ
小白对js不太熟悉,那么请问,我如果js来做点击按钮,然后div经过5s移动到右边500px的地方,这种效果的制作思路是啥?
是先写好一个class,让这些效果完全都达到了,然后用js来切换className么?
但是在点击事件里面,把所有的css效果写进去? QUQ
你要的是这样么?代码见下方, div 5s移动到500px,可以先给div设置好transition效果,加个移动到右边的class, js主要做的就是给元素加个class
ps: 只是demo代码,没考虑兼容等等情况……
css3
.demo{
border:1px solid #fff;
width:100px;
height:50px;
position:relative;
left:0;
transition: left 2s;
}
.run{
left:500px;
}
<div class="demo">
</div>
(function(){
document.getElementsByClassName('demo')[0].onclick = function(){
this.className +=' run';
};
})()
可以用css,也可以直接用js写。css的话就用transition写,具体的百度,点击事件发生时为元素添加一个class,改变样式。js的话就用settimeout,以你说的左边距为例,一点一点改变左边距,到达指定值时停止即cleartimeout
如楼上所说,如果是ie9以下,需要使用定时器做
var ele = document.getElementsByClassName('demo')[0]
ele.onclick = function(){
var btn = this;
setInterval(function(){
btn.style.left = parseInt(btn.style.left) + 1 + "px"
},1)
}
13 回答13k 阅读
7 回答2.1k 阅读
3 回答1.3k 阅读✓ 已解决
2 回答1.4k 阅读✓ 已解决
6 回答1.2k 阅读✓ 已解决
6 回答1.1k 阅读
3 回答1.3k 阅读✓ 已解决
给你个简单的demo看完就会了,这也只是方法中的一种,方法还有很多!