У тебя плагин срабатывает до того, как загрузились картинки. Потому он не может определить их размер. А после перезагрузки страницы картинки берутся из кеша и их размер он к моменту работы уже знает.
Вариантов решения 3:
1. В каждом теге img прописать реальные width и height картинок:
<div style="width:200px; height:150px;" class="demoItem">
<img class="cover" src="/gallery/alfa/alfa3" style="width:56px; height:507px;" / >
</div>
2. Запускать плагин по событию onload:
$(function(){
$(window).load(function(){
$('.cover').плагин();
});
});
Как вариант, можно повесть плагин не на загрузку страницы в целом, а на окончание загрузки каждой из картинок:
$(function(){
$('.cover').load(function(){
$(this).плагин();
});
});
3. Не париться с тегом img, а использовать картинку как фон с масштабированием:
CSS:
.demoItem {
background-size: cover;
}
HTML:
<div style="width:200px; height:150px; background-image: url(/gallery/alfa/alfa3);" class="demoItem"></div>