Erfahrungen mit Fancybox ? Brauch Hilfe.

Famous

Aktives Mitglied
Thread Starter
Dabei seit
15.03.2009
Beiträge
680
Reaktionspunkte
14
Kann gar nicht glauben, dass es zu dem Thema noch keinen Thread gibt.

Ich bin heute auf Fancybox gestoßen, da ich eine Funktion in meine iWeb Page einbauen will, mit dieser man Bilder betrachten kann.

Unter auf der Seite wird die Vorgehensweise beschrieben, jedoch spart der Autor da mit Worten ;)
Zumindest werde ich nicht schlau draus. z.B. Wo muss man die Html Codes einfügen ? Ich denk mir mal, in den html baustein in iweb. Aber wo genau in den Code ? Unter Header ?

Vielleicht kanns mir jemand mal in ein paar Worten erklären.
 
Er spart mit Worten weil's nicht viel mehr zu sagen gibt:

In den Header (also irgendwo zwischen den < head > und < /head > Tags)
PHP:
<script type="text/javascript" src="path-to-file/jquery.js"></script>
<script type="text/javascript" src="path-to-file/jquery.fancybox.js"></script>
<link rel="stylesheet" href="path-to-file/fancybox.css" type="text/css" media="screen">

Dann musst Du nur bei dem Link, der sich in der Fancybox öffnen soll, eine ID hinzufügen, je nachdem ob ein Bild, inline Content oder ein iFrame geladen werden sollen.

PHP:
<a id="single_image" href="image_big.jpg"><img src="image_small.jpg" alt=""/></a>
oder
PHP:
<a id="inline" href="#data">This shows content of element who has id="data"</a>
oder
PHP:
<a class="iframe" href="http://www.example">This goes to iframe</a>

Vielleicht übersehe ich auch den Stolperstein, der Dir gerade Probleme macht ...
 
Ich habs jetzt paar mal probiert. Aber ich bekomms einfach nicht hin.

Ich beschreib mal meine Vorgehensweise:

- Ordner mit Bildern erstellt. (klein und groß). Erstmal 1 Bild.
- Ordner auf FTP Server geladen.
- Dann in iweb HTML Baustein gesetzt. Und hmtl. Code reingeschrieben (und ich glaub hier liegt der Fehler. Ich muss wahrscheinlich eine eigenen html seite erstellen oder ? Aber wie bekomm ich die so hin, wie in iweb ?
- Also folgenden Code in iweb eingefügt:

PHP:
<html>

  <head>
    <title>Fotos</title><script type="text/javascript" src="path-to-file/jquery.js"></script> 
<script type="text/javascript" src="path-to-file/jquery.fancybox.js"></script> 
<link rel="stylesheet" href="path-to-file/fancybox.css" type="text/css" media="screen">

<a id="single_image" href="Area.jpg"><img src="Areaklein.jpg" alt=""/></a>  
  </head>

  <body></body>

</html>

Naja die Seite bleibt leer.

Und sorry, bin in dem Gebiet html echt nicht bewandert. :rolleyes:

(ich schätz mal bei den bildern muss ich noch angeben, in welchem ordner sie liegen oder ?)

mfg
 
PHP:
<html> 

  <head> 
    <title>Fotos</title><script type="text/javascript" src="path-to-file/jquery.js"></script>  
<script type="text/javascript" src="path-to-file/jquery.fancybox.js"></script>  
<link rel="stylesheet" href="path-to-file/fancybox.css" type="text/css" media="screen"> 
</head> 

<body>
<a id="single_image" href="Area.jpg"><img src="Areaklein.jpg" alt=""/></a>   
</body> 

</html>
Probier mal das hier
 
Dieses "path-to-file/fancybox.css" muss auch noch angepasst werden!
 
Habs grad Probiert, jetzt steht ein blaue kästchen mit fragezeichen auf der seite. beim anklicken kommt error 404.

hab als pfad jetzt den ordner angegeben. habs einmal mit "/jquery.fancybox/jquery.js" und einmal mit der komplette "www" adresse. Aber beides mal das selbe.
 
Existiert denn dieses Area.jpg bzw. dieses Areaklein.jpg ?
 
Existiert denn dieses Area.jpg bzw. dieses Areaklein.jpg ?

Ja klar. Das sind die beiden Bilddateien, die in einem Ordner auf dem Server liegen.

Habs jetzt geschafft, das das Bild zumindest in einem neuen Fenster angezeigt wird. Der Fehler war, ich hab den Ordner vergessen anzugeben beim Bildpfad.

So sieht das jetzt aus. (Muss da bild noch bissl größer ziehn)

Hier

Aber was ich will, ist ja das das Bild "aufzoomt"

Ich kann mir schon denken, dass ich das mit den anderen Code auf der Seite bewerkstelligen kann. Aber die Codes schauen nicht so einfach aus wie der erste. Kann mir das vll. jemand mal verständlich erklären ?

Und Vielen Dank für die bisherige Hilfe. Ohne euch wäre ich sicher nicht so weit gekommen !
 
...Code auf der Seite bewerkstelligen kann....

Kennt sich denn keiner mit den Codes aus ? :rolleyes:

EDIT: Hab hier noch ne Seite gefunden, wos beschrieben wird. Habs genauso gemacht, aber bei mir geht das Bild trotzdem in nem neuen Fenster auf. Liegt das vll. an Java ? Hier die Demo der Seite.
 
Zuletzt bearbeitet:
Kennt sich denn keiner mit den Codes aus ?

Doch, viele hier.
Nur Du überhaupt nicht, das ist das Problem.


Liegt das vll. an Java ?

Nein, an Dir.


Hier die Demo der Seite.

Und genau das Problem, was schon angesprochen wurde:
Die JavaScript-Dateien (FancyZoom.js und FancyZoomHTML.js) liegen nicht dort, wo der Verweis hinzeigt.
Schmeiss sie einfach in das gleiche Verzeichnis wie das HTML-Dokument und schreib dann
Code:
<script src="FancyZoom.js" type="text/javascript"></script>
<script src="FancyZoomHTML.js" type="text/javascript"></script>

in den Header.
Anschließend befasse Dich am besten mal mit den Grundlagen des Referenzierens in HTML.
 
*anbet* mein Meister :D

Es geht. VIELEN DANK AN ALLE, die geholfen haben. Und die Gedult mir mir hatten. ;)

