jQuery全屏滚动插件fullPage.js使用中遇到的问题,滑动轮播效果无效

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里初始化,涉及改变位置的才需要。