2012-04-10 2 views
0

이 문제에 대한 의견은 매우 좋을 것입니다. 최신 버전의 JQuery와 함께 easySlider의 최신 버전을 설치했지만 Chrome 또는 Safari에서 이미지를 슬라이드 할 수 없습니다.JQuery easySlider가 Chrome/Safari에서 작동하지 않습니다.

초기 이미지가로드되지만 자동 슬라이딩이없고 버튼이 클릭시 작동하지 않습니다. 페이지 및 easySlider js 코드의 코드가 포함되었습니다. 사전에

감사합니다,

보기 페이지 here ... 페이지

CODE : easySlider에 대한

<?php 
    require_once("inc_header.php"); 
?> 

<script type="text/javascript" src="/_js/easySlider1.7.js"></script> 
<script type="text/javascript"> 

    $(document).ready(function() { 
     $("#slider").easySlider({ 
      auto: true, 
      continuous: true 
     }); 
    }); 

</script> 

CODE : 당신의 HTML에서

(function ($) { 

    $.fn.easySlider = function (options) { 

     // default configuration properties 
     var defaults = { 
      prevId: 'prevBtn', 
      prevText: '', 
      nextId: 'nextBtn', 
      nextText: '', 
      controlsShow: true, 
      controlsBefore: '', 
      controlsAfter: '', 
      controlsFade: true, 
      firstId: 'firstBtn', 
      firstText: 'First', 
      firstShow: false, 
      lastId: 'lastBtn', 
      lastText: 'Last', 
      lastShow: false, 
      vertical: false, 
      speed: 1000, 
      auto: true, 
      pause: 2000, 
      continuous: false, 
      numeric: false, 
      numericId: 'controls' 
     }; 

     var options = $.extend(defaults, options); 

     this.each(function() { 
      var obj = $(this); 
      var s = $("li", obj).length; 
      var w = $("li", obj).width(); 
      var h = $("li", obj).height(); 
      var clickable = true; 
      obj.width(w); 
      obj.height(h); 
      obj.css("overflow", "hidden"); 
      var ts = s - 1; 
      var t = 0; 
      $("ul", obj).css('width', s * w); 

      if (options.continuous) { 
       $("ul", obj).prepend($("ul li:last- child", obj).clone().css("margin-left", "-" + w + "px")); 
       $("ul", obj).append($("ul li:nth-child(2)", obj).clone()); 
       $("ul", obj).css('width' (s + 1) * w); 
      }; 

      if (!options.vertical) $("li", obj).css('float', 'left'); 


      if (options.controlsShow) { 
       var html = options.controlsBefore; 
       if (options.numeric) { 
        html += '<ol id="' + options.numericId + '"></ol>'; 
       } else { 
        if (options.firstShow) html += '<span id="' + options.firstId + '"><a href=\"javascript:void(0);\">' + options.firstText + '</a></span>'; 
        html += ' <span id="' + options.prevId + '"><a href=\"javascript:void(0);\">' + options.prevText + '</a></span>'; 
        html += ' <span id="' + options.nextId + '"><a href=\"javascript:void(0);\">' + options.nextText + '</a></span>'; 
        if (options.lastShow) html += ' <span id="' + options.lastId + '"><a href=\"javascript:void(0);\">' + options.lastText + '</a></span>'; 
       }; 

       html += options.controlsAfter; 
       $(obj).after(html); 
      }; 

      if (options.numeric) { 
       for (var i = 0; i < s; i++) { 
        $(document.createElement("li")).attr('id', options.numericId + (i + 1)).html('<a rel=' + i + ' href=\"javascript:void(0);\">' + (i + 1) + '</a>').appendTo($("#" + options.numericId)).click(function() { 
         animate($("a", $(this)).attr('rel'), true); 
        }); 
       }; 
      } else { 
       $("a", "#" + options.nextId).click(function() { 
        animate("next", true); 
       }); 
       $("a", "#" + options.prevId).click(function() { 
        animate("prev", true); 
       }); 
       $("a", "#" + options.firstId).click(function() { 
        animate("first", true); 
       }); 
       $("a", "#" + options.lastId).click(function() { 
        animate("last", true); 
       }); 
      }; 

      function setCurrent(i) { 
       i = parseInt(i) + 1; 
       $("li", "#" + options.numericId).removeClass("current"); 
       $("li#" + options.numericId + i).addClass("current"); 
      }; 

      function adjust() { 
       if (t > ts) t = 0; 
       if (t < 0) t = ts; 
       if (!options.vertical) { 
        $("ul", obj).css("margin-left", (t * w * -1)); 
       } else { 
        $("ul", obj).css("margin-left", (t * h * -1)); 
       } 
       clickable = true; 
       if (options.numeric) setCurrent(t); 
      }; 

      function animate(dir, clicked) { 
       if (clickable) { 
        clickable = false; 
        var ot = t; 
        switch (dir) { 
        case "next": 
         t = (ot >= ts) ? (options.continuous ? t + 1 : ts) : t + 1; 
         break; 
        case "prev": 
         t = (t <= 0) ? (options.continuous ? t - 1 : 0) : t - 1; 
         break; 
        case "first": 
         t = 0; 
         break; 
        case "last": 
         t = ts; 
         break; 
        default: 
         t = dir; 
         break; 
        }; 
        var diff = Math.abs(ot - t); 
        var speed = diff * options.speed; 
        if (!options.vertical) { 
         p = (t * w * -1); 
         $("ul", obj).animate({ 
          marginLeft: p 
         }, { 
          queue: false, 
          duration: speed, 
          complete: adjust 
         }); 
        } else { 
         p = (t * h * -1); 
         $("ul", obj).animate({ 
          marginTop: p 
         }, { 
          queue: false, 
          duration: speed, 
          complete: adjust 
         }); 
        }; 

        if (!options.continuous && options.controlsFade) { 
         if (t == ts) { 
          $("a", "#" + options.nextId).hide(); 
          $("a", "#" + options.lastId).hide(); 
         } else { 
          $("a", "#" + options.nextId).show(); 
          $("a", "#" + options.lastId).show(); 
         }; 
         if (t == 0) { 
          $("a", "#" + options.prevId).hide(); 
          $("a", "#" + options.firstId).hide(); 
         } else { 
          $("a", "#" + options.prevId).show(); 
          $("a", "#" + options.firstId).show(); 
         }; 
        }; 

        if (clicked) clearTimeout(timeout); 
        if (options.auto && dir == "next" && !clicked) {; 
         timeout = setTimeout(function() { 
          animate("next", false); 
         }, diff * options.speed + options.pause); 
        }; 

       }; 

      }; 
      // init 
      var timeout; 
      if (options.auto) {; 
       timeout = setTimeout(function() { 
        animate("next", false); 
       }, options.pause); 
      }; 

      if (options.numeric) setCurrent(0); 

      if (!options.continuous && options.controlsFade) { 
       $("a", "#" + options.prevId).hide(); 
       $("a", "#" + options.firstId).hide(); 
      }; 

     }); 

    }; 

})(jQuery); 
+0

