码迷,mamicode.com
首页 > 其他好文 > 详细

撸一个动画

时间:2015-04-28 20:35:08      阅读:222      评论:0      收藏:0      [点我收藏+]

标签:

 

拉门展示图片的动画写得多了,今天来一个平时少写的,先上图:

 

 

技术分享

 

 

 

功能描述:

  每隔一段时间自动滚动图片;

  每次动画执行的时候图片的位置,宽高要跟随着变化;

  鼠标移上图片,显示当前图片的信息;

  能向前向后滚动;

 

详细代码:

技术分享
  1 var animateShow = {
  2     _initData:false, //判断动画是否执行完
  3     init: function() {
  4         var t = this;
  5         t._getData();
  6 
  7         if ( !t._initData ) {
  8             var interval;
  9             interval = setInterval(function(){
 10                 $(‘.previous‘).click();
 11             },10000);
 12         }
 13     },
 14     _getData: function() {
 15         var t = this;
 16         $.getJSON(‘http://www.woxiu.com/index.php?action=Index/Home&do=ApiPhotoWall&callback=?‘,function(response){
 17              var template = ‘‘, data = response.data;
 18 
 19             for(var i = 0; i < 5; i++) {
 20             template += ‘<li><i class="cover">&nbsp;</i>‘ +
 21                 ‘<a title="‘ + data[i].name + ‘" href = "‘ + data[i].room_id +‘" target="_blank">‘ +
 22                     ‘<img alt = "‘ + data[i].name + ‘" src =" ‘ + (data[i].index_img || ‘http://x1.xiuimg.com/style/xiu/woxiu/v1/img/no_live01.jpg‘) + ‘"alt="‘ + data.name +‘"/>‘ +
 23                     ‘<p class="tab_name"><span>&nbsp;</span><em>‘ + data[i].name + ‘</em></p>‘+
 24                 ‘</a></li>‘;
 25             }
 26             $(‘#largerImages‘).append(template);
 27             t._largerImages();
 28         });
 29     },
 30     //初始化定位:
 31     _largerImages: function() {
 32         var t = this;
 33         var grids = $(‘#largerImages‘).find(‘li‘), gridsSizeWidth = 213, gridsSizeHeight = 284; //所有图片以此来按比例定义宽高
 34 
 35         t._leftSpacing = ‘‘, //每张图片左边距离相差多少
 36         t._topSpacing = 20,//每张图片顶部距离相差多少
 37         t._rowSpacing = 66, //每张图片宽度相差多少
 38         t._colSpacing = 88, //每张图片高度相差多少
 39 
 40         t._leftArr = [], //所有图片的left值
 41         t._topArr = [], //所有图片的top值
 42         t._zIndexArr = [], //所有图片的zindex值
 43         t._liWidth = [],  //所有图片的宽度
 44         t._liHeight = []; //所有图片的高度
 45 
 46         //初始化定位
 47         grids.each(function(i, img) {
 48             //先左右定位
 49             if ( i < 3) {
 50                 t._leftSpacing = i * t._rowSpacing * 2;
 51             } else if (i > 2) {
 52                 t._leftSpacing = i * t._rowSpacing * 2.3;
 53             };
 54             grids.eq(i).css({left: t._leftSpacing});
 55 
 56             //再判断上下定位以及定宽高
 57             if (i == 0 || i == grids.length - 1) {
 58                 grids.eq(i).css({zIndex: 0,top:t._topSpacing * 6, height:gridsSizeHeight, width:gridsSizeWidth});
 59             } else if ( i == 1 || i == grids.length - 2) {
 60                 grids.eq(i).css({zIndex: 2,top:t._topSpacing * 4, height:gridsSizeHeight + t._colSpacing, width:gridsSizeWidth + t._rowSpacing});
 61             } else if (i == 2) {
 62                 grids.eq(i).css({zIndex:3,top:t._topSpacing, height:gridsSizeHeight + t._colSpacing * 2, width:gridsSizeWidth + t._rowSpacing * 2});
 63                 grids.eq(i).find(‘i‘).removeClass(‘cover‘);
 64             };
 65 
 66             //把各属性值传到数组里面
 67             t._leftArr.push(grids.eq(i).position().left);
 68             t._topArr.push(grids.eq(i).position().top);
 69             t._liWidth.push(grids.eq(i).width());
 70             t._liHeight.push(grids.eq(i).height());
 71             t._zIndexArr.push(grids.eq(i).css(‘z-index‘));
 72         });
 73         
 74         t._reposition();
 75         t._mouseEnter(grids) //鼠标移动上去显示主播昵称
 76     },
 77     //翻页动画
 78     _reposition: function() {
 79         var t = this;
 80         //向前翻页
 81     $(‘.previous‘).bind(‘click‘,function() {
 82         if ( !t._initData && t._leftArr.length != 0) {
 83 
 84             t._initData = true;
 85 
 86             //重新获取选择器
 87             var grids = $(‘#largerImages‘).find(‘li‘); 
 88             
 89             for (var i = 1; i < grids.length; i ++) {
 90                 grids.eq(i).animate({
 91                     zIndex: t._zIndexArr[i - 1],
 92                     left: t._leftArr[i - 1],
 93                      top: t._topArr[i - 1], 
 94                      width: t._liWidth[i - 1], 
 95                      height: t._liHeight[i - 1],
 96                      },1000,
 97                     function() {
 98                         t._initData = false;
 99                     });
100             };
101             grids.eq(0).animate({
102                 left: t._leftArr[4], 
103                 top: t._topArr[4], 
104                 width: t._liWidth[4], 
105                 height: t._liHeight[4],
106                 zIndex: t._zIndexArr[4]
107             },1000,function(){$(this).appendTo(‘#largerImages‘);});
108 
109             grids.find(‘i‘).addClass(‘cover‘);
110             grids.eq(3).find(‘i‘).removeClass(‘cover‘);
111         }
112     });
113     //向后翻页
114     $(‘.next‘).bind(‘click‘,function() {
115         if ( !t._initData && t._leftArr.length != 0) {
116 
117             t._initData = true;
118 
119             //重新获取选择器
120             var grids = $(‘#largerImages‘).find(‘li‘); 
121             
122             for (var i = 0; i < grids.length - 1; i ++) {
123                 grids.eq(i).animate({
124                     left: t._leftArr[i + 1],
125                      top: t._topArr[i + 1], 
126                      width: t._liWidth[i + 1], 
127                      height: t._liHeight[i + 1],
128                      zIndex: t._zIndexArr[i + 1]},1000,
129                     function() {
130                         t._initData = false;
131                     });
132             };
133             grids.eq(4).animate({
134                 left: t._leftArr[0], 
135                 top: t._topArr[0], 
136                 width: t._liWidth[0], 
137                 height: t._liHeight[0],
138                 zIndex: t._zIndexArr[0]
139             },1000,function(){$(this).prependTo(‘#largerImages‘);});
140 
141             grids.find(‘i‘).addClass(‘cover‘);
142             grids.eq(3).find(‘i‘).removeClass(‘cover‘);
143         }
144     });
145     },
146     //鼠标进入图片效果
147     _mouseEnter: function(grids) {
148         grids.each(function(i){
149             $(this).mouseenter(function() {
150                 $(this).find(‘.tab_name‘).animate({
151                     bottom:0,opacity: ‘show‘
152                 },500);
153             });
154             $(this).mouseleave(function() {
155                 $(this).find(‘.tab_name‘).animate({
156                     bottom:-50,opacity: ‘hide‘
157                 },500);
158             });
159         });
160     },
161 };
162 
163 animateShow.init();
View Code

 

撸一个动画

标签:

原文地址:http://www.cnblogs.com/Travel/p/4463726.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!