fullPage.js制作百度百科史记2013效果

技术文章 2014年8月4日 17.14K

fullPage.js 提供丰富的回调函数,让我们能都在各个阶段进行控制,制作这个专题的中的动画效果就需要用到这些回调函数。

78

制作方法

1、HTML

我们在每屏里面放一个 div,用于放背景图片,然后把热词和图片放在这个 div 里面,如:

<div>
<div>
<a href=”javascript:void(0)”>网络机顶盒</a>
<a href=”javascript:void(0)”>干细胞人造肉</a>
<a href=”javascript:void(0)”>3D涂鸦笔</a>
<a href=”javascript:void(0)”>H7N9</a>
<a href=”javascript:void(0)”>
<img width=”181″ height=”166″ src=”images/h7n9.jpg”>
</a>
</div>
</div>

我们在热词和图片中加一个 rel 属性,里面放4个数值,用逗号隔开,这4个数值的作用是用于定位,前两个是默认的位置,后两个是出现后的位置。添加之后代码如下:

<div>
<div>
<a href=”javascript:void(0)” rel=”0,-350,0,7″>网络机顶盒</a>
<a href=”javascript:void(0)” rel=”0,-350,0,37″>干细胞人造肉</a>
<a href=”javascript:void(0)” rel=”0,-350,0,68″>3D涂鸦笔</a>
<a href=”javascript:void(0)” rel=”0,-350,0,88″>H7N9</a>
<a href=”javascript:void(0)” rel=”0,-350,0,153″>
<img width=”181″ height=”166″ src=”images/h7n9.jpg”>
</a>
</div>
</div>

2、CSS

CSS 主要是热词旁边“1月、2月”背景图片的定位,如:

.science-inner .st1 {
background-position: 0 4px
}
.science-inner .st2 {
background-position: 0 -59px
}
.science-inner .st3 {
background-position: 0 -59px
}
.science-inner .st4 {
font-size: 48px;
background-position: 0 -104px
}

3、JavaScript

3.1、首先设置一些基本的效果,比如背景颜色、锚链接、绑定菜单等等;

$(document).ready(function() {
$.fn.fullpage({
slidesColor: [‘#0075D1’, ‘#C2E5FF’, ‘#FDF6E1’, ‘#E9E9E9’, ‘#F3F3F3’, ‘#F9F3DC’],
anchors: [‘page1’, ‘page2’, ‘page3’, ‘page4’, ‘page5’, ‘page6’],
menu: ‘#menu’
});
});

3.2、初始化后的回调函数,或者笼统的说是页面加载后的回调函数,本例是“史记”两个字的动画效果;

afterRender: function(){
$(‘.screen-main span’).each(function(){
var $rel = $(this).attr(‘rel’);
var $arr = $rel.split(‘,’);
$(this).animate({
left: $arr[2] + ‘px’,
top: $arr[3] + ‘px’
}, 500);
});
$(‘.inner a’).each(function(){
var $rel = $(this).attr(‘rel’);
var $arr = $rel.split(‘,’);
$(this).animate({
left: $arr[0] + ‘px’,
top: $arr[1] + ‘px’
}, 500);
});
}

3.3、滚动前后的回调函数,本例是热词很多图片的动画效果;

afterLoad: function(anchorLink, index){
if(index == 1){
$(‘.screen-main span’).each(function(){
var $rel = $(this).attr(‘rel’);
var $arr = $rel.split(‘,’);
$(this).animate({
left: $arr[2] + ‘px’,
top: $arr[3] + ‘px’
}, 500);
});
}
if(index == 2 || index == 3 || index == 4 || index == 5){
$(‘.inner’).eq(index – 2).find(‘a’).each(function(){
var $rel = $(this).attr(‘rel’);
var $arr = $rel.split(‘,’);
$(this).animate({
left: $arr[2] + ‘px’,
top: $arr[3] + ‘px’
}, 500);
});
}
if(index == 6){
$(‘.zanzhu-con a’).fadeIn(1000);
}
},
onLeave: function(index, direction){
if(index == 1){
$(‘.screen-main span’).each(function(){
var $rel = $(this).attr(‘rel’);
var $arr = $rel.split(‘,’);
$(this).animate({
left: $arr[0] + ‘px’,
top: $arr[1] + ‘px’
}, 500);
});
}
if(index == 2 || index == 3 || index == 4 || index == 5){
$(‘.inner’).eq(index – 2).find(‘a’).each(function(){
var $rel = $(this).attr(‘rel’);
var $arr = $rel.split(‘,’);
$(this).animate({
left: $arr[0] + ‘px’,
top: $arr[1] + ‘px’
}, 500);
});
}
if(index == 6){
$(‘.zanzhu-con a’).fadeOut(1000);
}
}

到这就完成了,大家还可以举一反三,编写出其他动画效果以及应用到其他地方。

演示地址:http://www.viphper.com/demo/02_viphper.com_fullpage/index.html

[download id=”430″ template=”image”]

 


关注微信公众号『PHP学习网

第一时间了解最新网络动态
关注博主不迷路~

PHP学习网:站内收集的部分资源来源于网络,若侵犯了您的合法权益,请联系我们删除!
分享到:
赞(0)

文章评论

您需要之后才可以评论
0点赞 0评论 收藏 QQ分享 微博分享

PHP学习网

PHP学习网