每日一個前端特效(誤)-滾動錨點動畫

因為最近在找實習機會所以拖更了好久。但還是沒什麼卵用233333

經常可以在許多大小網站里看見一種動畫,就是當滾動到某個地方時,就會有對應的動畫出現。

實現方式大概是有一下這麼幾種:

Fullpage.js: GitHub - alvarotrigo/fullPage.js: fullPage plugin by Alvaro Trigo. Create full screen pages fast and simple

官方demo: alvarotrigo.com/fullPag

這裡實現是藉助了Fullpage的回調,當滾動到某一個模塊時,就給元素添加對應的對話。

在源碼中可以看到:

$(document).ready(function() { $(#fullpage).fullpage({ verticalCentered: false, css3: true, sectionsColor: [#F0F2F4, #fff, #fff, #fff], navigation: true, navigationPosition: right, navigationTooltips: [fullPage.js, Powerful, Amazing, Simple], afterLoad: function(anchorLink, index){ if(index == 2){ $(#iphone3, #iphone2, #iphone4).addClass(active); } $(#infoMenu).toggleClass(whiteLinks, index ==4); }, onLeave: function(index, newIndex, direction){ if (index == 3 && direction == down){ $(.section).eq(index -1).removeClass(moveDown).addClass(moveUp); } else if(index == 3 && direction == up){ $(.section).eq(index -1).removeClass(moveUp).addClass(moveDown); } $(#staticImg).toggleClass(active, (index == 2 && direction == down ) || (index == 4 && direction == up)); $(#staticImg).toggleClass(moveDown, newIndex == 4); $(#staticImg).toggleClass(moveUp, index == 4 && direction == up); }, /* Needed to maintain the fixed position of the element due to problems using translate3d and fixed elements. */ afterRender: function(){ $(#infoMenu).appendTo(body); $(#githubLink, .twitter-share-button).appendTo(body); } }); });

這裡是比較簡單的實現。

第二種方式是:

Wow: GitHub - matthieua/WOW: Reveal CSS animation as you scroll down a page

官網+demo:mynameismatthieu.com/WO

這種就畢竟簡單,專門為滾動錨點動畫實現的。

通過給元素綁定Anime.css里的動畫,就可以當這個元素被滾動到是觸發。

這裡官方文檔說得很詳細,就不累贅了。

第三種方式是:

ScroollTrigger: GitHub - terwanerik/ScrollTrigger: Triggers classes on html elements based on the scroll position. Uses requestAnimationFrame so it doesnt jack the users scroll.

官網:terwanerik.github.io/Sc

它的靈活性比起Wow要大許多,通過給元素添加監聽事件,就可以自己定義當滾動到時哪些樣式生效。


推薦閱讀:

JS刷題總結
React填坑記(三):國際化方案
10本學習前端必看書籍,讓你豁然開朗
前端工程師學習的幾個網站
Three.js二三事

TAG:前端框架 | CSS框架 | 前端開發 |