Avatar billede ssundsdal Nybegynder
30. juli 2006 - 20:37 Der er 31 kommentarer og
2 løsninger

simpel lille link-popup

<a href="test.jpg" rel="lightbox" ><img src="testmini.jpg" /></a>

Jeg ville have denne kode til at vise billedet i stort i et vindue som selv popper up, men det bliver ved med at vise sig i det samme vindue som det lille billede.
og har også prøvet følgende:

<a target="_blank" a href="test.jpg" rel="lightbox" ><img src="testmini.jpg" /></a>

Men det hjalp ikke.. Noget som jeg overser?
Avatar billede triggy Nybegynder
30. juli 2006 - 20:42 #1
<a href="test.jpg" target="_blank" rel="lightbox" ><img src="testmini.jpg"></a>
Avatar billede ssundsdal Nybegynder
30. juli 2006 - 20:49 #2
Det hjalp ikke
Avatar billede mclemens Nybegynder
30. juli 2006 - 20:50 #3
fjern måske rel="lightbox"
- evt rel="external"
Avatar billede mclemens Nybegynder
30. juli 2006 - 20:51 #4
<a href="test.jpg" target="_blank"><img src="testmini.jpg" /></a>
<a href="test.jpg" rel="external"><img src="testmini.jpg" /></a>
Avatar billede mclemens Nybegynder
30. juli 2006 - 20:53 #5
eller måske begge dele... (for lige at nævne alle 3)
<a href="test.jpg" rel="external" target="_blank"><img src="testmini.jpg" /></a>
Avatar billede mclemens Nybegynder
30. juli 2006 - 20:55 #6
... det tyder umiddelbart på at du bruger xhtml og i xhtml 1.1 er target ikke gyldig derfor er der nogen der bruger et javascript til at åbne eksterne links med rel værdien så jeg ville umiddelbart sige at <a href="test.jpg" rel="external"><img src="testmini.jpg" /></a> var den mest sandsynlige - men prøv dem ...
Avatar billede ssundsdal Nybegynder
30. juli 2006 - 20:56 #7
rel="lightbox" <- denne ska bruges,
ellers virker det ikke i mit javascript.
Avatar billede ssundsdal Nybegynder
30. juli 2006 - 20:56 #8
Det hjalp ikke nogle af dem. :/
Avatar billede ssundsdal Nybegynder
30. juli 2006 - 20:57 #9
Avatar billede mclemens Nybegynder
30. juli 2006 - 21:04 #10
Øhm, det script kan jo slet ikke det du vil...
Avatar billede ssundsdal Nybegynder
30. juli 2006 - 21:05 #11
Dvs den kun kan åbne sig i det vindue den ligger i og ikke ud over det?
Avatar billede ssundsdal Nybegynder
30. juli 2006 - 21:05 #12
Den kan kun blive i sin iframe?
Avatar billede mclemens Nybegynder
30. juli 2006 - 21:07 #13
[ Licensed under the Creative Commons Attribution 2.5 License - http://creativecommons.org/licenses/by/2.5/
    (basically, do anything you want, just leave my name and link) ] <- Tjoh, måske kigger lige lidt på det ...
Avatar billede triggy Nybegynder
30. juli 2006 - 21:07 #14
hvorfor bruge et sådant script, hvis du alligevel bare vil have den åbnet i et nyt vindue ?
Avatar billede triggy Nybegynder
30. juli 2006 - 21:08 #15
nvm...  nu forstod jeg lige problemet :)
Avatar billede ssundsdal Nybegynder
30. juli 2006 - 21:09 #16
mcclemens - ok tak

triggy - jeg ville gerne have et gallery til mine billeder i javascript.
Avatar billede mclemens Nybegynder
30. juli 2006 - 21:15 #17
lightbox.js





/*
    Lightbox JS: Fullsize Image Overlays
    by Lokesh Dhakar - http://www.huddletogether.com

    For more information on this script, visit:
    http://huddletogether.com/projects/lightbox/

    Script featured on Dynamic Drive code library Jan 24th, 06':
    http://www.dynamicdrive.com

    Licensed under the Creative Commons Attribution 2.5 License - http://creativecommons.org/licenses/by/2.5/
    (basically, do anything you want, just leave my name and link)

- Edited 30/7-06 By Marc Clemmensen - This is not the original
- This is edited to function thorugh parent window when using iframes...
   
    Table of Contents
    -----------------
    Configuration
   
    Functions
    - getPageScroll()
    - getPageSize()
    - pause()
    - getKey()
    - listenKey()
    - showLightbox()
    - hideLightbox()
    - initLightbox()
    - addLoadEvent()
   
    Function Calls
    - addLoadEvent(initLightbox)

*/



//
// Configuration
//

// If you would like to use a custom loading image or close button reference them in the next two lines.
var loadingImage = 'loading.gif';       
var closeButton = 'close.gif';       





//
// getPageScroll()
// Returns array with x,y page scroll values.
// Core code from - quirksmode.org
//
function getPageScroll(){

    var yScroll;

    if (parent.self.pageYOffset) {
        yScroll = parent.self.pageYOffset;
    } else if (parent.document.documentElement && parent.document.documentElement.scrollTop){    // Explorer 6 Strict
        yScroll = parent.document.documentElement.scrollTop;
    } else if (parent.document.body) {// all other Explorers
        yScroll = parent.document.body.scrollTop;
    }

    arrayPageScroll = new Array('',yScroll)
    return arrayPageScroll;
}



