一、让div动起来

var oBtn = document.getElementById('btn1');
  var timer='';//设置定时器
oBtn.onclick=function startMove(){
  var oDiv = document.getElementById('div1');

  clearInterval(timer);//关闭原有的定时器,否则多个定时器会叠加
  timer=setInterval(function(){
    var iSpeed=3;
    if(oDiv.offsetLeft>=208){
      clearInterval(timer);
    }else{
    oDiv.style.left=oDiv.offsetLeft+iSpeed+'px';
    }

  },30);
}

二、‘分享到’侧边栏

var timer=null;
function startMove(iTarget,iSpeed){
  var oDiv = document.getElementById('div1');
  clearInterval(timer);
  timer=setInterval(function(){
    if(oDiv.offsetLeft==iTarget){
      clearInterval(timer);
    }else{
      oDiv.style.left=oDiv.offsetLeft+iSpeed+'px';
    }
  },30);
}

window.onload=function(){
  var oDiv = document.getElementById('div1');
  oDiv.onmouseover=function(){
    startMove(0,10);
  }
  oDiv.onmouseout=function(){
    startMove(-100,-10);
  }

}

三、图片淡入淡出效果

var timer=null;
var alpha=30;
function startMove(iTarget,iSpeed){
  var oImg = document.getElementById('img1');
  clearInterval(timer);
  timer=setInterval(function(){
    if(alpha==iTarget){
      clearInterval(timer);
    }else{
      alpha+=iSpeed;document.title=alpha;
      oImg.style.filter='alpha(opacity:'+alpha+')';
      oImg.style.opacity=alpha/100;
    }
  },30);
}

