Brak opisu

carousel.js 2.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. var $a = $(".buttons a");
  2. var $s = $(".buttons span");
  3. var cArr = ["p3", "p2", "p1"];
  4. var index = 0;
  5. $(".next").click(
  6. function() {
  7. nextimg();
  8. }
  9. )
  10. $(".prev").click(
  11. function() {
  12. previmg();
  13. }
  14. )
  15. ////上一张
  16. //function previmg() {
  17. // cArr.unshift(cArr[2]);
  18. // cArr.pop();
  19. // //i是元素的索引,从0开始
  20. // //e为当前处理的元素
  21. // //each循环,当前处理的元素移除所有的class,然后添加数组索引i的class
  22. // $("li").each(function(i, e) {
  23. // $(e).removeClass().addClass(cArr[i]);
  24. // })
  25. // index--;
  26. // if(index < 0) {
  27. // index = 2;
  28. // }
  29. // show();
  30. //}
  31. //
  32. ////下一张
  33. //function nextimg() {
  34. // cArr.push(cArr[0]);
  35. // cArr.shift();
  36. // $("li").each(function(i, e) {
  37. // $(e).removeClass().addClass(cArr[i]);
  38. // })
  39. // index++;
  40. // if(index > 2) {
  41. // index = 0;
  42. // }
  43. // show();
  44. //}
  45. //通过底下按钮点击切换
  46. $a.each(function() {
  47. $(this).click(function() {
  48. var myindex = $(this).index();
  49. var b = myindex - index;
  50. if(b == 0) {
  51. return;
  52. } else if(b > 0) {
  53. /*
  54. * splice(0,b)的意思是从索引0开始,取出数量为b的数组
  55. * 因为每次点击之后数组都被改变了,所以当前显示的这个照片的索引才是0
  56. * 所以取出从索引0到b的数组,就是从原本的这个照片到需要点击的照片的数组
  57. * 这时候原本的数组也将这部分数组进行移除了
  58. * 再把移除的数组添加的原本的数组的后面
  59. */
  60. var newarr = cArr.splice(0, b);
  61. cArr = $.merge(cArr, newarr);
  62. $("li").each(function(i, e) {
  63. $(e).removeClass().addClass(cArr[i]);
  64. })
  65. index = myindex;
  66. show();
  67. } else if(b < 0) {
  68. /*
  69. * 因为b<0,所以取数组的时候是倒序来取的,也就是说我们可以先把数组的顺序颠倒一下
  70. * 而b现在是负值,所以取出索引0到-b即为需要取出的数组
  71. * 也就是从原本的照片到需要点击的照片的数组
  72. * 然后将原本的数组跟取出的数组进行拼接
  73. * 再次倒序,使原本的倒序变为正序
  74. */
  75. cArr.reverse();
  76. var oldarr = cArr.splice(0, -b)
  77. cArr = $.merge(cArr, oldarr);
  78. cArr.reverse();
  79. $("li").each(function(i, e) {
  80. $(e).removeClass().addClass(cArr[i]);
  81. })
  82. index = myindex;
  83. show();
  84. }
  85. })
  86. })
  87. //改变底下按钮的背景色
  88. function show() {
  89. $($s).eq(index).addClass("blue").parent().siblings().children().removeClass("blue");
  90. }
  91. //点击class为p2的元素触发上一张照片的函数
  92. //$(document).on("click", ".p1", function() {
  93. // previmg();
  94. // return false; //返回一个false值,让a标签不跳转
  95. //});
  96. //
  97. ////点击class为p4的元素触发下一张照片的函数
  98. //$(document).on("click", ".p3", function() {
  99. // nextimg();
  100. // return false;
  101. //});