JQuery easySlider不能在Chrome/Safari中工作
对此的任何反馈都会很好。 我已安装最新版本的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);
在你的HTML你有一些错误(可以看到这些查看源代码,所以不是一个JavaScript问题)
变化
<div id="slider" align="center" margin-left:10px;>
到
<div id="slider">
的align
属性是什么是真正造成问题。 测试在Chrome(PC)V18
希望帮助:)
好的。在Safari上也有帮助。 – polarblau 2012-04-10 20:49:14
@Inrbob干得好!它现在的作品,感谢:) – 2012-04-16 08:37:44
Pushpesh我无法在Chrome或Safari中工作,我正在使用PC。这不是别人可以看到的地方性问题。事实证明,这是一个由Inrbob寻求的CSS问题。现在工作。感谢您的输入 – 2012-04-16 08:41:25
我看到滑块的工作,你给的链接。有没有什么特别的问题。 – 2012-04-10 10:48:07
我也是,它似乎工作正常:),我在Mac上使用Chrome – 2012-04-10 11:17:30
我可以看到Chrome和Safari(Mac)上的问题,但没有足够的时间深入挖掘。似乎与CSS相关。也许是渲染问题。我会尝试今天晚些时候再看一次。 – polarblau 2012-04-10 14:49:02