//
// getPageSize()
// Returns array with page width, height and window width, height
// Core code from - quirksmode.org
// Edit for Firefox by pHaez
//
function getPageSize(){
   
    var xScroll, yScroll;
   
    if (parent.window.innerHeight && parent.window.scrollMaxY) {   
        xScroll = parent.document.body.scrollWidth;
        yScroll = parent.window.innerHeight + parent.window.scrollMaxY;
    } else if (parent.document.body.scrollHeight > parent.document.body.offsetHeight){ // all but Explorer Mac
        xScroll = parent.document.body.scrollWidth;
        yScroll = parent.document.body.scrollHeight;
    } else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
        xScroll = parent.document.body.offsetWidth;
        yScroll = parent.document.body.offsetHeight;
    }
   
    var windowWidth, windowHeight;
    if (parent.self.innerHeight) {    // all except Explorer
        windowWidth = parent.self.innerWidth;
        windowHeight = parent.self.innerHeight;
    } else if (parent.document.documentElement && parent.document.documentElement.clientHeight) { // Explorer 6 Strict

Mode
        windowWidth = parent.document.documentElement.clientWidth;
        windowHeight = parent.document.documentElement.clientHeight;
    } else if (parent.document.body) { // other Explorers
        windowWidth = parent.document.body.clientWidth;
        windowHeight = parent.document.body.clientHeight;
    }   
   
    // for small pages with total height less then height of the viewport
    if(yScroll < windowHeight){
        pageHeight = windowHeight;
    } else {
        pageHeight = yScroll;
    }

    // for small pages with total width less then width of the viewport
    if(xScroll < windowWidth){   
        pageWidth = windowWidth;
    } else {
        pageWidth = xScroll;
    }


    arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight)
    return arrayPageSize;
}


//
// pause(numberMillis)
// Pauses code execution for specified time. Uses busy code, not good.
// Code from http://www.faqts.com/knowledge_base/view.phtml/aid/1602
//
function pause(numberMillis) {
    var now = new Date();
    var exitTime = now.getTime() + numberMillis;
    while (true) {
        now = new Date();
        if (now.getTime() > exitTime)
            return;
    }
}

//
// getKey(key)
// Gets keycode. If 'x' is pressed then it hides the lightbox.
//

function getKey(e){
    if (e == null) { // ie
        keycode = event.keyCode;
    } else { // mozilla
        keycode = e.which;
    }
    key = String.fromCharCode(keycode).toLowerCase();
   
    if(key == 'x'){ hideLightbox(); }
}


//
// listenKey()
//
function listenKey () {    parent.document.onkeypress = getKey; }
   

//
// showLightbox()
// Preloads images. Pleaces new image in lightbox then centers and displays.
//
function showLightbox(objLink)
{
    // prep objects
    var objOverlay = parent.document.getElementById('overlay');
    var objLightbox = parent.document.getElementById('lightbox');
    var objCaption = parent.document.getElementById('lightboxCaption');
    var objImage = parent.document.getElementById('lightboxImage');
    var objLoadingImage = parent.document.getElementById('loadingImage');
    var objLightboxDetails = parent.document.getElementById('lightboxDetails');

   
    var arrayPageSize = getPageSize();
    var arrayPageScroll = getPageScroll();

    // center loadingImage if it exists
    if (objLoadingImage) {
        objLoadingImage.style.top = (arrayPageScroll[1] + ((arrayPageSize[3] - 35 - objLoadingImage.height) / 2) +

'px');
        objLoadingImage.style.left = (((arrayPageSize[0] - 20 - objLoadingImage.width) / 2) + 'px');
        objLoadingImage.style.display = 'block';
    }

    // set height of Overlay to take up whole page and show
    objOverlay.style.height = (arrayPageSize[1] + 'px');
    objOverlay.style.display = 'block';

    // preload image
    imgPreload = new Image();

    imgPreload.onload=function(){
        objImage.src = objLink.href;

        // center lightbox and make sure that the top and left values are not negative
        // and the image placed outside the viewport
        var lightboxTop = arrayPageScroll[1] + ((arrayPageSize[3] - 35 - imgPreload.height) / 2);
        var lightboxLeft = ((arrayPageSize[0] - 20 - imgPreload.width) / 2);
       
        objLightbox.style.top = (lightboxTop < 0) ? "0px" : lightboxTop + "px";
        objLightbox.style.left = (lightboxLeft < 0) ? "0px" : lightboxLeft + "px";


        objLightboxDetails.style.width = imgPreload.width + 'px';
       
        if(objLink.getAttribute('title')){
            objCaption.style.display = 'block';
            //objCaption.style.width = imgPreload.width + 'px';
            objCaption.innerHTML = objLink.getAttribute('title');
        } else {
            objCaption.style.display = 'none';
        }
       
        // A small pause between the image loading and displaying is required with IE,
        // this prevents the previous image displaying for a short burst causing flicker.
        if (navigator.appVersion.indexOf("MSIE")!=-1){
            pause(250);
        }

        if (objLoadingImage) {    objLoadingImage.style.display = 'none'; }
        objLightbox.style.display = 'block';

        // After image is loaded, update the overlay height as the new image might have
        // increased the overall page height.
        arrayPageSize = getPageSize();
        objOverlay.style.height = (arrayPageSize[1] + 'px');
       
        // Check for 'x' keypress
        listenKey();

        return false;
    }

    imgPreload.src = objLink.href;
   
}





