建立酷炫的3D傾斜佈局

    作一個既能帶來視覺衝突的,又簡單的佈局並不簡單,由於兩者之間的特性是相互排斥的。利用先進的技術設計一個帶有視覺衝突的效果,每每會犧牲簡單的處理方法。今天,我決定作一個插件,讓你作到既能保持簡單性又能給你的網頁添加酷炫的滾動效果。那麼,如今就讓我來介紹jQuery實現的傾斜頁面滾動(jQuery Tilted Page Scroll) css

    jQuery Tilted Page Scroll 是一個插件能夠將你的html代碼包裝成帶有傾斜頁面滾動效果的3D佈局。這個效果實現的概念相似於個人一個插件——One Page Scroll。但在這種狀況下,它是原始的,因此它在不少設備上都是兼容的。 html

    注意:jQuery Tilted Page Scroll這個插件已經在Chrome、Firefox、Safari,在桌面和手機測試過。但在IE上沒有檢測過。 jquery

(源代碼請在原著的頁面上下載啦~) git

使用Tilted Page Scroll github

它是如何運做的? web

首先第一件事,這個插件會偵查何時每一個元素都出如今了視窗裏。而爲了實現這個,我必須綁定一個方法監聽頁面滾動,那麼它就能夠實現每一個元素的循環而且實時監測滾動條的位置。這個運算過程使用了$(window).scrollTop來跟蹤滾動條所在位置,而且比較它和每一個元素的topOffset頂部偏移量。若是scrollTop的值大於元素的頂部偏移量,那麼就意味着元素在這個視窗裏,而後我將會爲它添加類名來表示它。 api


一旦完成了上面的步驟,那就根據用戶的頁面滾動位置來計算透明度、尺寸以及傾斜角度。這個過程花了我好幾個小時的來嘗試,才找到完美的計算方法,但最終我找到了一個基於這個插件實現思想的解決方案。 app


首先,要完成的計算有:在方程式中,利用一個變量存放scrollTop()的值,以及傾斜角度、透明度和尺寸,而它們將由頂部偏移量、元素部分的高度和窗口的高度決定。我也必須定義一個最小的值,所以它們就不會超出有效的範圍(例如,透明度opacity必須是0-1之間的值)。當全部的數據準備就緒,簡單地使用CSS opacity和CSS3 tranform調用它。 iphone

那麼,這個插件將會經過監聽頁面的滾動行爲改變佈局。 函數


使用說明

爲了使用這個插件,你須要在你的html文檔的<head>中引入最新的jQuery庫,jQuery.tiltedpage_scroll.js以及tiltedpage_scroll.css,後二者能夠在這裏找到。

如今,準備好你的html標籤,以下所示:

HTML:

<body>
  ..
  <div class="main">
  <section class="page1">
    ...
  </section>
  <section class="page2">
    ...
  </section>
  ...
  <section class="last-page">
    ...
  </section>
</div>
 
  ..
</body>
每一個section的類名不是強制要求要寫的,可是它能夠方便你給它們添加CSS樣式。每個section表明一頁,而且在裏面的任何內容將會動態變化。作完上述事情後,像下面那樣調用函數:


JS:

$(".main").tiltedpage_scroll({ sectionContainer: "> section", angle: 50, opacity: true, scale: true, outAnimation: true });

就是這樣了!上述的設置可讓你有一個默認的格局,它可讓你運行好幾分鐘。對於那些正在尋找方法來定製這個插件的人,別急。我在下面提供了一些建議給大家:

  • sectionContainer(section容器):若是你不想在你的佈局裏使用section,你能夠用CSS選擇器。例如,你想選擇.main下的下一級div標籤,可使用">div"(選擇子元素)。它的默認值是">section"。
  • angle(傾斜度):當你的容器出如今視窗內,你能夠設置你的容器的傾斜度。若是你須要更加細微的效果,那就嘗試着把它的值減少到10。它的默認值是50。
  • opacity(透明度):當section正出如今視窗內時,透明度會跟着逐漸增大。你能夠設置它的值爲false。它的值默認爲true。
  • scale(尺寸):當你滾動頁面的時候,section的尺寸會逐漸增大。若是你不想要這個效果,能夠將它的值設置爲false。它的默認值爲true。
  • outAnimation(離開動畫):這個選項能夠容許你啓用或者關閉離開動畫,當section返方向離開視窗(section向上消失)。設置它的值爲false,將實現只在section進入視窗時展示效果。它的默認值爲true。

-----------------------------------------------------分割線-----------------------------------------------------

這個是我偶然在關注的一個微博帳號裏發現的一篇外國文章。這個插件能實現的效果,建議仍是去原創文章那裏看一下做者的DEMO

雖然我特意搜索了一下標題,看看是否有人已經翻譯了。而我發現有一個網站已經將該文章翻譯了(心裏有點小失落),不過我很想嘗試一下翻譯一篇外國的技術文章,因此但願看到這篇翻譯的人,若是以爲我翻譯得很差,請及時指出~~~謝謝啦~~接下來,我也得嘗試一下這個插件!

翻譯:http://www.uedsc.com/create-a-cool-3d-tilted-layout-with-tilted-page-scroll.html

原創:http://www.onextrapixel.com/2014/03/13/create-a-cool-3d-tilted-layout-with-tilted-page-scroll/

相關文章
相關標籤/搜索