基于JavaScript實(shí)現(xiàn)百葉窗動(dòng)畫效果不只單純flas可以實(shí)現(xiàn)
看到這種什么百葉窗的動(dòng)畫,以為都是flash實(shí)現(xiàn)的,最近突然靈光一閃,想到了用js實(shí)現(xiàn)(雖然我不是做前端的,本人做.net)。代碼雖然實(shí)現(xiàn)了,但是比較亂,先上個(gè)圖:
一個(gè)js的動(dòng)畫,以前以為只有flash可以實(shí)現(xiàn)
代碼主要就是一些數(shù)學(xué)的計(jì)算,然后結(jié)合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實(shí)現(xiàn)的百葉窗動(dòng)畫效果,希望對(duì)大家有所幫助!
相關(guān)文章
bootstrap滾動(dòng)監(jiān)控器使用方法解析
這篇文章主要為大家詳細(xì)解析了bootstrap滾動(dòng)監(jiān)控器使用方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-01-01JavaScript高級(jí)程序設(shè)計(jì)閱讀筆記(五) ECMAScript中的運(yùn)算符(一)
ECMAScript中的運(yùn)算符,學(xué)習(xí)js的朋友可以看看2012-02-02uniapp開發(fā)安卓App實(shí)現(xiàn)高德地圖路線規(guī)劃導(dǎo)航功能的全過程
最近項(xiàng)目需要在APP內(nèi)實(shí)現(xiàn)路線規(guī)劃導(dǎo)航功能,直接打開高德地圖進(jìn)行導(dǎo)航,下面這篇文章主要給大家介紹了關(guān)于利用uniapp開發(fā)安卓App實(shí)現(xiàn)高德地圖路線規(guī)劃導(dǎo)航功能的相關(guān)資料,需要的朋友可以參考下2022-08-08TypeScript 獲取函數(shù)的參數(shù)類型、返回值類型及定義返回函數(shù)類型
這篇文章主要介紹了TypeScript 獲取函數(shù)的參數(shù)類型、返回值類型及定義返回函數(shù)類型,需要的朋友可以參考下2024-02-02關(guān)于js函數(shù)解釋(包括內(nèi)嵌,對(duì)象等)
下面小編就為大家?guī)硪黄P(guān)于js函數(shù)解釋(包括內(nèi)嵌,對(duì)象等) 。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-11-11JS實(shí)現(xiàn)DIV高度自適應(yīng)窗口示例
這篇文章主要介紹了JS實(shí)現(xiàn)DIV高度自適應(yīng)窗口的方法,結(jié)合完整實(shí)例形式分析了JS通過動(dòng)態(tài)操作頁面元素屬性實(shí)現(xiàn)高度自適應(yīng)的相關(guān)技巧,需要的朋友可以參考下2017-02-02深入淺出JavaScript前端中的設(shè)計(jì)模式
這篇文章主要介紹了JavaScript前端中的設(shè)計(jì)模式,設(shè)計(jì)模式是一套被反復(fù)使用,多數(shù)人知曉的,經(jīng)過分類編目的,代碼設(shè)計(jì)經(jīng)驗(yàn)的總結(jié),感興趣想要詳細(xì)了解可以參考下文2023-05-05js jquery 獲取某一元素到瀏覽器頂端的距離實(shí)現(xiàn)方法
今天小編就為大家分享一篇js jquery 獲取某一元素到瀏覽器頂端的距離實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-09-09