JS实现多物体动画

一、多物体边栏弹出动画

<!doctype html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>多物体边栏弹出动画</title>
  <style type="text/css">
  *{margin:0;padding:0;}
  div{width:200px;height:200px;background-color:#ccc;position:absolute;left:-200px;}
  #box2{top:210px;}
  #box3{top:420px;}
  #box4{top:630px;}
  span{display:block;font-size:16px;line-height:30px;font-family:微软雅黑;text-align:center;width:24px;height:60px;background-color:orange;position:absolute;left:200px;top:70px;}
  </style>
  <script type="text/javascript">
    window.onload = function(){
      var box = document.getElementsByTagName(‘div‘);
      for(var i=0;i<box.length;i++){
        box[i].onmouseover = function(){move(this,0);}
        box[i].onmouseout = function(){move(this,-200);}
      }
    }

    function move(obj,aim){
      clearInterval(obj.timer);
      obj.timer = setInterval(function(){
        var spd = spd>=0?Math.ceil((aim-obj.offsetLeft)/10):Math.floor((aim-obj.offsetLeft)/10);
        if(obj.offsetLeft==aim){
          clearInterval(obj.timer);
        }
        else{
          obj.style.left = obj.offsetLeft+spd+‘px‘;
        }
      },30)

    }
  </script>
</head>
<body>
  <div id="box1" style=""><span>分享</span></div>
  <div id="box2" style=""><span>分享</span></div>
  <div id="box3" style=""><span>分享</span></div>
  <div id="box4" style=""><span>分享</span></div>
</body>
</html>

二、多物体透明度渐变动画

<!doctype html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>多物体透明度渐变动画</title>
  <style type="text/css">
  *{margin:0;padding:0;}
  div{width:200px;height:200px;margin:10px;background-color:red;filter:alpha(opacity=30);opacity:0.3;}
  </style>
  <script type="text/javascript">
  window.onload = function(){
    var div = document.getElementsByTagName(‘div‘);
    for(var i=0;i<div.length;i++){
      div[i].onmouseover = function(){chgopa(this,100);}
      div[i].onmouseout = function(){chgopa(this,30);}
      div[i].opa = 30;
    }
  }

  function chgopa(obj,aim){
    clearInterval(obj.timer);
    obj.timer = setInterval(function(){
      var spd = (aim-65)/3.5;
      if(obj.opa==aim){
        clearInterval(obj.timer);
      }
      else{
        obj.opa = obj.opa + spd;
        obj.style.opacity = obj.opa/100;
        obj.style.filter = ‘alpha(opacity=‘ + obj.opa + ‘)‘;
      }
    },30)
  }

  </script>
</head>
<body>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
</body>
</html>
时间: 2024-12-28 20:15:05

JS实现多物体动画的相关文章

JS实现多物体width缓冲运动实例

多物体运动,运动参数不能公用. 这篇文章主要介绍了JS实现多物体缓冲运动实例代码,有需要的朋友可以参考一下 效果: 思路: 利用setInterval计时器进行运动,offsetWidth实现宽度的变动,在用onmouseover将终点和所选中的DIV放入参数再进行缓冲运动. 代码: 代码如下: <head runat="server"> <title></title> <style type="text/css">

JS实现透明度渐变动画

<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>JS实现透明度渐变动画</title> <style type="text/css"> *{margin:0;padding:0;} #box{width:200px;height:200px;background-color

Three.js基础探寻十——动画

本篇将介绍如果使用Three.js进行动态画面的渲染.此外,将会介绍一个Three.js作者写的另外一个库stat.js,用来观测每秒帧数(FPS). 1.实现动画效果 1.1 动画原理 对于Three.js程序而言,动画的实现是通过在每秒中多次重绘画面实现的. 为了衡量画面切换速度,引入了每秒帧数FPS(Frames Per Second)的概念,是指每秒画面重绘的次数.FPS越大,则动画效果越平滑,当FPS小于20时,一般就能明显感受到画面的卡滞现象. 那么FPS是不是越大越好呢?其实也未必

js多个物体运动的问题1

问题2 http://www.cnblogs.com/huaci/p/3854304.html 用js写一个物体的运动很简单.如果一个页面有多个物体在运动,它会不会出问题呢? ok,我们来看一个示例 让多个div变宽 现象:onmouseover时,div宽度变宽:onmouseout时,div恢复原大小 html部分 <div id="div1"></div> <div id="div2"></div> <di

js多个物体运动问题2

问题1 http://www.cnblogs.com/huaci/p/3854216.html 在上一讲问题1,我们可以整理出2点: 1,定时器作为运动物体的属性 2,startMove方法,参数要传递2个:物体,目标值 那么,如果运动物体的属性值改变,是通过一个变量值来改变的话,这时候会有什么问题呢? 示例:多个Div淡入淡出 现象:onmouseover时,透明度降低:onmouseout时,透明度增加 看看它会有什么问题,请看下面代码 html部分: <div id="div1&qu

JS动画之缓冲动画与多物体动画即获取样式的方法

一.缓冲动画Ps1:opacity:所有浏览器都支持 opacity 属性.注释:IE8 以及更早的版本支持替代的 filter 属性.例如:filter:Alpha(opacity=50).Ps2:缓冲运动的速度值一定要转换成整数,不然将到达不了终点,是用Math.ceil(),还是Math.floor(),要看就提情况.Ps3:动画大致模版(思路):            window.onload = function(){            var oDiv = document.g

three.js之让物体动起来方式(一)移动摄像机

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Three框架</title> <script src="../static/three.js-master/build/three.js"></script> <style type="text/css"> div#ca

JS 实现无缝滚动动画原理(初学者入)

这段时间在教培训班的学生使用原生javascript实现无缝滚动的动画案例,做了这个原理演示的动画,分享给自学JS的朋友!博主希望对你们有帮助! 在讲解之前先看一下demo: demo:https://224137748.github.io/JS_warehouse/lunbo/domo.HTML源码:https://github.com/224137748/JS_warehouse/blob/master/lunbo/domo.HTML ps: 上面和下面的滚动进度是一致的,上面红色框是为了演

js加入购物车抛物线动画

天猫将商品加入购物车会有一个抛物线动画,告诉用户操作成功以及购物车的位置,业务中需要用到类似的效果,记录一下实现过程备忘,先上demo 一开始没有想到用抛物线函数去做,也已经忘记还有这么个函数了,想着抛物线本质上就是向右和向上方向各有一个速度(就上面的demo而言),向右的速度匀速,向上的速度递减,减到0后再反方向递增,元素的left和top值随时间递增而改变,元素运动轨迹就是抛物线,这个思路不具备通用性,实现也比较复杂,放弃了. 之后参考了张鑫旭用抛物线函数的实现方式和愚人码头的改进,豁然开朗