mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Fr 26.04.2024 03:26 Benutzername: Passwort: Auto-Login

Thema: Kinomodus realisieren vom 17.09.2011


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> Kinomodus realisieren
Autor Nachricht
kramsen
Threadersteller

Dabei seit: 06.12.2008
Ort: im Anschnitt
Alter: -
Geschlecht: Männlich
Verfasst Sa 17.09.2011 20:49
Titel

Kinomodus realisieren

Antworten mit Zitat Zum Seitenanfang

Abend,

Unzwar möchte ich einen Kinomodus auf meiner Seite realisieren. D.h. ich habe in meinem php-Dokument einen SWF-Player zu sitzen und möchte den restlichen Content, am besten durch nen Klick auf einen Button, abdunkeln bzw. dimmen.

Es gibt ja diverse Lightboxes, die im Prinzip meinen Zweck erfüllen, jedoch immer neuen Content in Form von Pop-Ups etc. öffnen.

Ich denke das dürfte doch mit Javascript und CSS möglich sein, oder irre ich mich damit? Eventuell mit halbtransparenten PNGs?
Meine Frage: Hat sich jemand damit schon näher befasst, gibt es derartige Tools oder sonstige Hilfestellungen?

Ich danke im Voraus!


Zuletzt bearbeitet von kramsen am Sa 17.09.2011 21:02, insgesamt 2-mal bearbeitet
  View user's profile Private Nachricht senden
choise

Dabei seit: 01.02.2007
Ort: Würzburg
Alter: 35
Geschlecht: Männlich
Verfasst Sa 17.09.2011 21:51
Titel

Antworten mit Zitat Zum Seitenanfang

http://flowplayer.org/tools/demos/toolbox/expose/index.html
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Anzeige
Anzeige
kramsen
Threadersteller

Dabei seit: 06.12.2008
Ort: im Anschnitt
Alter: -
Geschlecht: Männlich
Verfasst So 18.09.2011 05:49
Titel

Antworten mit Zitat Zum Seitenanfang

choise hat geschrieben:
http://flowplayer.org/tools/demos/toolbox/expose/index.html


Danke,

ist doch aber auf den Flowplayer beschränkt, oder?
  View user's profile Private Nachricht senden
choise

Dabei seit: 01.02.2007
Ort: Würzburg
Alter: 35
Geschlecht: Männlich
Verfasst So 18.09.2011 11:15
Titel

Antworten mit Zitat Zum Seitenanfang

nein, das hat nichts mit dem flowplayer zu tun. ist eben von den gleichen leuten. jquery-tools ist eine art library für jquery mit verschiedenen plugins. eben auch diesem expose teil, das kannst du natürlich anwenden, auf was du willst.
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
immerIch

Dabei seit: 19.10.2010
Ort: #mein{display:block}
Alter: 35
Geschlecht: Männlich
Verfasst Di 20.09.2011 15:35
Titel

Antworten mit Zitat Zum Seitenanfang

Im Grunde brauchst du kein Plugin dafür.

Dein Container mit dem Video gibst du

Code:

position:relative;
z-index:999;


Dazu brauchst du noch einen Container, der den schwarzen "Schleier" darstellt:

Code:

<span id="kinomodus">Kinomodus</span>
<div id="schleier"></div>

#kinomodus{
position:relative;
z-index:999;
}

#schleier{
position:absolute;
top:0;
left:0;
background: #000;
opacity:0.5;
z-index:997;
display:none;
}



Diesen Schleier lässt du nun per klick auf einen Link mit z.b. jQuery ein/ausblenden:

Code:

var kinomodus = false;
$('#kinomodus').click(function(){
  if(!kinomodus){
    $('#schleier').fadeIn();
    kinomodus=true;
  } else {
    $('#schleier').fadeOut();
    kinomodus=false;
  }
});



Zuletzt bearbeitet von immerIch am Di 20.09.2011 15:40, insgesamt 2-mal bearbeitet
  View user's profile Private Nachricht senden