Der Fehler beim letzten Code war, dass ich die .zip datei nicht geladen hatte :eek: (dachte wegen dem /global/.. dass die auf nem anderen server liegen. :eek:

Aber trotzdem muss es ja bei der vorherigen Version gehen. Da waren nämlich alle Pfade richtig. Naja wayne.

Jetzt muss ich nur noch die Bildgröße anpassen, denn das Bild wird kleiner "gezoomt" :D

Also hier nochmal der Vollständige Code, für evtl. Nachahmer.......

PHP:
<html>

  <head>
    
<script src="/FancyZoom.js" type="text/javascript"></script>  
<script src="/FancyZoomHTML.js" type="text/javascript"></script>
 
  </head>

  <body onload="setupZoom()">
    
<a href="/image.jpg"><img src="/image_klein.jpg" /></a>

  </body>

</html>

Wenn alles so klappt, wie ich es will, post ich mal den Link...... :)
 
Ich klink' mich jetzt hier einfach mal mit rein. Im Prinzip
funktioniert die fancybox nun so, wie sie soll (mal abge-
sehen von den Inkompatibilitätsproblemen mit dem IE6).

Leider bekomme ich es einfach nicht hin, FB meinen Vor-
stellungen entsprechend zu konfigurieren. Beispielsweise
den (halb-)transparenten Hintergrund: Die Farbe von weiss
auf schwarz umzustellen, hab ich noch geschafft, allerdings
bringe ich es nicht fertig, es dunkler erscheinen zu lassen.

Hier mal der code aus dem css:
Code:
html, body {
	height: 100%;
}

div#fancy_overlay {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: #000;
	display: none;
	z-index: 0;
}

* html div#fancy_overlay {
	position: absolute;
	height: expression(document.body.scrollHeight > document.body.offsetHeight ? document.body.scrollHeight : document.body.offsetHeight + 'px');
}

div#fancy_wrap {
	text-align: left;
}

div#fancy_loading {
	position: absolute;
	height: 40px;
	width: 40px;
	cursor: pointer;
	display: none;
	overflow: hidden;
	background: transparent;
	z-index: 100;
}

div#fancy_loading div {
	position: absolute;
	top: 0;
	left: 0;
	width: 40px;
	height: 480px;
	background: transparent url('fancy_progress.png') no-repeat;
}

div#fancy_loading_overlay {
	position: absolute;
	background-color: #FFF;
	z-index: 30;
}

div#fancy_loading_icon {
	position: absolute;
	background: url('fancy_loading.gif') no-repeat;
	z-index: 35;
	width: 16px;
	height: 16px;
}

div#fancy_outer {
	position: absolute;
    top: 0;
    left: 0;
    z-index: 90;
    padding: 18px 18px 33px 18px;
    margin: 0;
    overflow: hidden;
    background: transparent;
    display: none;
}

