Замяна на несъществуващи изображения.

metal_head

Registered
От доста време търся код за това в интернет, но намирам само разни работи за mouse over.
Трябва ми код, който да проверява дали дадено изображение съществува и ако не съществува да го заменя със служебно изображение.

http://media-swarm.com/games/news.php
На този линк, както виждате, страницата се зарежда много бавно, защото методът, който ползвам е една PHP функция. Проблемът е, че функцията се опитва да отвори всяко едно изобраение и докато не го отвори не минава надолу. Много ми се ще да намеря код, който да замества изображенията и да работи отделно от PHP -то, така че всички новини да се покажат веднага, а пък изображенията да се заместят од джаваскрипта с някаква gif анимация на зареждане, докато се отвори или не се отвори изображението.
Надявам се сте ме разбрали. Има ли такъв код? Аз гледах някакви решения с onerror, но javascript за уеб устройствата ми е малко странен, а не съм имал време да го уча и не можах да разбера как става.
 
Вариянт е да направиш така:
<a> тага ги правиш блоков елемент и задаваш изображението така:

<a style="background-image: url();">

От цсс-а задаваш дефолт изображение и ако в стайл няма нищо би трябвало да ти изкара това от цсс-а ;)
 
PHP:
$img = "http://www.animeshell.com/wp-content/uploads/2010/08/dragon-age-origins.png";

if(!@fopen($img, 'r'))
{
    $img = "http://saita.com/not-found-img.png";
}
 
Да, аз си го мислех това за фона и е добро, но има няколко причини, поради които няма да се получи точния ефект.

С fopen току що го пробвах и в момента страницата така се отваря...доста по-бързо, отколкото с метода, който ползвах аз (GetImageSize), но пак е някак бавно.
 
Да, аз отгоре и за двата начина казах по нещо. Ето проблема с този с фона:

http://media-swarm.com/games/news.php
Скролнете надолу до последната новина и вижте как излиза:
1 - Изображението, което не може да се зареди се показва върху фона и
2 - Въпреки, че съм задал background-position:right top; фонът е доста изместен...
 
metal_head каза:
Да, аз отгоре и за двата начина казах по нещо. Ето проблема с този с фона:

http://media-swarm.com/games/news.php
Скролнете надолу до последната новина и вижте как излиза:
1 - Изображението, което не може да се зареди се показва върху фона и
2 - Въпреки, че съм задал background-position:right top; фонът е доста изместен...
Добавяш:

[css]display:block;
height: 78px;
width: 145px;


[/css]

и проблема ти е решен
 
Ох, верно, че ти блок ми каза, аз съвсем съм изключил. Сега се получи! Остана само проблемът с непоказващото се изображение. То просто си стои отгоре и не се маха. Него мога ли с CSS-а да го направя невидимо, ако не се отваря ?
 
metal_head каза:
Ох, верно, че ти блок ми каза, аз съвсем съм изключил. Сега се получи! Остана само проблемът с непоказващото се изображение. То просто си стои отгоре и не се маха. Него мога ли с CSS-а да го направя невидимо, ако не се отваря ?

Не можах да те разбера? А на сайта ти не виждам май такова нещо.
 
erroriv.jpg

Ами ето как ми е при мен, с Chrome съм аз :)
 
Вместо имг таг сложи един спан там и му задай от цсс-а width height, block , а от style="" му картинакта и ако няма няма да се показва така
 

Back
Горе