Я получил список логотипов, которые должны быть центрированы, пока все хорошо. При доступе к странице я заметил, что изображения получили уродливый скачок при позиционировании. Поэтому я решил установить div над этими логотипами, уменьшить непрозрачность с 1 до 0 и, наконец, удалить его, чтобы они снова стали кликабельными.
Очень хорошо работает в Firefox, Opera и т. д., но НЕ в IE.
Я перешел на полную версию jQuery. Вывод отладчика выглядит так:
if ( set ) {
style[ name ] = value;
}
Вот код, который я использую, и html:
jQuery(window).load(function() {
jQuery(".img_center").each(function(){
var $li = jQuery(this), $img = $li.find('img');
$img.css('padding-top', ($li.height() / 2) - ($img.height() / 2));
});
jQuery(".overlay_pic").animate({opacity: 0}, 2000, 'swing').queue(function(){
jQuery(this).remove();
});
});
HTML:
<li class="img_center">
<div class="overlay_pic"></div>
<a href="">
<img src="image/logos/countryclassics.jpg" border="0" alt="" />
</a>
</li>
<li style="margin:0;" class="img_center">
<div class="overlay_pic"></div>
<a href="">
<img src="image/logos/donna.jpg" border="0" alt="" />
</a>
</li>
CSS:
.overlay_pic{
width:inherit;
height:inherit;
background:white;
opacity:1;
position:absolute;
}
Любые идеи? :/
Редактировать: хорошо, позиционирование является источником этой ошибки. Расчет значения padding-top колеблется между правильным значением и бредовым бинго.
высота li (половина) обычно -> 80, но иногда просто 8. В результате padding-top -13px.
Итак, новая функция расчета выигрыша?!
Edit3: Хорошо, к черту динамический расчет...
РЕШЕНИЕ
jQuery(window).load(function() {
var li = "80";
jQuery(".img_center").each(function(){
var $li = jQuery(this), $img = $li.find('img');
$img.css('padding-top', (li) - ($img.height() / 2));
});
jQuery(".overlay_pic").animate({opacity: 0}, 2000, 'swing').queue(function(){
jQuery(this).remove();
});
});
Я задаю высоту статично, без расчета. Слава богу, это не полноценная динамическая ul li box...