基于JavaScript实现百叶窗动画效果不只单纯flas可以实现


Posted in Javascript onFebruary 29, 2016

看到这种什么百叶窗的动画,以为都是flash实现的,最近突然灵光一闪,想到了用js实现(虽然我不是做前端的,本人做.net)。代码虽然实现了,但是比较乱,先上个图:

基于JavaScript实现百叶窗动画效果不只单纯flas可以实现

一个js的动画,以前以为只有flash可以实现

代码主要就是一些数学的计算,然后结合html,css打造出类似flash的效果。

下面贴出主要的部分代码:

function all(books){
for(var i=;i<self.rows;i++) {
for (var j = ; j < self.columns; j++) {
if(!books[i][j])return false;
}
}
return true;
}
function resetBooks(books){
for(var i=;i<self.rows;i++) {
for (var j = ; j < self.columns; j++) {
books[i][j]=false;
}
}
return true;
}
var self=this,timer=null,_iindex= ;
var initdir=[[[,],[,]],[[-,],[,]],[[,-],[-,]],[[,-],[,]],[[,-],[,],[,],[-,]]],dir=initdir[];
var weight=[,,,,];
var initpos=[[{x:,y:-}],[{x:self.columns-,y:-}],[{x:self.columns-,y:self.rows}],[{x:,y:self.rows}],[{x:self.columns/,y:self.rows/}]];
timer=setInterval(function(){
var n=[];
for(var i=;i<self.preDivs.length;i++){
var _div=null,x= ,y=;
for(var j=;j<dir.length;j++){
x=self.preDivs[i].x+dir[j][];
y=self.preDivs[i].y+dir[j][];
if(x>=&&y>=&&x<self.columns&&y<self.rows&&!self.books[y][x]){
self.books[y][x]=true;
_div=self.zzDivStatck[y][x];
n.push({x:x,y:y});
_div.style.backgroundImage = "url(" + self.zzImages[_iindex] + ")";
_div.style.backgroundPositionX = (-x * self.zzDivW) + "px ";
_div.style.backgroundPositionY = (-y * self.zzDivH) + "px";
}
}
}
self.preDivs=n;
if(all(self.books)){
resetBooks(self.books);
var _r=util.randomWeight(weight);
self.preDivs = initpos[_r];
dir=initdir[_r];
_iindex++;
}
if(_iindex>=+self.zzImages.length){
_iindex=;
}
},);

以上代码是使用javascript实现的百叶窗动画效果,希望对大家有所帮助!

Javascript 相关文章推荐
一个封装js代码-----展开收起效果示例
Jul 03 Javascript
javascript去掉前后空格的实例
Nov 07 Javascript
jQuery is()函数用法3例
May 06 Javascript
jQuery使用slideUp方法实现控制元素缓慢收起
Mar 27 Javascript
js实现匹配时换色的输入提示特效代码
Aug 17 Javascript
js与jquery正则验证电子邮箱、手机号、邮政编码的方法
Jul 04 Javascript
JS 根据子网掩码,网关计算出所有IP地址范围示例
Apr 23 Javascript
详解vue-Resource(与后端数据交互)
Jan 16 Javascript
ES6数组的扩展详解
Apr 25 Javascript
JavaScript多线程运行库Nexus.js详解
Dec 22 Javascript
详解微信JS-SDK选择图片遇到的坑
Aug 15 Javascript
webpack HappyPack实战详解
Oct 08 Javascript
ClearTimeout消除闪动实例代码
Feb 29 #Javascript
JavaScript实现点击按钮字体放大、缩小
Feb 29 #Javascript
jquery trigger函数执行两次的解决方法
Feb 29 #Javascript
理解js回收机制通俗易懂版
Feb 29 #Javascript
jquery trigger实现联动的方法
Feb 29 #Javascript
基于Javascript实现返回顶部按钮
Feb 29 #Javascript
JavaScript实现斗地主游戏的思路
Feb 29 #Javascript
You might like
人族 Terran 魔法与科技
2020/03/14 星际争霸
咖啡风味 世界咖啡主要分布分布 咖啡的生长要求
2021/03/06 新手入门
php中常用编辑器推荐
2007/01/02 PHP
php文件打包 下载之使用PHP自带的ZipArchive压缩文件并下载打包好的文件
2012/06/13 PHP
ThinkPHP之foreach标签使用概述
2014/06/30 PHP
ThinkPHP中session函数详解
2016/09/14 PHP
php常用数组函数实例小结
2016/12/29 PHP
PHP 超级全局变量相关总结
2020/06/30 PHP
JavaScript与DOM组合动态创建表格实例
2012/12/23 Javascript
文字溢出实现溢出的部分再放入一个新生成的div中具体代码
2013/05/17 Javascript
遍历DOM对象内的元素属性示例代码
2014/02/08 Javascript
详解jQuery Mobile自定义标签
2016/01/06 Javascript
Bootstrap 源代码分析(未完待续)
2016/08/17 Javascript
微信小程序左右滑动切换页面详解及实例代码
2017/02/28 Javascript
js中的触发事件对象event.srcElement与event.target详解
2017/03/15 Javascript
React Native实现进度条弹框的示例代码
2017/07/17 Javascript
微信小程序列表中item左滑删除功能
2018/11/07 Javascript
element-ui树形控件后台返回的数据+生成组织树的工具类
2020/03/05 Javascript
浅析VUE防抖与节流
2020/11/24 Vue.js
[38:30]2014 DOTA2国际邀请赛中国区预选赛 LGD-GAMING VS CIS 第一场2
2014/05/24 DOTA
浅谈python3中input输入的使用
2019/08/02 Python
深入了解如何基于Python读写Kafka
2019/12/31 Python
Python实现在线批量美颜功能过程解析
2020/06/10 Python
python开发入门——列表生成式
2020/09/03 Python
JMS中Topic和Queue有什么区别
2013/05/15 面试题
大学生冰淇淋店商业计划书
2014/01/14 职场文书
黄河象教学反思
2014/02/10 职场文书
信访工作经验交流材料
2014/05/23 职场文书
求职信范文大全
2014/05/26 职场文书
2015年推普周活动总结
2015/03/27 职场文书
北京青年观后感
2015/06/15 职场文书
pycharm 如何查看某一函数源码的快捷键
2021/05/12 Python
从np.random.normal()到正态分布的拟合操作
2021/06/02 Python
SQL模糊查询报:ORA-00909:参数个数无效问题的解决
2021/06/21 Oracle
html5 录制mp3音频支持采样率和比特率设置
2021/07/15 Javascript
DQL数据查询语句使用示例
2022/12/24 MySQL