//
// hideLightbox()
//
function hideLightbox()
{
    // get objects
    objOverlay = parent.document.getElementById('overlay');
    objLightbox = parent.document.getElementById('lightbox');

    // hide lightbox and overlay
    objOverlay.style.display = 'none';
    objLightbox.style.display = 'none';
   
    // disable keypress listener
    document.onkeypress = '';
}




//
// initLightbox()
// Function runs on window load, going through link tags looking for rel="lightbox".
// These links receive onclick events that enable the lightbox display for their targets.
// The function also inserts html markup at the top of the page which will be used as a
// container for the overlay pattern and the inline image.
//
function initLightbox()
{
   
    if (!document.getElementsByTagName){ return; }
    var anchors = document.getElementsByTagName("a");

    // loop through all anchor tags
    for (var i=0; i<anchors.length; i++){
        var anchor = anchors[i];

        if (anchor.getAttribute("href") && (anchor.getAttribute("rel") == "lightbox")){
            anchor.onclick = function () {showLightbox(this); return false;}
        }
    }

    // the rest of this code inserts html at the top of the page that looks like this:
    //
    // <div id="overlay">
    //        <a href="#" onclick="hideLightbox(); return false;"><img id="loadingImage" /></a>
    //    </div>
    // <div id="lightbox">
    //        <a href="#" onclick="hideLightbox(); return false;" title="Click anywhere to close image">
    //            <img id="closeButton" />       
    //            <img id="lightboxImage" />
    //        </a>
    //        <div id="lightboxDetails">
    //            <div id="lightboxCaption"></div>
    //            <div id="keyboardMsg"></div>
    //        </div>
    // </div>
   
    var objBody = parent.document.getElementsByTagName("body").item(0);
   
    // create overlay div and hardcode some functional styles (aesthetic styles are in CSS file)
    var objOverlay = document.createElement("div");
    objOverlay.setAttribute('id','overlay');
    objOverlay.onclick = function () {hideLightbox(); return false;}
    objOverlay.style.display = 'none';
    objOverlay.style.position = 'absolute';
    objOverlay.style.top = '0';
    objOverlay.style.left = '0';
    objOverlay.style.zIndex = '90';
    objOverlay.style.width = '100%';
    objBody.insertBefore(objOverlay, objBody.firstChild);
   
    var arrayPageSize = getPageSize();
    var arrayPageScroll = getPageScroll();

    // preload and create loader image
    var imgPreloader = new Image();
   
    // if loader image found, create link to hide lightbox and create loadingimage
    imgPreloader.onload=function(){

        var objLoadingImageLink = document.createElement("a");
        objLoadingImageLink.setAttribute('href','#');
        objLoadingImageLink.onclick = function () {hideLightbox(); return false;}
        objOverlay.appendChild(objLoadingImageLink);
       
        var objLoadingImage = document.createElement("img");
        objLoadingImage.src = loadingImage;
        objLoadingImage.setAttribute('id','loadingImage');
        objLoadingImage.style.position = 'absolute';
        objLoadingImage.style.zIndex = '150';
        objLoadingImageLink.appendChild(objLoadingImage);

        imgPreloader.onload=function(){};    //    clear onLoad, as IE will flip out w/animated gifs

        return false;
    }

    imgPreloader.src = loadingImage;

    // create lightbox div, same note about styles as above
    var objLightbox = parent.document.createElement("div");
    objLightbox.setAttribute('id','lightbox');
    objLightbox.style.display = 'none';
    objLightbox.style.position = 'absolute';
    objLightbox.style.zIndex = '100';   
    objBody.insertBefore(objLightbox, objOverlay.nextSibling);
   
    // create link
    var objLink = parent.document.createElement("a");
    objLink.setAttribute('href','#');
    objLink.setAttribute('title','Click to close');
    objLink.onclick = function () {hideLightbox(); return false;}
    objLightbox.appendChild(objLink);

    // preload and create close button image
    var imgPreloadCloseButton = new Image();

    // if close button image found,
    imgPreloadCloseButton.onload=function(){

        var objCloseButton = parent.document.createElement("img");
        objCloseButton.src = closeButton;
        objCloseButton.setAttribute('id','closeButton');
        objCloseButton.style.position = 'absolute';
        objCloseButton.style.zIndex = '200';
        objLink.appendChild(objCloseButton);

        return false;
    }

    imgPreloadCloseButton.src = closeButton;

    // create image
    var objImage = parent.document.createElement("img");
    objImage.setAttribute('id','lightboxImage');
    objLink.appendChild(objImage);
   
    // create details div, a container for the caption and keyboard message
    var objLightboxDetails = parent.document.createElement("div");
    objLightboxDetails.setAttribute('id','lightboxDetails');
    objLightbox.appendChild(objLightboxDetails);

    // create caption
    var objCaption = parent.document.createElement("div");
    objCaption.setAttribute('id','lightboxCaption');
    objCaption.style.display = 'none';
    objLightboxDetails.appendChild(objCaption);

    // create keyboard message
    var objKeyboardMsg = parent.document.createElement("div");
    objKeyboardMsg.setAttribute('id','keyboardMsg');
    objKeyboardMsg.innerHTML = 'press <kbd>x</kbd> to close';
    objLightboxDetails.appendChild(objKeyboardMsg);


}




