JS中的基本运动逻辑思想总结
总结一下自己今天学习运动的基本思想:‘
【1】对于移动的div,使其在某一个位置停止将其封装成一个函数,仅仅改变speed的正负即可
涉及到问题包括:
var time=null;
function startMove(target)
{
var oDiv=document.getElementById('div');
clearInteral(time);//清除定时器
time=setInteral(function()
{
var speed=0;
if(oDiv.offsetLeft<target){speed=正数;}
else{speed=负数;} //考虑刚开始的div在目标值的左边还是右边
if(oDiv.offsetLeft==target){clearInteral(time);}
else{oDiv.style.Left=oDiv.offsetLeft+speed+'px';}
},30);
}
【2】淡入淡出图片的制作,借助变量存储值。
var alpha=30;//存储变量值
var time=null;
function startMove(target)
{
var img=document.getElementById('img1');
clearInterval(time);
time=setInterval(function()
{
var speed=0;
if(alpha<target){speed=1;}
else{speed=-1;}
if(alpha==target){clearInterval(time);}
else{
alpha+=speed;
img.style.opacity=alpha/100;//火狐下为opacity:0-1之间的值 而IE为:filter:alpha(opacity=30);0-100之间的数值
document.title=alpha;
}
},30);
}
【3】侧边栏分享的制作过程,同上面【1】一样,主要是改变Left的值 设为0或-100,添加鼠标移入移出事件。
【4】缓慢运动的基本思想和上面差不多,但speed是个变值,speed=目标值-原值
var time=null;
function startMove(target)
{
var oDiv=document.getElementById('div');
clearInteral(time);//清除定时器
time=setInteral(function()
{
var speed=(target-oDiv.setoffLeft)/固定系数;//这里固定系数可以为任意数如:7,8.....................等
speed=speed>0?Math.ceil(speed):Math.floor(speed);//ceil 是向上取整 floor是向下取整 之所以取整是避免与目标值出现小偏差。
if(oDiv.offsetLeft==target){clearInteral(time);}
else{oDiv.style.Left=oDiv.offsetLeft+speed+'px';}
},30);
}
【5】右边栏的分享div保持与滚动条替丁的距离,缓慢停止的过程。
1:首先得到滚动条的距离:scrollTop=document.documentElement.scrollTop||document.body.scrollTop
2:得到div与可视区之间的距离:var t=(document.documentElement.clientHeight-oDiv.offsetHeight)/2
3:div的高为:oDiv.style.top=t+scrollTop+'px';这里需要使用paresint()函数将高转换为整数
window.onscroll=function ()------注意这里涉及到滚动条是windon.onscroll事件
{
var oDiv=document.getElementById('div1');
var scrollTop=document.documentElement.scrollTop||document.body.scrollTop;
var t=scrollTop+(document.documentElement.clientHeight-oDiv.offsetHeight)/2+'px';
startMove(parseInt(t)); //将其转换为整数,避免滚动条上下抖动
}
var time=null;
function startMove(target)
{
var oDiv=document.getElementById('div1');
clearInterval(time);
time=setInterval(function()
{
var speed=(target-oDiv.offsetTop)/8;
speed=speed>0?Math.ceil(speed):Math.floor(speed);
if(oDiv.style.top==target){clearInterval(time);}
else{oDiv.style.top=oDiv.offsetTop+speed+'px';}
txt1.value=oDiv.offsetTop+',目标:'+target;
},30);
}
JS中的基本运动逻辑思想总结的更多相关文章
- 研究分析JS中的三种逻辑语句
JS中的三种逻辑语句:顺序.分支和循环语句. 一.顺序语句 代码规范如下:1. <script type="text/javascript"> var a = 10; ...
- JS中循环逻辑和判断逻辑的使用实例
源代码见: https://github.com/Embrace830/JSExample &&和||的理解 a || b:如果a是true,那么b不管是true还是false,都返回 ...
- js中数据操作的某些思想
1,默认数据的复用 写成function的return形式缓存在变量中,用的时候直接执行fun就行了 例如 有文件text.js里面的对象是export default ()=>({aa:55, ...
- js中写laravel模板blade语法和PHP逻辑解决方法
在js中是否能够执行blade的语法?或者说在js中能否处理PHP逻辑呢? 答案是,当然的 下面来看需求:在提交表单,完成入库操作后,使用 return redirect(route('admin.u ...
- js中的this介绍
今天跟大家一起简单的来了解一下js中一个有趣的东西,this. 在js中我们用面向对象的思想去编写的时候,各个模块之间的变量就不那么容易获取的到了,当然也可以通过闭包的方式拿到其他函数的变量,如果说每 ...
- Dynamic CRM使用FetchXML在js中查询与调用传递编码问题
在页面交互脚本js中实现窗体交互逻辑是很常见的crm场景,一般情况下使用拓展工具RESTBuilder编辑器,可以很方便的进行操作,增删改查均能实现,但在某些较为特殊的场景下,需要根据条件去拼接查询过 ...
- 讲讲js中的逻辑与(&&)以及逻辑或(||)
前几天看到一个函数,百思不得其解,今天早上醒来看了本js的书,正好讲到操作符的用法,给大家分享下js中的&&,||,和我们用的其他的编程语言还是有点区别的. 直接上那个函数的代码: f ...
- 谈一谈原生JS中的【面向对象思想】
[重点提前说:面向对象的思想很重要!] 最近开始接触学习后台的PHP语言,在接触到PHP中的面向对象相关思想之后,突然想到之前曾接触的JS中的面向对象思想,无奈记性太差, ...
- js中的逻辑与(&&)与逻辑或(||)
var foo = 1; var bar = 0; var tar = false; var baz = 2; 一.js中的逻辑与(&&) 1.当第一个数为true时,返回第二个数: ...
随机推荐
- .NET破解之太乐地图下载器【非暴破】
不知不觉,接触破解逆向已经三个月了,从当初的门外汉到现在的小白,这个过程只有经历过才知道其中的苦与乐: 有无知.困惑.痛苦.惊喜.彻悟.欣慰…… 有无助的软件脱壳,茫然的代码分析,有无趣的反复测试, ...
- Atitit.病毒木马程序的感染 传播扩散 原理
Atitit.病毒木马程序的感染 传播扩散 原理 1. 从木马的发展史考虑,木马可以分为四代 1 2. 木马有两大类,远程控制 vs 自我复制传播1 3. 自我复制2 3.1. 需要知道当前cpu ...
- arcgis union 0x80040218
我利用ArcGis中的union工具将两张图层叠加时,系统总是提示失败,这是什么原因?希望高手能够解决这个问题.图片是系统提示,表示看不懂哪里出错了? 你必须使用数据管理-要素-修复几何,源数据存在不 ...
- andriod arcgis保存Mapview为图片
/** * 把一个View的对象转换成bitmap */ private Bitmap getViewBitmap(MapView v) { v.clearFocus(); v.setPressed( ...
- 高性能JS笔记2——数据存取
数据存取性能而言: 字面量>本地变量>数组元素>对象成员 一.标识符解析的性能 标识符解析是有代价的,一个标识符的位置越深,它的读写速度也就越慢. 局部变量的读写速度是最快的,全局变 ...
- 关于Kb/s,KB/s的一些知识
我们常见的有KB/s和Kb/s两种 1,Kb/s也就是Kbps.这里面小写的b是bit(比特)的缩写,是位的意思.一个位就是二进制的0或者1.一般代表传输单位,p就是/号,s是秒.bps就是b/s=比 ...
- 提高Objective-C代码质量心机一:简化写法
提高OC代码质量的小心机 一.OC特性 OC 为 C 语言添加了面向对象特性,是其超集; OC 使用动态绑定的消息结构,也就是,在运行时才会检查对象类型; 接收一条消息后,究竟应执行何种代码,由运行期 ...
- 苹果手机不进post方法
今天遇到一个问题,开发的公众号中的一个界面在安卓和微信开发者工具中可以正常显示,在苹果手机中加载不出数据. 以下是部分代码: var start = 0; var limit = 15; var ca ...
- OC语言-08-深拷贝与浅拷贝详解(示例)
概述 拷贝:复制一个与源对象内容相同的对象 实现拷贝,需要遵守以下两个协议 NSCopying NSMutableCopying 拷贝返回对象的种类 可变,mutableCopy消息返回的对象 不可变 ...
- 深入理解java虚拟机(2)------垃圾收集器和内存分配策略
GC可谓是java相较于C++语言,最大的不同点之一. 1.GC回收什么? 上一篇讲了内存的分布. 其中程序计数器栈,虚拟机栈,本地方法栈 3个区域随着线程而生,随着线程而死.这些栈的内存,可以理解为 ...