需要實(shí)現(xiàn)一個類似蘋果官網(wǎng)iPhone X主頁那樣的動畫效果,就是滾動條滾動一張圖片逐漸放大,繼續(xù)滾動顯示出文字,蘋果官網(wǎng)使用的canvas,但是具體js怎么去寫沒有太多思路,大多demo都是滾動執(zhí)行,就是滾動到某一點(diǎn)自己執(zhí)行動畫直至完成,但是不是想要的效果,需要隨著滾動條滾動逐幀執(zhí)行,如果滾動條反向滾動,則反向執(zhí)行動畫,停止?jié)L動則動畫停止,類似這樣的動畫效果該如何去實(shí)現(xiàn),插件也好或者原生js也可,望大牛不吝賜教。
可以試試Vanilla.js中的慣性滾動和視差效果插件luxy.js
https://github.com/min30327/l...
DEMO:https://min30327.github.io/lu...
luxy.js / targetsUpdate
:) 其實(shí)我對這個也不是很熟。
luxy.js是視覺差效果插件,似乎不支持元素寬高的改變,demo的字體放大效果也是改變元素的3d位置帶來的視差效果(并沒有真正放大hiahia)。但是對元素的update事件是在targetsUpdate這個函數(shù)里執(zhí)行的,
targetsUpdate : function(target){
target.top += (this.scrollTop * Number(this.settings.targetSpeed) * Number(target.speedY) - target.top) * this.settings.targetPercentage;
target.left += (this.scrollTop * Number(this.settings.targetSpeed) * Number(target.speedX) - target.left) * this.settings.targetPercentage;
var targetOffsetTop = ( parseInt(target.percentage) - target.top - parseInt(target.offset) );
var offsetY = Math.round(targetOffsetTop * -100) / 100;
var offsetX = 0;
if(target.horizontal){
var targetOffsetLeft = ( parseInt(target.percentage) - target.left - parseInt(target.offset) );
offsetX = Math.round(targetOffsetLeft * -100) / 100;
}
target.elm.style.transform = 'translate3d(' + offsetX + 'px ,' + offsetY + 'px ,' + 0 +')';
},
想要實(shí)現(xiàn)上述效果的話,在這里加生你想要的css3效果應(yīng)該能行吧?當(dāng)然這里做了改動就會影響全局的效果,如果只是個別元素需要縮放,可以仿照這個函數(shù)單獨(dú)添加一個縮放函數(shù)、或在當(dāng)前函數(shù)下傳入?yún)?shù)并判斷(縮放可用css3/cubic-bezier等屬性實(shí)現(xiàn))
下為改變元素3d位置的源碼位置。
target.elm.style.transform = 'translate3d(' + offsetX + 'px ,' + offsetY + 'px ';
當(dāng)然,還有基于Animate.css的wow.js也是很不錯的插件
wow.js
animate.css
北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
北大青鳥中博軟件學(xué)院創(chuàng)立于2003年,作為華東區(qū)著名互聯(lián)網(wǎng)學(xué)院和江蘇省首批服務(wù)外包人才培訓(xùn)基地,中博成功培育了近30000名軟件工程師走向高薪崗位,合作企業(yè)超4
中公教育集團(tuán)創(chuàng)建于1999年,經(jīng)過二十年潛心發(fā)展,已由一家北大畢業(yè)生自主創(chuàng)業(yè)的信息技術(shù)與教育服務(wù)機(jī)構(gòu),發(fā)展為教育服務(wù)業(yè)的綜合性企業(yè)集團(tuán),成為集合面授教學(xué)培訓(xùn)、網(wǎng)
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
曾工作于聯(lián)想擔(dān)任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項(xiàng)目經(jīng)理從事移動互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團(tuán)項(xiàng)目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺面向?qū)ο箝_發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國Software AG 技術(shù)顧問,美國Dachieve 系統(tǒng)架構(gòu)師,美國AngelEngineers Inc. 系統(tǒng)架構(gòu)師。