//
// addLoadEvent()
// Adds event to window.onload without overwriting currently assigned onload functions.
// Function found at Simon Willison's weblog - http://simon.incutio.com/
//
function addLoadEvent(func)
{   
    var oldonload = window.onload;
    if (typeof window.onload != 'function'){
        window.onload = func;
    } else {
        window.onload = function(){
        oldonload();
        func();
        }
    }

}



addLoadEvent(initLightbox);    // run initLightbox onLoad
Avatar billede mclemens Nybegynder
30. juli 2006 - 21:15 #18
en hel masse parent. 's tilføjet...
Avatar billede ssundsdal Nybegynder
30. juli 2006 - 21:17 #19
prøvede at erstatte denne tekst med den nuværende,
men den laver det samme nummer.. :/
Avatar billede mclemens Nybegynder
30. juli 2006 - 21:20 #20
Du har hel ret - her er den der virker her...
ovenstående script og:


<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"

"http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="content-type"

content="text/html; charset=iso-8859-1"><title>Ingen titel</title>


<link rel="stylesheet" href="lightbox.css" type="text/css" media="screen" />
<script type="text/javascript" src="lightbox.js"></script>


</head><body>
<iframe src="2.html" width="200" height="200"></iframe>
</body></html>






samt iframen:


<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="content-type" content="text/html; charset=iso-8859-1"><title>Ingen titel</title>

<script type="text/javascript" src="lightbox.js"></script>


</head><body>
<a href="./image.jpg" rel="lightbox" ><img src="image.jpg" /></a>

<a href="cat.jpg" rel="lightbox" title="Caption- cute cat!"><img src="cat_thumb.jpg" /></a>

<a href="dan.jpg" rel="lightbox" title="My best friend Dan">Dan</a>
</body></html>
Avatar billede mclemens Nybegynder
30. juli 2006 - 21:21 #21
... bemærk scriptet lægger i begge sider og
css'en er flyttet op til mainframen
Avatar billede ssundsdal Nybegynder
30. juli 2006 - 21:22 #22
Det prøver jeg nok først her i morgen, jeg bliver desværre nødt til at hoppe af nettet nu!
Så smid et svar så jeg ka acceptere i morgen hvis det virker.
Avatar billede mclemens Nybegynder
30. juli 2006 - 21:22 #23
Ok :o)
Avatar billede mclemens Nybegynder
30. juli 2006 - 21:40 #24
Fandt lige en parent. jeg manglede (undrede mig over hvorfor scriptet skulle være på hovedframen)  så vi tager lige smøren igen:




<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="content-type" content="text/html; charset=iso-8859-1"><title>Ingen titel</title>


<link rel="stylesheet" href="lightbox.css" type="text/css" media="screen" />



</head><body>
<iframe src="2.html" width="200" height="200"></iframe>
</body></html>

^ - css dokumentet skal flyttes til hovedframen



iframen skal bare have javascriptet (hovedframen skal ikke)

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="content-type" content="text/html; charset=iso-8859-1"><title>Ingen titel</title>


<script type="text/javascript" src="lightbox.js"></script>

</head><body>
<a href="./image.jpg" rel="lightbox" ><img src="image.jpg" /></a>

</body></html>








.... og javascriptet igen...





/*
    Lightbox JS: Fullsize Image Overlays
    by Lokesh Dhakar - http://www.huddletogether.com

    For more information on this script, visit:
    http://huddletogether.com/projects/lightbox/

    Script featured on Dynamic Drive code library Jan 24th, 06':
    http://www.dynamicdrive.com

    Licensed under the Creative Commons Attribution 2.5 License - http://creativecommons.org/licenses/by/2.5/
    (basically, do anything you want, just leave my name and link)

- Edited 30/7-06 By Marc Clemmensen - This is not the original
- This is edited to function thorugh parent window when using iframes...
   
    Table of Contents
    -----------------
    Configuration
   
    Functions
    - getPageScroll()
    - getPageSize()
    - pause()
    - getKey()
    - listenKey()
    - showLightbox()
    - hideLightbox()
    - initLightbox()
    - addLoadEvent()
   
    Function Calls
    - addLoadEvent(initLightbox)

*/



//
// Configuration
//

// If you would like to use a custom loading image or close button reference them in the next two lines.
var loadingImage = 'loading.gif';       
var closeButton = 'close.gif';       





//
// getPageScroll()
// Returns array with x,y page scroll values.
// Core code from - quirksmode.org
//
function getPageScroll(){

    var yScroll;

    if (parent.self.pageYOffset) {
        yScroll = parent.self.pageYOffset;
    } else if (parent.document.documentElement && parent.document.documentElement.scrollTop){    // Explorer 6 Strict
        yScroll = parent.document.documentElement.scrollTop;
    } else if (parent.document.body) {// all other Explorers
        yScroll = parent.document.body.scrollTop;
    }

    arrayPageScroll = new Array('',yScroll)
    return arrayPageScroll;
}



