前言:         本人纯小白一个,有很多地方理解的没有各位大牛那么透彻,如有错误,请各位大牛指出斧正!小弟感激不尽.         本篇文章为您分析一下原生JS写 匀速运动.缓冲运动.多物体运动.多物体不同值运动.多物体多值运动         层层深入,到封装插件 基本功能: 补充: 补充中...... HTML结构[匀速运动] <div id="div"></div> <button id="btn">run</…
前言:         本人纯小白一个,有很多地方理解的没有各位大牛那么透彻,如有错误,请各位大牛指出斧正!小弟感激不尽.         本篇文章为您分析一下原生JS写加速度运动.弹性运动.重力场运动(多方向+碰撞检测+重力加速度+能量损失运动)拖拽运动         层层深入,到封装插件 HTML结构[加速度运动] <div id="oDiv"></div> CSS样式[加速度运动] #oDiv { position: absolute; left: 0p…
最新学了一个新的运动函数,与最初学习的有所不同,第一个运动是根据运动速度完成运动 ,第二个则是根据运动的时间来完成运动,而且把之前的函数都进行了一些兼容处理,在这里列出了看一下: 第一种animate1 1 function animate1(obj,data,rate,fn){//运动对象,运动数据,[运动速度],[回调函数] 2 //遍历获取样式属性 3 for(var key in data){ 4 //通过闭包将key私有化 5 (function(k){ 6 /* 7 获得样式宽高等会…
/*讲时间运动之前先给大家复习一下运动函数 通常大家都会写运动框架,一个定时器(Timer),一个步长(step 就是每次运动的距离),一个当前位置(current)一个目标位置(target),然后判断一下当前位置加上步长和目标位置的关系就可以了 就可以了. 简写就是这样呗*/ var obj=document.getElementById("div"); /*想要获取元素当前的位置,是要获取CSS的,obj.style.left="25"px;这样是OK的,没有…
// 运动函数 function starMove(obj,json,fnEnd){ clearInterval(obj.timer); obj.timer  = setInterval(function(){ var bStop = true; for(var name in json){ var iTarget = json[name]; // 目标点 if(name = 'opacity'){ var cur = parseInt(parseFloat(getStyle(obj,name)…
本次练习错误总结: 1.  正确: startMove( document.documentElement.clientHeight - oDiv.offsetHeight + scrollTop); 错误: startMove(document.documentElement.clientHeight - oDiv.offsetTop + scrollTop); startMove(iTarget); 这个函数的目标点 iTarget 应该是 可视窗高度 – div的高度 + 滚动条上方的滚动…
@ 目录 阶段一.仅适用单位带px属性的匀速运动 阶段二.可适用单位不带px属性(如opacity)的匀速运动 阶段三.适用于多元素单一属性的匀速运动 阶段四.适用于多元素单一属性的匀速或缓冲运动 阶段五.适用于多元素多属性的匀速或缓冲运动 总结 本文采取逐步深入的方式讲解原生JS封装运动函数的过程, 封装结果适用于元素大部分属性的运动, 运动方式将根据需求持续更新,目前主要支持常用的两种:匀速运动和缓冲运动. 阶段一.仅适用单位带px属性的匀速运动 效果图: 封装思路: 传入需要运动的属性at…
在我们日常生活中运动就是必不可少的部分,走路.跑步.打篮球等.在网页交互设计上运动也是必不可少的部分,创建的网站交互设计运动模块有轮播图,下拉菜单,还有各种炫酷的游戏效果都跟运动密切相关.所以很重要,所以不废话了,先来分析一下运动这个功能的几个核心组成部分吧. 一.运动功能的核心组成部分: 位置变化: 1.位置从一个位置到达另一个位置: 2.位置变化有可视的变化过程: 3.位置变化具有可控的方向性: 速度变化: 1.运动的速度是可变的: 2.运动的是可控的,比如暂停,减速,加速,继续运动 大小透…
封装好的运动函数: 1.能控制目标元素的多种属性 2.能自动获取元素的样式表: 3.获取样式函数兼容 4.能对于元素的多属性进行动画(缓动动画)修改 5.能区分透明度等没单位的属性和px属性的变化 animate.js /** * 获取样式函数 * @param element 要获取的样式的对象 * return 目标css样式对象 * */ function getStyle(element) { if(window.getComputedStyle) { return window.get…
JS对象继承篇 ECMAScript只支持实现继承,而且其实现继承主要是依靠原型链来实现的 原型链 其基本思路是利用原型让一个引用类型继承另一个引用类型的属性和方法 function Person(){ this.name = "Person"; } Person.prototype.getName = function(){ return this.name; }; function SuperPerson(name,sex){ this.name = name; this.sex…