1
loading 2014-02-13 13:47:29 +08:00 via iPhone
在代码中添加些addClass,用浏览器的审查元素,一目了然。
z-index你知道是css的吧! |
2
yayy 2014-02-13 13:47:34 +08:00 1
|
3
yayy 2014-02-13 13:48:13 +08:00
不过这个样式写的,看的我真累啊。。
|
4
mclxly 2014-02-13 15:39:45 +08:00 1
“$(this).show();这行中的this对象吗”,这个this是遍历a元素的object
----------------------------- 程序逻辑: ----------------------------- 1. 页面加载完成后,第一次调用rotatePics(); $(document).ready(function() { rotatePics(1); }); 2. 根据传入参数currentPhoto,在selector'#photos a'选择的元素组中,隐藏(设置透明)对应位置的元素; $('#photos a').eq(currentPhoto).fadeOut() 3. 重新设置所有元素的z-index,并显示,下一个元素将设置为最大z-index:5,因此获得显示; 4. 一秒钟后执行步骤2,将下一个元素隐藏; |
5
FrankFang128 2014-02-13 15:43:20 +08:00
代码不放在 jsbin/jsfiddler 的,一律不看。
|
6
jacob OP @mclxly 原来是遍历一遍,我原来就是没搞懂this怎么就指向下一张图片了,原来是全显示了,但是$(this).css(
'zIndex', ((numberOfPhotos - i) + currentPhoto) % numberOfPhotos ); 这句算法的原理可否说一下,这个计算方式真的不明觉厉。如果自己解决累似问题,怎么能想到这样的公式?我觉得只能数学天才能做到啊 |
8
menic 2014-02-13 17:05:35 +08:00 1
我觉得
因为current是1 base, i是0 base 目的是让与current对应的i的z-index最大 i = current -1,i - current = -1 所以应该是(n+(i-current))%n 比如: n = 6 current = 3 其实i最大的应该是2 ( 6 + (2 - 3 ) ) % 6 = 5 如果是(6 + (3 - 2)) % 6 = 1 显然不是最大的 |
9
flynngao 2014-02-13 17:07:22 +08:00
吐槽不能了,不会用chrome么
|
10
kmokidd 2014-02-13 18:04:14 +08:00 1
这是个递归 lz说的((numberOfPhotos - i) + currentPhoto) % numberOfPhotos 应该算是递归的公式
线上地址 http://jsfiddle.net/Ut3W5/3/ 我写了一些注释 不知道lz会不会明白 简单来说 currentPhoto不是当前显示的图片而是当前显示图片的上一张图片 显示是用z-index来控制的 这一组图片的z-index是有一个规律:currentPhoto的z-index最小为0,当前显示图片的z-index最大为图片个数-1 lz说公式怎么得到的…… 这个就是高中数列 找规律 |
13
menic 2014-02-14 12:00:59 +08:00 1
|