//
// getPageSize()
// Returns array with page width, height and window width, height
// Core code from - quirksmode.org
// Edit for Firefox by pHaez
//
function getPageSize(){
   
    var xScroll, yScroll;
   
    if (parent.window.innerHeight && parent.window.scrollMaxY) {   
        xScroll = parent.document.body.scrollWidth;
        yScroll = parent.window.innerHeight + parent.window.scrollMaxY;
    } else if (parent.document.body.scrollHeight > parent.document.body.offsetHeight){ // all but Explorer Mac
        xScroll = parent.document.body.scrollWidth;
        yScroll = parent.document.body.scrollHeight;
    } else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
        xScroll = parent.document.body.offsetWidth;
        yScroll = parent.document.body.offsetHeight;
    }
   
    var windowWidth, windowHeight;
    if (parent.self.innerHeight) {    // all except Explorer
        windowWidth = parent.self.innerWidth;
        windowHeight = parent.self.innerHeight;
    } else if (parent.document.documentElement && parent.document.documentElement.clientHeight) { // Explorer 6 Strict

Mode
        windowWidth = parent.document.documentElement.clientWidth;
        windowHeight = parent.document.documentElement.clientHeight;
    } else if (parent.document.body) { // other Explorers
        windowWidth = parent.document.body.clientWidth;
        windowHeight = parent.document.body.clientHeight;
    }   
   
    // for small pages with total height less then height of the viewport
    if(yScroll < windowHeight){
        pageHeight = windowHeight;
    } else {
        pageHeight = yScroll;
    }

    // for small pages with total width less then width of the viewport
    if(xScroll < windowWidth){   
        pageWidth = windowWidth;
    } else {
        pageWidth = xScroll;
    }


    arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight)
    return arrayPageSize;
}


//
// pause(numberMillis)
// Pauses code execution for specified time. Uses busy code, not good.
// Code from http://www.faqts.com/knowledge_base/view.phtml/aid/1602
//
function pause(numberMillis) {
    var now = new Date();
    var exitTime = now.getTime() + numberMillis;
    while (true) {
        now = new Date();
        if (now.getTime() > exitTime)
            return;
    }
}

//
// getKey(key)
// Gets keycode. If 'x' is pressed then it hides the lightbox.
//

function getKey(e){
    if (e == null) { // ie
        keycode = event.keyCode;
    } else { // mozilla
        keycode = e.which;
    }
    key = String.fromCharCode(keycode).toLowerCase();
   
    if(key == 'x'){ hideLightbox(); }
}


//
// listenKey()
//
function listenKey () {    parent.document.onkeypress = getKey; }
   

//
// showLightbox()
// Preloads images. Pleaces new image in lightbox then centers and displays.
//
function showLightbox(objLink)
{
    // prep objects
    var objOverlay = parent.document.getElementById('overlay');
    var objLightbox = parent.document.getElementById('lightbox');
    var objCaption = parent.document.getElementById('lightboxCaption');
    var objImage = parent.document.getElementById('lightboxImage');
    var objLoadingImage = parent.document.getElementById('loadingImage');
    var objLightboxDetails = parent.document.getElementById('lightboxDetails');

   
    var arrayPageSize = getPageSize();
    var arrayPageScroll = getPageScroll();

    // center loadingImage if it exists
    if (objLoadingImage) {
        objLoadingImage.style.top = (arrayPageScroll[1] + ((arrayPageSize[3] - 35 - objLoadingImage.height) / 2) +

'px');
        objLoadingImage.style.left = (((arrayPageSize[0] - 20 - objLoadingImage.width) / 2) + 'px');
        objLoadingImage.style.display = 'block';
    }

    // set height of Overlay to take up whole page and show
    objOverlay.style.height = (arrayPageSize[1] + 'px');
    objOverlay.style.display = 'block';

    // preload image
    imgPreload = new Image();

    imgPreload.onload=function(){
        objImage.src = objLink.href;

        // center lightbox and make sure that the top and left values are not negative
        // and the image placed outside the viewport
        var lightboxTop = arrayPageScroll[1] + ((arrayPageSize[3] - 35 - imgPreload.height) / 2);
        var lightboxLeft = ((arrayPageSize[0] - 20 - imgPreload.width) / 2);
       
        objLightbox.style.top = (lightboxTop < 0) ? "0px" : lightboxTop + "px";
        objLightbox.style.left = (lightboxLeft < 0) ? "0px" : lightboxLeft + "px";


        objLightboxDetails.style.width = imgPreload.width + 'px';
       
        if(objLink.getAttribute('title')){
            objCaption.style.display = 'block';
            //objCaption.style.width = imgPreload.width + 'px';
            objCaption.innerHTML = objLink.getAttribute('title');
        } else {
            objCaption.style.display = 'none';
        }
       
        // A small pause between the image loading and displaying is required with IE,
        // this prevents the previous image displaying for a short burst causing flicker.
        if (navigator.appVersion.indexOf("MSIE")!=-1){
            pause(250);
        }

        if (objLoadingImage) {    objLoadingImage.style.display = 'none'; }
        objLightbox.style.display = 'block';

        // After image is loaded, update the overlay height as the new image might have
        // increased the overall page height.
        arrayPageSize = getPageSize();
        objOverlay.style.height = (arrayPageSize[1] + 'px');
       
        // Check for 'x' keypress
        listenKey();

        return false;
    }

    imgPreload.src = objLink.href;
   
}





//
// hideLightbox()
//
function hideLightbox()
{
    // get objects
    objOverlay = parent.document.getElementById('overlay');
    objLightbox = parent.document.getElementById('lightbox');

    // hide lightbox and overlay
    objOverlay.style.display = 'none';
    objLightbox.style.display = 'none';
   
    // disable keypress listener
    document.onkeypress = '';
}




