基于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 相关文章推荐
为jQuery.Treeview添加右键菜单的实现代码
Oct 22 Javascript
鼠标右击事件代码(asp.net后台)
Jan 27 Javascript
jquery.fileEveryWhere.js 一个跨浏览器的file显示插件
Oct 24 Javascript
jsvascript图像处理—(计算机视觉应用)图像金字塔
Jan 15 Javascript
JS简单的图片放大缩小的两种方法
Nov 11 Javascript
jquery ajax传递中文参数乱码问题及解决方法说明
Feb 07 Javascript
jQuery+CSS3文字跑马灯特效的简单实现
Jun 25 Javascript
原生js实现放大镜特效
Mar 08 Javascript
Makefile/cmake/node-gyp中区分判断不同平台的方法
Dec 18 Javascript
node.js微信小程序配置消息推送的实现
Feb 13 Javascript
ES6 Object方法扩展的应用实例分析
Jun 25 Javascript
解决vue项目运行提示Warnings while compiling.警告的问题
Sep 18 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
解决ThinkPHP下使用上传插件Uploadify浏览器firefox报302错误的方法
2015/12/18 PHP
WordPress主题中添加文章列表页页码导航的PHP代码实例
2015/12/22 PHP
html中table数据排序的js代码
2011/08/09 Javascript
javascript 另一种图片滚动切换效果思路
2012/04/20 Javascript
js实现运动logo图片效果及运动元素对象sportBox使用方法
2012/12/25 Javascript
javascript的解析执行顺序在各个浏览器中的不同
2014/03/17 Javascript
JavaScript实现向setTimeout执行代码传递参数的方法
2015/04/16 Javascript
JavaScript实现算术平方根算法-代码超简单
2015/09/11 Javascript
网页挂马方式整理及详细介绍
2016/11/03 Javascript
微信小程序 this和that详解及简单实例
2017/02/13 Javascript
angularjs+bootstrap实现自定义分页的实例代码
2017/06/19 Javascript
vue自定义指令之面板拖拽的实现
2019/04/14 Javascript
微信小程序云开发之使用云存储
2019/05/17 Javascript
小程序实现悬浮搜索框
2019/07/12 Javascript
Vue实例的对象参数options的几个常用选项详解
2019/11/08 Javascript
vue+elementui实现点击table中的单元格触发事件--弹框
2020/07/18 Javascript
Flexible.js可伸缩布局实现方法详解
2020/11/13 Javascript
[01:07:19]DOTA2-DPC中国联赛 正赛 CDEC vs XG BO3 第一场 1月19日
2021/03/11 DOTA
python中函数传参详解
2016/07/03 Python
python安装教程 Pycharm安装详细教程
2017/05/02 Python
python中import reload __import__的区别详解
2017/10/16 Python
浅谈Tensorflow模型的保存与恢复加载
2018/04/26 Python
django rest framework serializer返回时间自动格式化方法
2020/03/31 Python
详解python tcp编程
2020/08/24 Python
python3字符串输出常见面试题总结
2020/12/01 Python
CSS3按钮鼠标悬浮实现光圈效果源码
2016/09/11 HTML / CSS
美国Rue La La闪购网站:奢侈品、中高档品牌限时折扣
2016/10/19 全球购物
Stuart Weitzman欧盟:美国奢华鞋履品牌
2017/05/24 全球购物
销售人员中英文自荐信
2013/09/22 职场文书
入党积极分子介绍信
2014/01/17 职场文书
安全例会汇报材料
2014/08/23 职场文书
小学生学习保证书
2015/02/26 职场文书
2019年员工晋升管理制度范本!
2019/07/08 职场文书
mysql在项目中怎么选事务隔离级别
2021/05/25 MySQL
vue+element ui实现锚点定位
2021/06/29 Vue.js
Python实现Matplotlib,Seaborn动态数据图
2022/05/06 Python