div#fancy_inner {
	position: relative;
	width:100%;
	height:100%;
	border: 1px solid #BBB;
	background: #FFF;
}

div#fancy_content {
	margin: 0;
	z-index: 100;
	position: absolute;
}

div#fancy_div {
	background: #000;
	color: #FFF;
	height: 100%;
	width: 100%;
	z-index: 100;
}

img#fancy_img {
	position: absolute;
	top: 0;
	left: 0;
	border:0; 
	padding: 0; 
	margin: 0;
	z-index: 100;
	width: 100%;
	height: 100%;
}

div#fancy_close {
	position: absolute;
	top: -12px;
	right: -15px;
	height: 30px;
	width: 30px;
	background: url('fancy_closebox.png') top left no-repeat;
	cursor: pointer;
	z-index: 181;
	display: none;
}

#fancy_frame {
	position: relative;
	width: 100%;
	height: 100%;
	display: none;
}

#fancy_ajax {
	width: 100%;
	height: 100%;
	overflow: auto;
}

a#fancy_left, a#fancy_right {
	position: absolute; 
	bottom: 0px; 
	height: 100%; 
	width: 35%; 
	cursor: pointer;
	z-index: 111; 
	display: none;
	background-image: url(data:image/gif;base64,AAAA);
	outline: none;
}

a#fancy_left {
	left: 0px; 
}

a#fancy_right {
	right: 0px; 
}

span.fancy_ico {
	position: absolute; 
	top: 50%;
	margin-top: -15px;
	width: 30px;
	height: 30px;
	z-index: 112; 
	cursor: pointer;
	display: block;
}

span#fancy_left_ico {
	left: -9999px;
	background: transparent url('fancy_left.png') no-repeat;
}

span#fancy_right_ico {
	right: -9999px;
	background: transparent url('fancy_right.png') no-repeat;
}

a#fancy_left:hover {
  visibility: visible;
}

a#fancy_right:hover {
  visibility: visible;
}

a#fancy_left:hover span {
	left: 20px; 
}

a#fancy_right:hover span {
	right: 20px; 
}

.fancy_bigIframe {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: transparent;
}

div#fancy_bg {
	position: absolute;
	top: 0; left: 0;
	width: 100%;
	height: 100%;
	z-index: 70;
	border: 0;
	padding: 0;
	margin: 0;
}
	
div.fancy_bg {
	position: absolute;
	display: block;
	z-index: 70;
	border: 0;
	padding: 0;
	margin: 0;
}

div.fancy_bg_n {
	top: -18px;
	width: 100%;
	height: 18px;
	background: transparent url('fancy_shadow_n.png') repeat-x;
}

div.fancy_bg_ne {
	top: -18px;
	right: -13px;
	width: 13px;
	height: 18px;
	background: transparent url('fancy_shadow_ne.png') no-repeat;
}

div.fancy_bg_e {
	right: -13px;
	height: 100%;
	width: 13px;
	background: transparent url('fancy_shadow_e.png') repeat-y;
}

div.fancy_bg_se {
	bottom: -18px;
	right: -13px;
	width: 13px;
	height: 18px;
	background: transparent url('fancy_shadow_se.png') no-repeat;
}

div.fancy_bg_s {
	bottom: -18px;
	width: 100%;
	height: 18px;
	background: transparent url('fancy_shadow_s.png') repeat-x;
}

div.fancy_bg_sw {
	bottom: -18px;
	left: -13px;
	width: 13px;
	height: 18px;
	background: transparent url('fancy_shadow_sw.png') no-repeat;
}

div.fancy_bg_w {
	left: -13px;
	height: 100%;
	width: 13px;
	background: transparent url('fancy_shadow_w.png') repeat-y;
}

div.fancy_bg_nw {
	top: -18px;
	left: -13px;
	width: 13px;
	height: 18px;
	background: transparent url('fancy_shadow_nw.png') no-repeat;
}

div#fancy_title {
	position: absolute;
	bottom: -38px;
	left: 0;
	width: 100%;
	z-index: 100;
	display: none;
}

div#fancy_title div {
	color: #FFF;
	font: bold 12px Arial;
	padding-bottom: 5px;
}

div#fancy_title table {
	margin: 0 auto;
}

div#fancy_title table td {
	padding: 0;
	vertical-align: middle;
}

td#fancy_title_left {
	height: 32px;
	width: 15px;
	background: transparent url(fancy_title_left.png) repeat-x;
}

td#fancy_title_main {
	height: 32px;
	background: transparent url(fancy_title_main.png) repeat-x;
}

