javascript - js做过渡效果是怎么样做的?
问题描述
小白对js不太熟悉,那么请问,我如果js来做点击按钮,然后p经过5s移动到右边500px的地方,这种效果的制作思路是啥?
是先写好一个class,让这些效果完全都达到了,然后用js来切换className么?
但是在点击事件里面,把所有的css效果写进去? QUQ
问题解答
回答1:<!DOCTYPE html><html><head><meta charset='utf-8'> <title></title><style> p{ width:100px; height:100px; background:red; transition:all 5s;}p:hover{ width:300px;} #p1{position:relative;width:100px;height:100px; } #p2{position:absolute;width:100%;height:100%;background:#0f0; } #p2.p2{width:200%;height:200%; }</style></head><body><input type=’button’ id=’btn1’/><p><b>注意:</b>该实例无法在 Internet Explorer 9 及更早 IE 版本上工作。</p><p></p> <p id=’p1’><p id=’p2’></p> </p><p>鼠标移动到 p 元素上,查看过渡效果。</p></body> <script>window.onload=function(){ var oBtn=document.getElementById('btn1'),op=document.getElementById('p2'); oBtn.onclick=function(){op.className=’p2’; }}</script></html>
给你个简单的demo看完就会了,这也只是方法中的一种,方法还有很多!
回答2:你要的是这样么?代码见下方, p 5s移动到500px,可以先给p设置好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;}
<p class='demo'> </p>
(function(){ document.getElementsByClassName(’demo’)[0].onclick = function(){this.className +=’ run’; };})()回答3:
可以用css,也可以直接用js写。css的话就用transition写,具体的百度,点击事件发生时为元素添加一个class,改变样式。js的话就用settimeout,以你说的左边距为例,一点一点改变左边距,到达指定值时停止即cleartimeout
回答4:如楼上所说,如果是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)}回答5:
一般都是用css3的transition实现过渡效果,要动画的话用animation,使用js比较耗性能,这里有一些参考文章
回答6:css3d属性
相关文章:
1. python - Django表单Form.save()问题2. php为什么是源程序显示?3. linux - mysql 数据库经常报错挂掉4. javascript - video标签播放mp4视频自动暂停?5. mysql在限制条件下筛选某列数据相同的值6. 老师,flex-shrink: 1; 按视频操作,不会自动缩放7. html5 - node静态资源服务器设置了Cache-Control,但浏览器从来不走3048. java - springMVC 自动组装相关问题。9. html5 - 在HBuilder中打包Android的apk包出错,不知道是什么原因。10. python - 多线程小白求问这样的IP要怎么实现多线程print?

网公网安备