//
// initLightbox()
// Function runs on window load, going through link tags looking for rel="lightbox".
// These links receive onclick events that enable the lightbox display for their targets.
// The function also inserts html markup at the top of the page which will be used as a
// container for the overlay pattern and the inline image.
//
function initLightbox()
{
   
    if (!document.getElementsByTagName){ return; }
    var anchors = document.getElementsByTagName("a");

    // loop through all anchor tags
    for (var i=0; i<anchors.length; i++){
        var anchor = anchors[i];

        if (anchor.getAttribute("href") && (anchor.getAttribute("rel") == "lightbox")){
            anchor.onclick = function () {showLightbox(this); return false;}
        }
    }

    // the rest of this code inserts html at the top of the page that looks like this:
    //
    // <div id="overlay">
    //        <a href="#" onclick="hideLightbox(); return false;"><img id="loadingImage" /></a>
    //    </div>
    // <div id="lightbox">
    //        <a href="#" onclick="hideLightbox(); return false;" title="Click anywhere to close image">
    //            <img id="closeButton" />       
    //            <img id="lightboxImage" />
    //        </a>
    //        <div id="lightboxDetails">
    //            <div id="lightboxCaption"></div>
    //            <div id="keyboardMsg"></div>
    //        </div>
    // </div>
   
    var objBody = parent.document.getElementsByTagName("body").item(0);
   
    // create overlay div and hardcode some functional styles (aesthetic styles are in CSS file)
    var objOverlay = parent.document.createElement("div");
    objOverlay.setAttribute('id','overlay');
    objOverlay.onclick = function () {hideLightbox(); return false;}
    objOverlay.style.display = 'none';
    objOverlay.style.position = 'absolute';
    objOverlay.style.top = '0';
    objOverlay.style.left = '0';
    objOverlay.style.zIndex = '90';
    objOverlay.style.width = '100%';
    objBody.insertBefore(objOverlay, objBody.firstChild);
   
    var arrayPageSize = getPageSize();
    var arrayPageScroll = getPageScroll();

    // preload and create loader image
    var imgPreloader = new Image();
   
    // if loader image found, create link to hide lightbox and create loadingimage
    imgPreloader.onload=function(){

        var objLoadingImageLink = document.createElement("a");
        objLoadingImageLink.setAttribute('href','#');
        objLoadingImageLink.onclick = function () {hideLightbox(); return false;}
        objOverlay.appendChild(objLoadingImageLink);
       
        var objLoadingImage = document.createElement("img");
        objLoadingImage.src = loadingImage;
        objLoadingImage.setAttribute('id','loadingImage');
        objLoadingImage.style.position = 'absolute';
        objLoadingImage.style.zIndex = '150';
        objLoadingImageLink.appendChild(objLoadingImage);

        imgPreloader.onload=function(){};    //    clear onLoad, as IE will flip out w/animated gifs

        return false;
    }

    imgPreloader.src = loadingImage;

    // create lightbox div, same note about styles as above
    var objLightbox = parent.document.createElement("div");
    objLightbox.setAttribute('id','lightbox');
    objLightbox.style.display = 'none';
    objLightbox.style.position = 'absolute';
    objLightbox.style.zIndex = '100';   
    objBody.insertBefore(objLightbox, objOverlay.nextSibling);
   
    // create link
    var objLink = parent.document.createElement("a");
    objLink.setAttribute('href','#');
    objLink.setAttribute('title','Click to close');
    objLink.onclick = function () {hideLightbox(); return false;}
    objLightbox.appendChild(objLink);

    // preload and create close button image
    var imgPreloadCloseButton = new Image();

    // if close button image found,
    imgPreloadCloseButton.onload=function(){

        var objCloseButton = parent.document.createElement("img");
        objCloseButton.src = closeButton;
        objCloseButton.setAttribute('id','closeButton');
        objCloseButton.style.position = 'absolute';
        objCloseButton.style.zIndex = '200';
        objLink.appendChild(objCloseButton);

        return false;
    }

    imgPreloadCloseButton.src = closeButton;

    // create image
    var objImage = parent.document.createElement("img");
    objImage.setAttribute('id','lightboxImage');
    objLink.appendChild(objImage);
   
    // create details div, a container for the caption and keyboard message
    var objLightboxDetails = parent.document.createElement("div");
    objLightboxDetails.setAttribute('id','lightboxDetails');
    objLightbox.appendChild(objLightboxDetails);

    // create caption
    var objCaption = parent.document.createElement("div");
    objCaption.setAttribute('id','lightboxCaption');
    objCaption.style.display = 'none';
    objLightboxDetails.appendChild(objCaption);

    // create keyboard message
    var objKeyboardMsg = parent.document.createElement("div");
    objKeyboardMsg.setAttribute('id','keyboardMsg');
    objKeyboardMsg.innerHTML = 'press <kbd>x</kbd> to close';
    objLightboxDetails.appendChild(objKeyboardMsg);


}




//
// addLoadEvent()
// Adds event to window.onload without overwriting currently assigned onload functions.
// Function found at Simon Willison's weblog - http://simon.incutio.com/
//
function addLoadEvent(func)
{   
    var oldonload = window.onload;
    if (typeof window.onload != 'function'){
        window.onload = func;
    } else {
        window.onload = function(){
        oldonload();
        func();
        }
    }

}



