我无法弄清楚为什么这个脚本在IE7和8中不起作用。它在所有其他浏览器中都能正常工作,但出于某种原因,在IE7和8中这个脚本只触发// thumbs hover
位,而不是// loading images
位(实际上更重要)。一切似乎都很好,有没有人有任何想法?
function featuredJS() {
$("[title]").attr("title", function(i, title) {
$(this).data("title", title).removeAttr("title");
});
// loading images
var last = "featured/01.jpg";
$("#thumbs a").click(function(event) {
event.preventDefault();
var position = $(this).attr("class");
var graphic = $(this).attr("href");
var title = $(this).attr("alt");
var description = $(this).data("title");
var currentMargin = $("#full-wrapper #full").css("marginLeft");
var currentWidth = $("#full-wrapper #full").css("width");
var transitionTest = currentMargin.replace("px", "") * 1;
if(last != graphic && ((transitionTest % 938) == 0 || transitionTest == 0)) {
$("#placeholder").before( "<div class='featured'><div class='description " + position + "'>" + "<h3>" + title + "</h3>" + "<p>" + description + "</p>" + "</div><img src=\"" + graphic + "\" /><div style='clear:both;'></div></div>" );
$("#full-wrapper #full").animate({
marginLeft: "-=938px"
}, 500);
$("#full-wrapper #full").css("width","+=938px");
last = graphic;
};
});
// thumbs hover
$("#thumbs .thumb").hover(
function () {
$(this).find(".red-bar").animate({height:"72px"},{queue:false,duration:500});
},
function () {
$(this).find(".red-bar").animate({height:"3px"},{queue:false,duration:500});
}
);
};
上的演示页面
答案 0 :(得分:1)
您的问题是由于没有margin
设置开始引起的。 transitionTest
然后变为NaN
,因为样式为auto
,而非0px
,就像您期望的那样。请考虑尝试这样做:
var transitionTest = parseInt("0"+currentMargin,10);
这将为您修剪“px”,并处理保证金为关键字的情况。