jqueryPhoto.js 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. // JavaScript Document
  2. $(document).ready(function(){
  3. function G(s){
  4. return document.getElementById(s);
  5. }
  6. function getStyle(obj, attr){
  7. if(obj.currentStyle){
  8. return obj.currentStyle[attr];
  9. }else{
  10. return getComputedStyle(obj, false)[attr];
  11. }
  12. }
  13. function Animate(obj, json){
  14. if(obj.timer){
  15. clearInterval(obj.timer);
  16. }
  17. obj.timer = setInterval(function(){
  18. for(var attr in json){
  19. var iCur = parseInt(getStyle(obj, attr));
  20. iCur = iCur ? iCur : 0;
  21. var iSpeed = (json[attr] - iCur) / 5;
  22. iSpeed = iSpeed > 0 ? Math.ceil(iSpeed) : Math.floor(iSpeed);
  23. obj.style[attr] = iCur + iSpeed + 'px';
  24. if(iCur == json[attr]){
  25. clearInterval(obj.timer);
  26. }
  27. }
  28. }, 30);
  29. }
  30. var oPic = G("picBox");
  31. var oList = G("listBox");
  32. var oPrev = G("prev");
  33. var oNext = G("next");
  34. var oPrevTop = G("prevTop");
  35. var oNextTop = G("nextTop");
  36. var oPicLi = oPic.getElementsByTagName("li");
  37. var oListLi = oList.getElementsByTagName("li");
  38. var len1 = oPicLi.length;
  39. var len2 = oListLi.length;
  40. var oPicUl = oPic.getElementsByTagName("ul")[0];
  41. var oListUl = oList.getElementsByTagName("ul")[0];
  42. var w1 = oPicLi[0].offsetWidth;
  43. var w2 = oListLi[0].offsetWidth;
  44. oPicUl.style.width = w1 * len1 + "px";
  45. oListUl.style.width = w2 * len2 + 48 + "px";
  46. var index = 0;
  47. var num = 5;
  48. var num2 = Math.ceil(num / 2);
  49. function Change(){
  50. Animate(oPicUl, {left: - index * w1});
  51. if(index < num2){
  52. Animate(oListUl, {left: 0});
  53. }else if(index + num2 <= len2){
  54. Animate(oListUl, {left: - (index - num2 + 1) * w2});
  55. }else{
  56. Animate(oListUl, {left: - (len2 - num) * w2});
  57. }
  58. for (var i = 0; i < len2; i++) {
  59. oListLi[i].className = "";
  60. if(i == index){
  61. oListLi[i].className = "on";
  62. }
  63. }
  64. }
  65. oNextTop.onclick = oNext.onclick = function(){
  66. index ++;
  67. index = index == len2 ? 0 : index;
  68. Change();
  69. }
  70. oPrev.onmouseover = oNext.onmouseover = oPrevTop.onmouseover = oNextTop.onmouseover = function(){
  71. clearInterval(timer);
  72. }
  73. oPrev.onmouseout = oNext.onmouseout = oPrevTop.onmouseout = oNextTop.onmouseout = function(){
  74. timer=setInterval(autoPlay,4000);
  75. }
  76. oPrevTop.onclick = oPrev.onclick = function(){
  77. index --;
  78. index = index == -1 ? len2 -1 : index;
  79. Change();
  80. }
  81. var timer=null;
  82. timer=setInterval(autoPlay,4000);
  83. function autoPlay(){
  84. index ++;
  85. index = index == len2 ? 0 : index;
  86. Change();
  87. }
  88. for (var i = 0; i < len2; i++) {
  89. oListLi[i].index = i;
  90. oListLi[i].onclick = function(){
  91. index = this.index;
  92. Change();
  93. }
  94. }
  95. });