2012-04-10 106 views
0

对此的任何反馈都会很好。 我已安装最新版本的easySlider以及最新版本的JQuery,但我无法使图像在Chrome或Safari中滑动。JQuery easySlider不能在Chrome/Safari中工作

初始图像加载但没有自动滑动,并且点击时按钮不起作用。 我已经包含了页面和easySlider js代码的代码。

由于提前,

视图页面here ...

代码用于页面:

<?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 FOR easySlider:

(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

我看到滑块的工作,你给的链接。有没有什么特别的问题。 – 2012-04-10 10:48:07

+0

我也是,它似乎工作正常:),我在Mac上使用Chrome – 2012-04-10 11:17:30

+0

我可以看到Chrome和Safari(Mac)上的问题,但没有足够的时间深入挖掘。似乎与CSS相关。也许是渲染问题。我会尝试今天晚些时候再看一次。 – polarblau 2012-04-10 14:49:02

回答

2

在你的HTML你有一些错误(可以看到这些查看源代码,所以不是一个JavaScript问题)

变化

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

<div id="slider">

align属性是什么是真正造成问题。 测试在Chrome(PC)V18

希望帮助:)

+0

好的。在Safari上也有帮助。 – polarblau 2012-04-10 20:49:14

+0

@Inrbob干得好!它现在的作品,感谢:) – 2012-04-16 08:37:44

+0

Pushpesh我无法在Chrome或Safari中工作,我正在使用PC。这不是别人可以看到的地方性问题。事实证明,这是一个由Inrbob寻求的CSS问题。现在工作。感谢您的输入 – 2012-04-16 08:41:25