을 크롬 (PC) V18

희망에서 테스트 . 거기에 어떤 특정 문제가 있습니다. –

+0

저도 잘 작동하고있는 것 같습니다 :) Mac에서 Chrome을 사용하고 있습니다. –

+0

Chrome과 Safari (Mac)에서 모두 문제가 발생하지만 더 깊이 파고 들지는 않습니다. CSS와 관련이있는 것 같습니다. 어쩌면 렌더링 문제 일 수 있습니다. 나는 나중에 또 다른 모습을 시도 할 것이다. – polarblau

답변

2

일부가 오류 (자바 스크립트 문제가 아니라 뷰 소스에서 볼 수 있음)

변경

<div id="slider" align="center" margin-left:10px;>

<div id="slider">

align 속성은 실제로 문제를 일으키는 것입니다. 도움이 :) 내가 슬라이더가 당신이 준 링크를 작동하고 있음을 볼 수

+0

잘자요. Safari에서도 도움이됩니다. – polarblau

+0

@Inrbob 잘 했어! 이제 치료, 고마워요 :) –

+0

Pushpesh 나는 크롬이나 사파리에서 일할 수없고 PC를 사용하고 있습니다. 다른 사람들이 볼 수있는 것처럼 현지 문제가 아니 었습니다. Inrbob이 찾은 CSS 문제로 밝혀졌습니다. 이제 작동합니다. 귀하의 의견을 주셔서 감사합니다 –