1.fullPage.js是什么?
fullPage.js 是一個基於 jQuery ,用來制作全屏網站的插件。
2.兼容性:
- jquery兼容:兼容 jQuery 1.7+
- 瀏覽器兼容: IE8+,Chrome,FireFox
3.問題:
根據使用文檔,輕松實現了全屏,但是當在某一屏中,內部的子元素中需要實現滑動的輪播效果,一開始,我就直接在$(document).ready()里面寫方法,但是網頁上除了按鈕可以變色外,沒有任何滑動效果。經過調試,發現按鈕點擊事件是進去了的,但就是感覺實現滑動那一塊代碼沒有效果。
首先,重新查閱API,發現有個屏內分屏的功能,只需要添加樣式slide即可,終於可以滑動了,然而,卻發現,按鈕點擊不准確,如果有3屏,當點擊第1個按鈕時,並沒有提示什么,點擊第2個時,才提示index為1,導致最后一屏始終無法顯示,也就是說頁面是后延了。研究了很久,沒有找到解決方法。本來,這個效果用fullpage自帶的slide實現是不合適的。因為,滑動的元素並不是完全占一屏,它只是按鈕切換后才顯示的。
后來,我通過stackOverflow搜索fullpage相關的問題,發現有個問題和我的很像,“My other plugins don't work when using fullPage.js”,回答里介紹了一個網址,https://github.com/alvarotrigo/fullPage.js/wiki/FAQ---Frequently-Answered-Questions,從中我終於明白了原因所在。大概意思是,fullPage.js會把這些元素包裹在一個隨時可改變自身位置的元素中,所以這些元素就成為了動態添加的元素,而大多數插件則需要靶元素最初保持在原位,才能正常執行。
所以解決方法就是:在fullPage.js的afterRender回調方法里,初始化插件或者jquery事件。
注意:並不是所有的插件或者jquery事件都必須在fullPage.js的afterRender里初始化,涉及改變位置的才需要。