tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von Quaese
ERLEDIGT
NEIN
ANTWORTEN
4
ZUGRIFFE
1700
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von Jan-Frederik Stieler
    Jan-Frederik Stieler Jan-Frederik Stieler ist offline JFS - aka DirtyWorld
    tutorials.de Moderator
    Registriert seit
    Nov 2003
    Ort
    Darmstadt
    Beiträge
    4.934
    Blog-Einträge
    1
    Hallo,
    kann mir jemand erklären wi ich die Position der Fancbox verändern kann?
    Über CSS ist das anscheinend nicht möglich, da mrt Firebug die Position als neues element.style ausgibt.
    Ich finde darüber leider nichts im Netz.

    Viele Grüße
     
    Dirt is my World
    www.janstieler.de coming soon!
    Xing Profil (OpenBC)
    del.icio.us Profil
    flickr Profil

    Portfolio

    Bitte bewerte mich wenn ich dir weitergeholfen habe. Und makiere dein Beitrag als erledigt wenn das Problem geklärt wurde.
    Information zum neuen Bewertungsmodell.

  2. #2
    Quaese Quaese ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Feb 2004
    Beiträge
    3.451
    Hi,

    das Element, in dem die Fancybox angezeigt wird, hat die ID fancybox-wrap. Hierüber sollte ein Neupositionieren möglich sein.
    Code :
    1
    2
    3
    4
    
    $('#fancybox-wrap').css({
      top: '500px',
      left: '500px'
    });

    Ciao
    Quaese
     
    Vielleicht muss man manchmal vom Weg abkommen, um nicht auf der Strecke zu bleiben!
    ----
    Der "Fortsetzungsroman" auf www.leuteforum.de

    New kind to realize large scalable projects with jQuery: jQuery SDK

  3. #3
    Avatar von Jan-Frederik Stieler
    Jan-Frederik Stieler Jan-Frederik Stieler ist offline JFS - aka DirtyWorld
    tutorials.de Moderator
    Registriert seit
    Nov 2003
    Ort
    Darmstadt
    Beiträge
    4.934
    Blog-Einträge
    1
    Moin,
    das hab ich auch schon versucht, nur über die CSS_Datei und nicht über JS.
    Hat leider nichts gebracht. So wie das aussieht wird die Positionierung ja über JS reingeschrieben und nicht über die CSS. Was ich ehrlcih gesagt etwas merkwürdig finde, da ja so eine Modalbox moglichst viele unetrschiedliche Einsatzgebiete hat und dann auch möglichst einfach angepasst werden könen sollte.

    Ich kann leider kein Link posten da die Seite noch nicht online steht.

    Viele Grüße
     
    Dirt is my World
    www.janstieler.de coming soon!
    Xing Profil (OpenBC)
    del.icio.us Profil
    flickr Profil

    Portfolio

    Bitte bewerte mich wenn ich dir weitergeholfen habe. Und makiere dein Beitrag als erledigt wenn das Problem geklärt wurde.
    Information zum neuen Bewertungsmodell.

  4. #4
    Quaese Quaese ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Feb 2004
    Beiträge
    3.451
    Hi,

    ich verstehe dich richtig: du möchtest der modalen Box beim Initialisieren eine Feste Position zuweisen, die sich nicht mehr ändern soll.

    In einem solchen Fall fällt mir nur eine Modifikation der JS-Datei ein, und zwar:

    1. Die Standardwerte um my_top, my_left und static_pos_onresize ergänzen in $.fn.fancybox.defaults (ganz unten)
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    
    $.fn.fancybox.defaults = {
      padding           : 10,
      margin            : 20,
      opacity           : false,
      modal             : false,
      cyclic            : false,
      scrolling         : 'auto',   // 'auto', 'yes' or 'no'
     
      width             : 560,
      height            : 340,
    [B]  my_top         : null,
      my_left           : null,
      static_pos_onresize: false,[/B]
     
      autoScale         : true,
      // ... usw.
    };

    2. Die Methode fancybox_get_zoom_to for return to wie nachstehend um die markierten Zeilen ergänzen:
    Code :
    1
    2
    3
    4
    5
    6
    7
    
    fancybox_get_zoom_to = function () {
      // wie bisher
     
    [B]  to.top = (currentOpts.my_top == null)? to.top : currentOpts.my_top+"px";
      to.left = (currentOpts.my_left == null)? to.left : currentOpts.my_left+"px";[/B]
     
      return to;

    3. Die Zentriermethode $.fancybox.center um nachstehende markierte Passage erweitern:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    
    $.fancybox.center = function() {
      busy = true;
     
      var view  = fancybox_get_viewport(),
      margin    = currentOpts.margin,
      to        = {};
     
      to.top    = view[3] + ((view[1] - ((wrap.height() - titleh) + (shadow * 2 ))) * 0.5);
      to.left   = view[2] + ((view[0] - (wrap.width() + (shadow * 2 ))) * 0.5);
     
      to.top    = Math.max(view[3] + margin, to.top);
      to.left   = Math.max(view[2] + margin, to.left);
     
    [B]  if(currentOpts.static_pos_onresize){
        to.top = (currentOpts.my_top == null)? to.top : currentOpts.my_top+"px";
        to.left = (currentOpts.my_left == null)? to.left : currentOpts.my_left+"px";
      }[/B]
     
      wrap.css(to);
     
      busy = false;
    };

    Nun sollte es möglich sein, die Position, an der die Box erscheinen soll, beim Initialisieren über die Eigenschaften my_top und my_left anzugeben. Die Werte werden den beiden Eigenschaften als Integerwerte ohne Einheiten übergeben.

    Soll die Position auch beim Resize beibehalten werden, so wird die Eigenschaft static_pos_onresize auf true gesetzt.

    Beispiel:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
      "http://www.w3.org/TR/html4/strict.dtd">
    <html>
    <head>
    <title>www.tutorials.de</title>
    <meta name="author" content="Quaese">
    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
    <script src="jquery-1.4.2.min.js" type="text/javascript"></script>
    <script src="fancybox/jquery.fancybox-1.3.1_selbst_Position-angeben.js" type="text/javascript"></script>
    <script src="fancybox/jquery.easing-1.3.pack.js" type="text/javascript"></script>
    <link rel="stylesheet" type="text/css" href="fancybox/jquery.fancybox-1.3.1.css">
    <style type="text/css">
      <!--
    #inline2{
      padding: 12px;
    }
     //-->
    </style>
    <script type="text/javascript">
      <!--
    $(function(){
      $("#various2").fancybox({
        'modal'   : true,
    [B]    'my_top'  : 0,
        'my_left' : 0,
        'static_pos_onresize': true[/B]
      });
    });
     //-->
    </script>
    </head>
    <body>
    <a id="various2" href="#inline2">Inline - modal window</a>
    <div id="inline_content" style="display: none;">
      <div id="inline2">
        <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. &nbsp;&nbsp; <a href="javascript:;" onclick="$.fancybox.close(); return false;">Close</a></p>
      </div>
    </div>
    </body>
    </html>

    Die modifierte JS-Datei habe ich in den Anhang gepackt.

    Vielleicht hilft es dir weiter.

    Ciao
    Quaese
    Angehängte Dateien Angehängte Dateien
    Geändert von Quaese (19.07.10 um 12:26 Uhr) Grund: Um statische Position beim Resize ergänzt
    Jan-Frederik Stieler bedankt sich. 
    Vielleicht muss man manchmal vom Weg abkommen, um nicht auf der Strecke zu bleiben!
    ----
    Der "Fortsetzungsroman" auf www.leuteforum.de

    New kind to realize large scalable projects with jQuery: jQuery SDK

  5. #5
    Avatar von Jan-Frederik Stieler
    Jan-Frederik Stieler Jan-Frederik Stieler ist offline JFS - aka DirtyWorld
    tutorials.de Moderator
    Registriert seit
    Nov 2003
    Ort
    Darmstadt
    Beiträge
    4.934
    Blog-Einträge
    1
    Hallo Quease,
    wow, werd mir das Ganze in einer ruhigen Minute durchlesen müssen.
    Und ja im Grunde verstehst du mich richtig. Eine Moadalbox wird in der Regel immer einfach nur über die Webseite gelegt ohne das man dies auch in das Gestaltungsraster der Webseite einbinden kann.

    Also ich mein damit das es darüber auf der Homepage der Fancybox keine Dokumentation drüber gibt.

    EDIT:
    Hab das jetzt so eingebaut. Funktioniert jetzt auch super. Vielen Dank.
    Das einzigste ist das die Zoomposition beim type "elastic" immer noch zentriert ist und sich nicht an der normalen Poasition orientiert.

    Aber vielen Dank und viele Grüße,
    Jan
    Geändert von Jan-Frederik Stieler (23.07.10 um 03:15 Uhr)
     
    Dirt is my World
    www.janstieler.de coming soon!
    Xing Profil (OpenBC)
    del.icio.us Profil
    flickr Profil

    Portfolio

    Bitte bewerte mich wenn ich dir weitergeholfen habe. Und makiere dein Beitrag als erledigt wenn das Problem geklärt wurde.
    Information zum neuen Bewertungsmodell.

Ähnliche Themen

  1. Wörter anderst ausgeben mit TypoScript
    Von xyba im Forum Content Management Systeme (CMS)
    Antworten: 0
    Letzter Beitrag: 07.05.08, 12:53
  2. Bilderlaufleiste mal anderst
    Von Blacksceada im Forum Javascript & Ajax
    Antworten: 6
    Letzter Beitrag: 10.12.07, 14:22
  3. Datum anderst sortieren
    Von heliii im Forum Relationale Datenbanksysteme
    Antworten: 5
    Letzter Beitrag: 15.06.07, 15:58
  4. Antworten: 6
    Letzter Beitrag: 04.11.06, 15:46
  5. An Ansicht ausrichten, nur anderst
    Von Agravain im Forum 3D Studio Max
    Antworten: 8
    Letzter Beitrag: 17.06.04, 10:47