kramsen
Threadersteller

Dabei seit: 06.12.2008
Ort: im Anschnitt
Alter: -
Geschlecht: Männlich
Verfasst Do 22.09.2011 17:00
Titel

Antworten mit Zitat Zum Seitenanfang

Danke für deine Antwort @immerIch, sehr hilfreich!

Ich habe derzeit auch schon eine Lösung mithilfe von javascript gefunden, die auch wunderbar funktioniert.

dim.js

Code:

var pageLayer = {
    layerElement    : null,
    maxLayerOpacity : 0.7,
   
    addRemoveLayer : function() {
        if (this.layerElement == null) {
            // create layer element
            this.layerElement = document.createElement('div');
           
            // attach event
            this.layerElement.onmousedown = function() {
                pageLayer.fadeLayer(-0.1, pageLayer.maxLayerOpacity);
            }
           
            // set styles of layer element
            this.layerElement.style.position        = 'absolute';
            this.layerElement.style.top             = '0px';
            this.layerElement.style.left            = '0px';
            this.layerElement.style.width           = '100%';
            this.layerElement.style.height          = document.documentElement.scrollHeight + 'px';
            this.layerElement.style.minHeight       = '100%';    // for IE
            this.layerElement.style.backgroundColor = '#000';
            document.documentElement.style.overflow = 'hidden';
           
            // add layer to body
            document.getElementsByTagName('body')[0].appendChild(this.layerElement);
        } else {
            // remove layer and make document scrollable
            document.getElementsByTagName('body')[0].removeChild(this.layerElement);
            document.documentElement.style.overflow = 'visible';
            this.layerElement = null;
        }
    },
   
    fadeLayer : function(addend) {
        var opacity;
       
        // if not called by timeout
        if (arguments[1] == null) {
            // add layer
            this.addRemoveLayer();
           
            if (addend > 0) {
                opacity = 0;
            } else if (addend < 0) {
                opacity = this.maxLayerOpacity;
            } else {
                return;
            }
        } else {
            opacity = arguments[1];
        }
       
        opacity += addend;
       
        // prevent rounding errors
        opacity = Math.round(opacity * 10) / 10;
       
        // if maximum or minimum is exceeded
        if (opacity > this.maxLayerOpacity) {
            return;
        } else if (opacity < 0) {
            // remove layer before exit
            this.addRemoveLayer();
            return;
        }
       
        // check for Internet Explorer
        if (navigator.userAgent.indexOf('MSIE') > -1) {
            this.layerElement.style.filter = 'Alpha(opacity=' + (opacity * 100) + ')';
        } else {
            this.layerElement.style.opacity = opacity;
        }
       
        setTimeout('pageLayer.fadeLayer(' + addend + ', ' + opacity + ');', 20);
    }
};


Mein Dokument mit dem SWF-Player:

Code:



<div id="player"><script> Player </script></div>
<a href="#" onClick="javascript:pageLayer.fadeLayer(0.05);">Kinomodus</a>



Jetzt stellt sich mir nur ein Problem: Der Player wird auch verdunkelt, das war nicht mein Ziel. Wenn ich die ID "Player" per CSS auf "postion: absolute;" setze, funktioniert es. Jedoch zerschiesst mir das meine gesamte Seite.

Kann man das eleganter, wenn möglich ohne "position: absolute;", sondern direkt im Javascript lösen?
Danke an alle helfenden Hände! Lächel

Edit: Ahh! Ich sehe in deiner Lösung ist das Problem per z-index gelöst!


Zuletzt bearbeitet von kramsen am Do 22.09.2011 17:09, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
 
Ähnliche Themen Wie realisieren?
[flash, 3d, ai] wie realisieren?
Zinsrechner in PHP realisieren
Quiz in ASP realisieren
Schräge Menübuttons realisieren
Bildersuchfunktion mit Checkboxen. Wie realisieren?
Neues Thema eröffnen   Neue Antwort erstellen
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.