td#fancy_title_right {
	height: 32px;
	width: 15px;
	background: transparent url(fancy_title_right.png) repeat-x;
}

Desweiteren würde ich gerne den Popup-Effekt nutzen,
den der Autor auf seiner Seite als drittes Beispiel für
die Einzelbild Effekte aufführt: Hier der Link. (das Bild
mit den Vögeln auf den Rohren.)

Ich hoffe, mir kann hier jemand weiterhelfen. Meine
Programmierfähigkeiten sind weit weniger als rudimentär,
deshalb bitte für DAUs. :eek:

Besten Dank im Voraus!
 
Wenn man mal in das Javascript gucked, sieht man das das Beipspiel folgenden Code benutzt:
$("a#single_3").fancybox({
'overlayShow' : false,
'zoomSpeedIn' : 600,
'zoomSpeedOut' : 500,
'easingIn' : 'easeOutBack',
'easingOut' : 'easeInBack'
});

Ausporbiert habe ich das jetzt nicht, aber das benutzt er in dem Beispiel und wenn Du den Selektor entsprechend anpasst, sollte es bei Dir genauso funktionieren.
 
Genau das war es, da war nur jemand aus einem anderen
Forum schneller. Dennoch vielen Dank...wie habt ihr beide
denn das JS auslesen können? Den Pfad im Browser ange-
ben und dann downloaden oder wie? Ich hab da echt keine
Ahnung...
 
Wenn Du Dir den Quelltext anschaust siehst Du ja im <head> wie das JS eingebunden ist.

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

Die Datei kann man dann einfach aufrufen und sich angucken.
 
Ja, das meinte ich. Danke für die Aufklärung. Für mich ist
alles jenseits von <p> und href noch Science Fiction. ;)
 
Hi,

bräuchte nochmal eure Hilfe. :rolleyes:

Hab jetzt noch ein bisschen mit dem html-code gebastelt. (langsam versteh ich ihn ;) )
Aber das mit dem Zoomen bekomme ich trotzdem nicht gebacken.

Hier mein Code:

PHP:
<html> 

**<head> 
**** 
<script src="/js-global/FancyZoom.js" type="text/javascript"></script>
<script src="/js-global/FancyZoomHTML.js" type="text/javascript"></script>

*</head> 

**<body*onload="setupZoom()"> 
**** 
<a href="/TESTComet/Area.jpg"><img src="/TESTComet/Area_klein.jpg" /></a>

**</body> 

</html>*

Die beiden ".js" dateien liegen im angegebenen Ordner. Und die beiden Bilder liegen auch im Ordner.

Das kleine Bild wird wunderbar auf der Website angezeigt, wenn ich draufklicke, wird der Browserhintergrund weiß, und das bild wird in "groß" geladen.
Was ich aber will, ist ja dass es in der Seite gezoomt wird.
Ich hab jetzt alles so gemacht, wie es auf der Seite beschrieben ist.

Aber mich wunderts das im html code der ordner mit den symbolen, also "die pfeile, und das X" für das Zoom-fenster nicht erwähnt wird. Oder passiert das in den beiden Skripten ?

Und muss ich vll. zwischen die beiden Klammern bei "<body onload="setupZoom()"> " nochwas schreiben ?
 
Ich würde das Script direkt in den head schreiben, das hat
bei mir geholfen...
Code:
zoomOpacity		:	true,
zoomSpeedIn		:	300,
zoomSpeedOut		:	200,
zoomSpeedChange		:	100,

^ Über die Zeilen müsstest Du das dann einstellen und definieren
können, wenn ich's richtig verstanden habe...


Edit:
Oder habe ich Dich falsch verstanden und Du willst einfach nur nen
transparenten Hintergrund haben?
:confused:

Edit2:
Aha...FancyZoom, da muss das aber auch irgendwie so gehen...
 
Zuletzt bearbeitet:
-----

Edit: Genau, also abgedunkelte Seite, und das bild in der mitte, mit dem "X" rechts oben im eck.


Hier mal eine Beispielseite, die ich gefunden habe. So will ich es

Und hier meine Seite: (wird z.Z. aktualisiert)

Edit2: Oh ja sorry, am anfang hatte ich fancybox. Aber das hat irgendwie auch nicht hingehauen. bzw. hab ich dann eine schöne deutsche anleitung zu fancyzoom gefunden. hast du es mit fancybox hinbekommen ? also die zoomfunktion ? Fancybox wäre natürlich besser, wegen der blätterfunktion.
 
Zuletzt bearbeitet:
Zurück
Oben Unten