问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

怎样在javascript里面使用buffer

发布网友 发布时间:2022-05-14 22:47

我来回答

2个回答

懂视网 时间:2022-05-15 03:08

这篇文章主要介绍了JS实现运动缓冲效果的封装函数,涉及JavaScript时间函数与数值运算相关操作技巧,需要的朋友可以参考下

本文实例讲述了JS实现运动缓冲效果的封装函数。分享给大家供大家参考,具体如下:

之前经常写运动函数,要写好多好多,后来想办法封装起来。(运动缓冲)。

/*
 物体多属性同时运动的函数
 obj:运动的物体
 oTarget:对象,属性名为运动的样式名,属性值为样式运动的终点值
 ratio:速度的系数
*/
function bufferMove(obj, oTarget, fn,ratio = 8) {
 clearInterval(obj.iTimer);
 obj.iTimer = setInterval(function () {
 // 此处设定开关bBtn,假设所有的属性均已运动完毕true
 var bBtn = true;
 for(var sAttr in oTarget){
 // 获取当前值,此处兼容透明度的变化
 if(sAttr === 'opacity') {
 var iCur = parseFloat(getStyle(obj, sAttr) * 100);
 } else {
 var iCur = parseInt(getStyle(obj, sAttr));
 }
 // 计算速度,此处可判定方向,如向左或向右,先透明后出现或先出现后透明等
 var iSpeed = (oTarget[sAttr] - iCur) / ratio;
 iSpeed = iSpeed > 0 ? Math.ceil(iSpeed) : Math.floor(iSpeed);
 // 计算下一次的值
 var iNext = iCur + iSpeed;
 // 赋值给对应样式
 if(sAttr ==='opacity') {
 obj.style.opacity = iNext / 100;
 obj.style.filter = 'alpha(opacity=' + iNext +')';
 } else {
 obj.style[sAttr] = iNext + 'px';
 }
 // 清除定时器,当前的位置和终点值是否相等,相等则说明结束
 if(iNext !== oTarget[sAttr]) {
 bBtn = false;
 }
 }
 // 如果bBtn的值为true,则说明所有的属性均已运动完毕,回调函数fn()
 if(bBtn) {
 clearInterval(obj.iTimer);
 if(fn){
 fn();
 }
 }
 }, 50);
}

以上封装函数也可以用于单个属性,多样式运动,比如:

bufferMove(obj,{"left":200,"width":400,"opacity":80},fn,8);

上面是我整理给大家的,希望今后会对大家有帮助。

相关文章:

改变vue请求过来的数据中的某一项值的方法

JavaScript满天星导航栏实现方法

vue.js的computed,filter,get,set的用法及区别详解

热心网友 时间:2022-05-15 00:16

概述
ArrayBuffer (缓冲数组)是一种用于呈现通用、固定长度的二进制数据的类型。不能直接构造并填充 ArrayBuffer 的内容,而应该先创建一个 ArrayBufferView 对象,该对象用具体的格式来呈现 ArrayBuffer 的内容,你可以使用此对象来读写 ArrayBuffer 的内容。
方法概要

ArrayBuffer ArrayBuffer(unsigned long length);

方法
ArrayBuffer()
构造方法接收一个数字参数,作为新数组的长度,返回新创建的 ArrayBuffer 对象。

ArrayBuffer ArrayBuffer(
unsigned long length
);

参数
  length
要创建的数组的大小。
返回值
新创建的 ArrayBuffer 对象,该对象具有 length 的大小,所有位置均被初始化为 0。
slice()
返回一个新的 ArrayBuffer 对象,它的内容是从当前 ArrayBuffer 的 begin 到 end 位置的备份。
负数的 begin 或 end 值指示从数组末端计数的索引。

ArrayBuffer slice(
unsigned long begin
unsigned long end Optional
);
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
如何理解“时间就是空间,空间就是时间”? 办公室副主任竞聘演讲稿范文 学校办公室主任竞聘演讲稿范文 最新办公室主任竞聘演讲稿 办公室主任竞聘演讲稿优秀范文 ...堆墨现象,墨线 接地和粘度都正常,请问应如何解决 ...都正常了开始喷印结果喷一条墨线好恐怖怎么解决呀各位老师 威力喷码机 求一份学生会演讲词 大学学生会个人优秀演讲稿 防盗门窗安装合同应当按照“加工承揽合同”还是“建筑安装工程承包合同”缴纳印花税 哄媳妇别生气的顺口溜 初中生情侣媳妇生气了说点真心话哄她的句子 灵魂摆渡黄小仙扮演者 推荐一下,有哪些好看的网剧? 怎么360浏览器打开一个网页要跳出一个新窗口,不是直接在一个窗口显示网页内容呢?怎么修改? 灵魂摆渡第三季什么时候播出,等不及了, 有人知道内情吗 灵魂摆渡2那一集在冬青房间变出了天女的分身 18周岁生日怎么过才好 18岁的生日该怎么过才好玩呢? 灵魂摆渡2萌萌爸的扮演者是谁 18岁的生日party,到底要怎么过才好??急!!! 灵魂摆渡1萌萌是谁演的 灵魂摆渡第16集借尸为什么最后萌萌受惩罚? 灵魂摆渡借尸为什么要亲萌萌 灵魂摆渡为什么要亲萌萌 孩子过18岁生日,去哪个饭店好呢 关于同学过18岁生日去哪过比较好? 女儿十八岁生日在别人家过好吗 仲裁是啥 中国做城乡规划领先的公司是谁? 火柴和打火机的火焰属于明火。对不对 打火机在高温下爆炸会产生明火么? 为什么晚上摔一次性打火机在地上有火光?百度上大部分人说一次性打火机爆炸没有明火!到底有还是没有? 打火机爆炸不能产生明火,但是可以一瞬间达到一个很高的温度,那可以把汽油点燃吗? 一次性打火机爆炸有明火吗,会引起火灾吗?热源。 问:问:打火机会不会自爆啊,打火机掉家里找不到了,会不会自爆引起火灾,爆炸会不会有明火?导致火灾 防风打火机和明火哪个更安全 女生寝室内自创打火机烤虾,此举是否存在安全隐患? 浙江学生读大学户口需要迁出吗?可以不迁出吗?如果不迁出的话是不是会有什么问题啊? 奥麦防风打火机出的是明火怎么调试? 想送爸爸一个打火机,不知道哪个好?防风的,明火的,煤油的,这个有什么优缺点呢?希望高手指点! 读大学的时候为什么要迁户口啊 读大学要迁户口到学校吗 异地读大学可以不迁户口吗? _百度问一问 如何用date修改系统时间 用c++编程定义日期类Date,并且为Date类提供设置日期,获取年月日,打印日期的方法。 合拍红包是真的还是假的? 有没有视频显示比例转换的软件?