window.onload=function(){
var oImg = document.getElementById('img1');
oImg.onmouseover=function(){
  startMove(100,5);
}
oImg.onmouseout=function(){
  startMove(10,-5);
}

四、实现缓动效果

var oBtn = document.getElementById('btn1');
var timer='';
oBtn.onclick=function startMove(iTarget){
  var oDiv = document.getElementById('div1');

  clearInterval(timer);
  timer=setInterval(function(){
     var iSpeed=(300-oDiv.offsetLeft)/8;//缓动效果
    iSpeed=iSpeed>0?Math.ceil(iSpeed):Math.floor(iSpeed);//消除小数点值的bug
    document.title=iSpeed+'/'+oDiv.offsetLeft;
    if(oDiv.offsetLeft==300){
      clearInterval(timer);
    }else{
      oDiv.style.left=oDiv.offsetLeft+iSpeed+'px';
    }

  },30);
}

五、缓动侧边栏

var timer=null;
function startMove(iTarget){
  var oDiv=document.getElementById('div1');
  clearInterval(timer);
  timer=setInterval(function(){
    var iSpeed=(iTarget-oDiv.offsetTop)/8;
    iSpeed=iSpeed>0?Math.ceil(iSpeed):Math.floor(iSpeed);

    if(oDiv.offsetTop==iTarget){
      clearInterval(timer);
    }else{
      oDiv.style.top=oDiv.offsetTop+iSpeed+'px';
    }
  },30);
}
window.onscroll=function(){
var oDiv = document.getElementById('div1');
var scrollTop=document.documentElement.scrollTop||document.body.scrollTop;

var t=scrollTop+(document.documentElement.clientHeight-oDiv.offsetHeight)/2;

startMove(parseInt(t));//消除抖动

}

六、匀速运动停止条件:与目标点无限接近即可

timer=setInterval(function(){
      var iSpeed=0;

    if(oDiv.offsetLeft<iTarget){

      iSpeed=7

    }else{

      iSpeed=-7

    }

    if(Math.abs(oDiv.offsetLeft-iTarget)<7){//是否到达终点
      clearInterval(timer);

      oDiv.style.top=iTarget+'px';

    }else{
        oDiv.style.top=oDiv.offsetLeft+iSpeed+'px';
    }
  },30);

js基础之动画(一)的更多相关文章

  1. GSAP JS基础教程--动画的控制及事件

    好多天没有写无博文啦,今天无聊就再写一下! 今天要讲的是TweenLite的一些事件以及,TweenLite动画的控制,TweenMax类似,请自行参考官方文档:http://api.greensoc ...

  2. js基础之动画(三)

    一.链式运动 首先,要改进运动框架 function getStyle(obj,attr){ if(obj.currentStyle){ return obj.currentStyle[attr]; ...

  3. js基础之动画(二)

    一.多物体同时运动 栗子一:多个Div,鼠标移入变高,动态下拉菜单 function startMove(obj,iTarget){  clearInterval(obj.timer); obj.ti ...

  4. Web3D编程入门总结——WebGL与Three.js基础介绍

    /*在这里对这段时间学习的3D编程知识做个总结,以备再次出发.计划分成“webgl与three.js基础介绍”.“面向对象的基础3D场景框架编写”.“模型导入与简单3D游戏编写”三个部分,其他零散知识 ...

  5. js基础查漏补缺(更新)

    js基础查漏补缺: 1. NaN != NaN: 复制数组可以用slice: 数组的sort.reverse等方法都会改变自身: Map是一组键值对的结构,Set是key的集合: Array.Map. ...

  6. day51 JS基础

    复习 1.字体图标 用i标签, 设置类名, 与第三方字体图标库进行图标匹配 <link rel="stylesheet" href="font-awesome-4. ...

  7. 10慕课网《进击Node.js基础(一)》初识promise

    首先用最简单的方式实现一个动画效果 <!doctype> <html> <head> <title>Promise animation</titl ...

  8. SVG.js 基础图形绘制整理(二)

    一.折线 var draw = SVG('svg1').size(300, 300); //画折线 //使用字符串点 // var polyline=draw.polyline('0,0 100,50 ...

  9. GSAP JS基础教程--TweenLite操作元素的相关属性

    今天来学习用TweenLite操作元素的各种属性,以Div为例,其他元素的操作也是一样的,只是可能一些元素有它们的特殊属性,就可能不同罢了.   代码里用详细注释,我就不再重复啦,大家看代码就可以啦! ...

随机推荐

  1. 流媒体基础实践之——RTMP和HLS分发服务器nginx.conmf配置文件(解决了,只能播放RTMP流而不能够播放HLS流的原因)

    user www www; worker_processes ; error_log logs/error.log debug; #pid logs/nginx.pid; events { worke ...

  2. linux终端下 编译c语言程序

    linux终端下,编译C语言程序步骤为: 采用vi进行源代码编写,编写完成后,:wq存盘退出,如: vi test.c 在命令行下,运行gcc编译程序,生成执行码,如: gcc  -o test te ...

  3. DDL之操作表

    DDL之操作表 DDL是数据定义语言,用来定义数据库对象:数据库.表.列等.其中定义数据库我们已经在DDL之操作数据库中详细讲解了,今天我们来学习使用DDL操作表. 1.创建表 使用数据定义语言创建表 ...

  4. laravel各种路径的获取方法

    若Route中有Route::get('home/test', 'HomeController@index')->name('test'); ①视图中的href跳转 一.<a href=& ...

  5. nexus 2.6需要jdk7才能跑起来

    Java 6 Support EOLOracle's support for Java 6 ended in February 2013.  Consequentially as of version ...

  6. Javascript 弱类型:除法结果是小数

    由于javascript是弱类型,只有一种var类型,所以在运算时不会自动强制转换,所以计算的结果是多少就是多少,但java中的17/10的结果就是1(强类型与弱类型)比如:console.log(M ...

  7. 20160808_卸载OpenJDK

    1.查看信息 [root@localhost ~]# rpm -qa | grep jdkjava-1.6.0-openjdk-devel-1.6.0.0-1.50.1.11.5.el6_3.x86_ ...

  8. 利用php CI force_download($filename, $data) 下载.csv 文件解决文件名乱码,文件内容乱码

    利用php CI force_download($filename, $data) 下载.csv 文件解决文件名乱码,文件内容乱码 2014-07-31 12:53 1047人阅读 评论(0) 收藏  ...

  9. 删除内容并不能删除field structure -- features_revert

    把内容删了但field structure还在, 在manage_field界面,field还在.http://drupal.stackexchange.com/questions/21501/rev ...

  10. linux下创建管理员组&nbsp;使用&nbsp;su&nbsp;-&nbsp;命令

    通常情况下,用户通过执行“su -”命令.输入正确的root密码,可以登录为root用户来对系统进行管理员级别的配置.但是,为了更进一步加强系统的安全性,有必要建立一个管理员的组,只允许这个组的用户来 ...