Hi,
ich habe angefangen, mit jQuery ein Script zu bauen, was ähnlich wie die Lightbox funktionieren soll. Hintergrund ist, dass ich einfach nicht gerne in anderen Scripts rumfusche...
Das Script entspricht beim Öffnen eines Bildes auch annähernd meinen Vorstellungen. Öffne ich aber ein anderes Bild, werden bei den Berechnungen von Größe und Position die Daten aus dem ersten Bild genomen.
Im Grunde müsste ich nur wissen, wie ich das Img-Objekt wieder zurücksetze, damit ich wieder von vorne starten kann.
Um mein Problem verständlich besser rüberzubekommen, hier mein Code:
Lg weedo
ich habe angefangen, mit jQuery ein Script zu bauen, was ähnlich wie die Lightbox funktionieren soll. Hintergrund ist, dass ich einfach nicht gerne in anderen Scripts rumfusche...
Das Script entspricht beim Öffnen eines Bildes auch annähernd meinen Vorstellungen. Öffne ich aber ein anderes Bild, werden bei den Berechnungen von Größe und Position die Daten aus dem ersten Bild genomen.
Im Grunde müsste ich nur wissen, wie ich das Img-Objekt wieder zurücksetze, damit ich wieder von vorne starten kann.
Um mein Problem verständlich besser rüberzubekommen, hier mein Code:
HTML:
<script src="js/jquery.js"></script>
<script>
function start() {
$("#imgShow").animate({
opacity: 0
}, 1000, function() {
document.getElementById("imgShow").style.display = "inline";
});
$("#imgShowed").animate({
opacity: 0
}, 1, function() {
document.getElementById("imgShowed").style.display = "inline";
});
}
function showImg(o) {
document.getElementById("imgShow").style.display = "inline";
document.getElementById("imgShowed").style.display = "inline";
imgSrc = document.getElementById(o).src;
newImg = document.getElementById("imgShowed");
newImg.src = imgSrc;
newImgX = newImg.offsetWidth;
newImgY = newImg.offsetHeight;
center = document.getElementById("imgShow").offsetWidth / 2;
middle = document.getElementById("imgShow").offsetHeight / 2;
if(newImgX >= newImgY) {
if(newImgX >= 601) {
newImg.width = 600;
newImg.height = 600 * newImgY / newImgX;
newImgTop = newImg.height / 2;
newImg.style.top = middle - newImgTop;
newImg.style.left = center - 300;
} else {
newImg.width = newImgX;
newImg.height = newImgY;
newImgTop = newImg.height / 2;
newImgLeft = newImg.width / 2;
newImg.style.top = middle - newImgTop;
newImg.style.left = center - newImgLeft;
}
} else {
if(newImgY >= 401) {
newImg.height = 400;
newImg.width = 400 * newImgX / newImgY;
newImgLeft = newImg.width / 2;
newImg.style.top = middle - 200;
newImg.style.left = center - newImgLeft;
} else {
newImg.width = newImgX;
newImg.height = newImgY;
newImgTop = newImg.height / 2;
newImg.style.top = middle - newImgTop;
newImg.style.left = center - 300;
}
}
newImg.style.border = "25px solid #fff";
newImg.style.borderBottom = "50px solid #fff";
$("#imgShow").animate({
opacity: 0.8
}, 400, function() {
$("#imgShowed").animate({
opacity: 1
}, 500, function() {
});
});
}
function hideImg() {
$("#imgShow").animate({
opacity: 0
}, 400, function() {
});
$("#imgShowed").animate({
opacity: 0
}, 400, function(){
});
document.getElementById("imgShow").style.display = "none";
document.getElementById("imgShowed").style.display = "none";
}
document.onkeydown = function(event) {
if(event.keyCode==27) {
hideImg();
}
}
</script>
<body onload="start();">
<img id="imgShowed" style="position: fixed; background: #fff; display: none; z-index: 11; top: 50px;" />
<table>
<tr>
<td>
<a href="javascript:showImg('IMG_0232.jpg');"><img src="galerie/IMG_0232.jpg" id="IMG_0232.jpg" width="200" /></a>
</td>
<td>
<a href="javascript:showImg('IMG_0233.jpg');"><img src="galerie/IMG_0233.jpg" id="IMG_0233.jpg" width="200" /></a>
</td>
<TD>
<a href="javascript:showImg('InnervationFruit_2001.jpg');"><img src="galerie/InnervationFruit_2001.jpg" id="InnervationFruit_2001.jpg" width="200"/></a>
</TD>
<td>
<a href="javascript:showImg('logo');"><img src="logo.PNG" id="logo" width="200" /></a>
</td>
</tr>
</table>
</body>
<div id="imgShow" style="width: 100%; height: 100%; top: 0px; left: 0px; position: fixed; background-color: #000; z-index: 10; display: none;"></div>
Lg weedo