addLoadEvent(initLightbox);    // run initLightbox onLoad
Avatar billede ssundsdal Nybegynder
31. juli 2006 - 12:37 #25
Det ser lidt forvirrende ud for mig,
du kunne vel ikke lige hurtigt skrive mere nøjagtigt så jeg forstår det (: hvor de forskellige filer ska sættes ind.. som fx.

css dokumentet skal flyttes til hovedframen <-- Vil det så sige den ska i toppen i min index? og ska jeg så stadig bruge min css fil osv.

Smider gerne flere point i hvis det er, da jeg ka se det ikke var lige så simpelt som jeg havde regnet med.
Avatar billede ssundsdal Nybegynder
31. juli 2006 - 12:43 #26
Sig til hvis jeg ska smide min kildekode ind på diverse sider som jeg skal indsætte tingene på, hvis det ville gøre det meget nemmere.
Avatar billede mclemens Nybegynder
31. juli 2006 - 12:51 #27
1. Du har din iframe - i den iframe viser du en fil - i den fils markup har du en linje der peger på javascriptet ( <script type="text/javascript" src="lightbox.js"></script> ) ... det er helt fint den linje skal blive stående - du sletter så linjen til scriptets css fil fra din iframes html markup ( <link rel="stylesheet" href="lightbox.css" type="text/css" media="screen" /> ).

2. du finder den fil hvor din iframe er placeret i (hovedframen) - altså den side hvor du har <iframe src ... stående på denne side indsætter du den css linje du fjernede fra selve siden du viser i iframen ( <link rel="stylesheet" href="lightbox.css" type="text/css" media="screen" /> ).

3. du retter javascript filen til det ovenstående script.

4. Hvis forklaringen ikke er forståelig er jeg nødt
til at have kildekoden / link for at rette de 2 filer ...
punkt 3. burde være ligetil ...
Avatar billede ssundsdal Nybegynder
31. juli 2006 - 12:58 #28
Ja, punkt 3 var nem nok.
det er mere det andet som forvirre mig..

Tror nu hellere du må få kildekolden..

(kildekolden fra billeder.html)

<html><center>
<head>
<title>Title</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">

<br>
<img border="0" src="top2.jpg" width="66" height="15"></center>
<p align="center">&nbsp;

<p align="center">&nbsp;</p>

</html>

(kildekoden for index.html)

<html><center>
<head>
<!-- Minus AutoDato -->
<title>title</title>
<META NAME="Generator" CONTENT="Stone's WebWriter 3.5">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">

<table id="Table_01" width="801" height="601" border="0" cellpadding="0" cellspacing="0">
    <tr>
        <td colspan="12" background="images/index_01.jpg" width="800" height="211"></td>
        <td>
            <img src="images/spacer.gif" width="1" height="211" alt=""></td>
    </tr>
    <tr>
        <td rowspan="15">
            <img src="images/index_02.jpg" width="46" height="389" alt=""></td>
        <td colspan="4">
            <a href="forside.html" target="midt">
                <img src="images/index_03.jpg" width="60" height="14" border="0" alt=""></a></td>
        <td colspan="3" rowspan="4">
            <img src="images/index_04.jpg" width="69" height="42" alt=""></td>
        <td colspan="3" rowspan="12" background="images/index_05.jpg" width="584" height="354">
<iframe src="forside.html" name="midt" width="584" height="354" frameborder="0" allowtransparency="true"></iframe>
            </td>
        <td rowspan="15">
            <img src="images/index_06.jpg" width="41" height="389" alt=""></td>
        <td>
            <img src="images/spacer.gif" width="1" height="14" alt=""></td>
    </tr>
    <tr>
        <td colspan="4">
            <img src="images/index_07.jpg" width="60" height="9" alt=""></td>
        <td>
            <img src="images/spacer.gif" width="1" height="9" alt=""></td>
    </tr>
    <tr>
        <td colspan="3">
            <a href="omos.html" target="midt">
                <img src="images/index_08.jpg" width="55" height="13" border="0" alt=""></a></td>
        <td rowspan="2">
            <img src="images/index_09.jpg" width="5" height="19" alt=""></td>
        <td>
            <img src="images/spacer.gif" width="1" height="13" alt=""></td>
    </tr>
    <tr>
        <td colspan="3">
            <img src="images/index_10.jpg" width="55" height="6" alt=""></td>
        <td>
            <img src="images/spacer.gif" width="1" height="6" alt=""></td>
    </tr>
    <tr>
        <td colspan="5">
            <a href="billeder.html" target="midt">
                <img src="images/index_11.jpg" width="64" height="16" border="0" alt=""></a></td>
        <td colspan="2" rowspan="4">
            <img src="images/index_12.jpg" width="65" height="45" alt=""></td>
        <td>
            <img src="images/spacer.gif" width="1" height="16" alt=""></td>
    </tr>
    <tr>
        <td colspan="5">
            <img src="images/index_13.jpg" width="64" height="8" alt=""></td>
        <td>
            <img src="images/spacer.gif" width="1" height="8" alt=""></td>
    </tr>
    <tr>
        <td colspan="2">
            <a href="musik.html" target="midt">
                <img src="images/index_14.jpg" width="48" height="13" border="0" alt=""></a></td>
        <td colspan="3" rowspan="2">
            <img src="images/index_15.jpg" width="16" height="21" alt=""></td>
        <td>
            <img src="images/spacer.gif" width="1" height="13" alt=""></td>
    </tr>
    <tr>
        <td colspan="2">
            <img src="images/index_16.jpg" width="48" height="8" alt=""></td>
        <td>
            <img src="images/spacer.gif" width="1" height="8" alt=""></td>
    </tr>
    <tr>
        <td colspan="6">
            <a href="http://www.sundsdal.gerdts.dk/tagwall.asp" target="midt">
                <img src="images/index_17.jpg" width="87" height="16" border="0" alt=""></a></td>
        <td rowspan="7">
            <img src="images/index_18.jpg" width="42" height="302" alt=""></td>
        <td>
            <img src="images/spacer.gif" width="1" height="16" alt=""></td>
    </tr>
    <tr>
        <td colspan="6">
            <img src="images/index_19.jpg" width="87" height="7" alt=""></td>
        <td>
            <img src="images/spacer.gif" width="1" height="7" alt=""></td>
    </tr>
    <tr>
        <td>
            <a href="links.html" target="midt">
                <img src="images/index_20.jpg" width="43" height="12" border="0" alt=""></a></td>
        <td colspan="5" rowspan="5">
            <img src="images/index_21.jpg" width="44" height="279" alt=""></td>
        <td>
            <img src="images/spacer.gif" width="1" height="12" alt=""></td>
    </tr>
    <tr>
        <td rowspan="4">
            <img src="images/index_22.jpg" width="43" height="267" alt=""></td>
        <td>
            <img src="images/spacer.gif" width="1" height="232" alt=""></td>
    </tr>
    <tr>
        <td colspan="3">
            <img src="images/index_23.jpg" width="584" height="11" alt=""></td>
        <td>
            <img src="images/spacer.gif" width="1" height="11" alt=""></td>
    </tr>
    <tr>
        <td rowspan="2">
            <img src="images/index_24.jpg" width="268" height="24" alt=""></td>
        <td>
            <a href="blabla.html" target="_blank">
                <A HREF="mailto:sssundsdal@yahoo.dk"><img src="images/index_25.jpg" width="91" height="10" border="0" alt=""></A></a></td>
        <td rowspan="2">
            <img src="images/index_26.jpg" width="225" height="24" alt=""></td>
        <td>
            <img src="images/spacer.gif" width="1" height="10" alt=""></td>
    </tr>
    <tr>
        <td>
            <img src="images/index_27.jpg" width="91" height="14" alt=""></td>
        <td>
            <img src="images/spacer.gif" width="1" height="14" alt=""></td>
    </tr>
    <tr>
        <td>
            <img src="images/spacer.gif" width="46" height="1" alt=""></td>
        <td>
            <img src="images/spacer.gif" width="43" height="1" alt=""></td>
        <td>
            <img src="images/spacer.gif" width="5" height="1" alt=""></td>
        <td>
            <img src="images/spacer.gif" width="7" height="1" alt=""></td>
        <td>
            <img src="images/spacer.gif" width="5" height="1" alt=""></td>
        <td>
            <img src="images/spacer.gif" width="4" height="1" alt=""></td>
        <td>
            <img src="images/spacer.gif" width="23" height="1" alt=""></td>
        <td>
            <img src="images/spacer.gif" width="42" height="1" alt=""></td>
        <td>
            <img src="images/spacer.gif" width="268" height="1" alt=""></td>
        <td>
            <img src="images/spacer.gif" width="91" height="1" alt=""></td>
        <td>
            <img src="images/spacer.gif" width="225" height="1" alt=""></td>
        <td>
            <img src="images/spacer.gif" width="41" height="1" alt=""></td>
        <td></td>
    </tr>
</table>

</body>
</center></html>
Avatar billede mclemens Nybegynder
31. juli 2006 - 13:01 #29
(kildekolden fra billeder.html)

<html><center>
<head>
<title>Title</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script type="text/javascript" src="lightbox.js"></script>
</head>
<body bgcolor="#FFFFFF" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">

<br>
<img border="0" src="top2.jpg" width="66" height="15"></center>
<p align="center">&nbsp;

<p align="center">&nbsp;</p>

</html>






(kildekoden for index.html)

<html><center>
<head>
<!-- Minus AutoDato -->
<title>title</title>
<META NAME="Generator" CONTENT="Stone's WebWriter 3.5">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" href="lightbox.css" type="text/css" media="screen" />
</head>

... og resten af kildekoden ...
Avatar billede ssundsdal Nybegynder
31. juli 2006 - 13:12 #30
Så virker det sku, mange tak ska du have.. Syns du fortjener mere end de 15 p..

Men har lige en sidste ting..
Når man nu kommer ind under billede sektionen på siden - så nede i hjørnet står der "der opstod en fejl på siden" og det er kun under billede sektionen.
Ska jeg bare overse dette eller?
Avatar billede mclemens Nybegynder
31. juli 2006 - 13:35 #31
Tjoh, den var da lidt drilsk - men ikke decideret svær :o)

... med hensyn til fejlen så:

    } else if (parent.document.documentElement && parent.document.documentElement.clientHeight) { // Explorer 6 Strict

Mode

- den linje blev ombrudt - søg efter "Mode" find linjen og ret til

    } else if (parent.document.documentElement && parent.document.documentElement.clientHeight) { // Explorer 6 Strict Mode

... så skulle den være der :o)
Avatar billede ssundsdal Nybegynder
31. juli 2006 - 13:49 #32
mange tak :) smider lige 60 p din vej
Avatar billede ssundsdal Nybegynder
31. juli 2006 - 13:50 #33
http://www.eksperten.dk/spm/723317

resten af point er her.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester