У меня есть следующий код jQuery:
jQuery(document).ready(function(){
var list = jQuery('#content-list .mask ul').get(0);
var mask = jQuery('#content-list .mask').get(0);
var next = jQuery('#content-list .next').get(0);
var previous = jQuery('#content-list .previous').get(0);
var listHeight = parseInt(jQuery('#content-list').first().attr('listheight'));
var isAnimating = false;
var duration = 'slow';
var easing = 'swing';
var min = Math.floor(jQuery(list).innerHeight()/listHeight)*-listHeight;
var max = 0;
var current = 0;
if(list) {
jQuery(mask).height(listHeight-20);
jQuery(previous).addClass('disabled');
if (current <= min)
jQuery(next).addClass('disabled');
jQuery(next).bind('click', function(){
var elements;
var callback;
if(!isAnimating) {
isAnimating = true;
current -= listHeight;
if (current <= min) {
current = min;
jQuery(this).addClass('disabled');
}
if (current < max) {
jQuery(previous).removeClass('disabled');
}
callback = function() {
isAnimating = false;
}
jQuery(list)
.animate({'margin-top': current+'px'}, duration, easing, callback);
}
return false;
});
jQuery(previous).bind('click', function(){
var elements;
var callback;
if(!isAnimating) {
isAnimating = true;
current += listHeight;
if (current >= max) {
current = max;
jQuery(this).addClass('disabled');
}
if (current > min) {
jQuery(next).removeClass('disabled');
}
callback = function() {
isAnimating = false;
}
jQuery(list)
.animate({'margin-top': current+'px'}, duration, easing, callback);
}
return false;
});
}
});
Он отлично работает в Firefox, но не работает в IE7 ... вместо того, чтобы красиво прокручивать, он прокручивает примерно 1/4 расстояния, которое должно, исобытие не отображается последовательно при нажатии кнопки «Далее».
Я подозреваю, что это связано с тем, что я изменил CSS, так как этот код работал раньше ... но я не уверен, гденачать.Я просмотрел каждую переменную с помощью Firequery, и в Firefox, по крайней мере, она дает мне правильные измерения, а такие элементы, как «список», являются элементами HTML, которые я ищу ...