selfhtml.de - Alles für den Webmaster!

 

Empfehlung:

wix.com

Kostenlose Homepage

Besuchen Sie auch:

Jobs:

DHTML Fenster immer an fester Position bei ver. Auflösungen

Autor: windows-club
Datum: 08.04.2015 11:41:50

Hi, ich hab ein etwas komplexeres Problem.
Ich brauche ein DHTML Fenster, was immer am oberen Rand ist, egal bei welcher Auflösung. Weiter soll das Fenster nur eine bestimmte Zeit angezeigt werden, mit der Möglichkeit es aber vorher schon selber schließen zu können. Anschließend soll ein Cookie gesetzt werden, das dieses Fenster nur 1 x am Tag erscheint. Ich hab mir hier zwar schon was zusammen gebastelt, nur das bei mir die Position Fix ist und somit es Probleme bei verschiedenen Auflösungen gibt. Hat da einer eine Idee wie man das ändern könnte oder einen anderen passenden Codeschnipsel für mich?
Hab zwar hier einen kleinen Ansatz, aber zu mich da schwer das in meinem restlichem Code umzusetzen. http://www.web-toolbox.net/webtoolbox/dhtml/floting-layer/floating-box-01.htm

Derzeitiger Code:
<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="de">
<head>
<title>Test</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">

<style type="text/css">

#topbar{
position:absolute;
border: 1px solid #CFCFCF;
padding: 2px;
background-color: #EFEFEF;
width: 700px;
visibility: hidden;
z-index: 100;
}

</style>
</head>
<body>

<script type="text/javascript">
function tino23(popurl){
var winpops=window.open(popurl,"","width=800,height=600,toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=0,left=112,top=70")
}
</script>

<!-- Einblendung-->
<style type="text/css">
#Tino23AdDiv {left: 0px; width: 1px; position: absolute; top: 0px}
</style>
<script type="text/javascript">
adTime=10; // seconds ad reminder is shown
chanceAd=1; // ad will be shown 1 in X times (put 1 for everytime)

var ns=(document.layers);
var ie=(document.all);
var w3=(document.getElementById && !ie);
var calunit=ns? "" : "px"
adCount=0;
function initAd(){
if(!ns && !ie && !w3) return;
if(ie) adDiv=eval('document.all.Tino23AdDiv.style');
else if(ns) adDiv=eval('document.layers["Tino23AdDiv"]');
else if(w3) adDiv=eval('document.getElementById("Tino23AdDiv").style');
randAd=Math.ceil(Math.random()*chanceAd);
if (ie||w3)
adDiv.visibility="visible";
else
adDiv.visibility ="show";
if(randAd==1) showAd();}

function showAd(){
if(adCount<adTime*10){adCount+=1;
if (ie){documentWidth =truebody().offsetWidth/2+truebody().scrollLeft-20;
documentHeight =truebody().offsetHeight/2+truebody().scrollTop-20;}
else if (ns){documentWidth=window.innerWidth/2+window.pageXOffset-20;
documentHeight=window.innerHeight/2+window.pageYOffset-20;}
else if (w3){documentWidth=self.innerWidth/2+window.pageXOffset-20;
documentHeight=self.innerHeight/2+window.pageYOffset-20;}
adDiv.left=documentWidth-400+calunit;adDiv.top =documentHeight-335+calunit;
setTimeout("showAd()",100);}else closeAd();}

function closeAd(){
if (ie||w3)
adDiv.display="none";
else
adDiv.visibility ="hide";}

function truebody(){
return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body}

function get_cookie(Name) {
var search = Name + "="
var returnvalue = ""
if (document.cookie.length > 0) {
offset = document.cookie.indexOf(search)
if (offset != -1) {
offset += search.length
end = document.cookie.indexOf(";", offset)
if (end == -1)
end = document.cookie.length;
returnvalue=unescape(document.cookie.substring(offset, end))
}
}
return returnvalue;
}

function dropornot(){
if (get_cookie("droppedin")==""){
onload=initAd;
document.cookie="droppedin=yes"
}
}
dropornot()

function dismissbox(){
if (ie||w3)
adDiv.display="none";
else
adDiv.visibility ="hide";
}
//End-->
</script>

<div id="Tino23AdDiv" style="visibility:hidden">
<table width="850px" height="90px" bgcolor="#BFBFBF"><tr><td>
<table width="845px" height="85px" bgcolor="#F2F2F2" border="0">
<tr>
<td align="left" valign="top">

Textinhalt des Fensters

</td>
<td align="right" valign="top" width="20px">
<img width="16" height="16" title="" alt="" onClick="dismissbox();return false" src="data:image/gif;base64,R0lGODlhEAAQAPf/AP///z9fPwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAAEAAQAAAIMAABCBxIsKDBgwgTKlzI0GAAAQQfJpQIgOJEARYVZry40SHEih8PZuzYsKTJkwQDAgA7" />
</td>
</tr></table></td></tr></table>
</div>

</body>
</html>



Re: DHTML Fenster immer an fester Position bei ver. Auflösungen

Autor: Matthias
Datum: 08.04.2015 12:42:08

> Hi, ich hab ein etwas komplexeres Problem.
> Ich brauche ein DHTML Fenster, was immer am
> oberen Rand ist, egal bei welcher Auflösung.

Brauchst Du ein Fenster oder einen Container innerhalb der Website? Dein Link zeigt auf eine Containerlösung.

Am effektivsten sollte das mit PHP funktionieren. Das Schliessen des Containers allerdings dann mit einem Javascript.

Bereits beim Aufruf der Seite kann nach dem Cookie gesucht werden. Wenn dieser vorhanden ist, wird die Zeitdifferenz berechnet, an Hand derer entschieden wird, ob der Container überhaupt angezeigt wird.
Wird er gezeigt, kann ein Javascript-Timer den Container schließen oder die Seite neu laden mit der Direktive, den Container dieses mal nicht mitzuschicken.

Zu Deinem Code: es ist Zeit auf HTML 5 umzusteigen!

Grüße

Matthias



Re: DHTML Fenster immer an fester Position bei ver. Auflösungen

Autor: windows-club
Datum: 08.04.2015 14:48:42

Danke erst mal für deine Antwort. In Sachen HTML5 hänge ich noch etwas hinterher ;-). Hast du da mal ein Codeschnipsel für mich?



Re: DHTML Fenster immer an fester Position bei ver. Auflösungen

Autor: Matthias
Datum: 08.04.2015 15:40:20

> Danke erst mal für deine Antwort. In Sachen HTML5
> hänge ich noch etwas hinterher ;-). Hast du da
> mal ein Codeschnipsel für mich?

Dann solltest Du mal die Grundlagen von HTML 5 ansehen. Du wirst erkennen, dass im Grunde erstmal der Doctype geändert wurde und dieser auch noch viel einfacher ist. Weitere Unterschiede sind dann neue Elemente, die man benutzen kann, aber nicht muss. In der Syntax bestehender Elemente gibts nur marginale Änderungen. Das nächste Update des Google-Suchalgorythmus wird Seiten, die nicht für Mobilgeräte optimiert sind, auf Smartphones nicht mehr finden und von Desktops aus schlechter gefunden werden. Inwieweit HTML 4 bei den Anpassungen an Mobilgeräte noch mitmacht weiss ich zwar nicht, aber da der Standard über 10 Jahre alt ist, stehen die Chancen gut, dass Du der Entwicklung hinterher laufen wirst.

Nein, einen Codeschnipsel kann ich Dir nicht liefern, ich hab keine Zeit, mal eben ein paar Stunden zu investieren, ohne zu wissen, was genau dabei heraus kommen soll.

Wir helfen gerne weiter, aber die Grundarbeit müsstest Du selber hier einliefern. Einen Anfang hast Du schon. Diesen solltest Du erstmal bereinigen, denn auch nach HTML 4.01 gehört das Style-Element niemals in den Body, sondern immer in den Head. Ist Dein HTML nicht standardkonform, ist das Ergebnis darauf aufsetzender CSS-Scripte und JS-Scripte reine Glückssache.

Entferne die Inline-Style, Spagetti-Code macht alles nur unübersichtlicher und schwerer handlebar.

Wahrscheinlich ist auch die Tabelle fehl am Platz. Tabellen sind gedacht, um Daten zu strukturieren und nicht, um eine Seite in Bereiche zu teilen, dafür gibt es das DIV-Element.

Als nächstes füge im Kopf den PHP-Code für das Setzen des Cookies ein. Dieses liefert Dir ja später die Info, ob der Besucher schon einmal da war oder nicht.

Als nächstes brauchst Du ein einfaches PHP Script, welches an Hand des Cookies entscheidet, ob der Bereich überhaupt gerendert werden soll.

Wenn dieses Grundgerüst steht, kann man als nächstes mit Javascript daran gehen, das Ausschalten des Containers/Fensters zu manipulieren.
Dafür müssen aber einige andere in diesen Thread einsteigen, weil Javascript gar nicht mein Gebiet ist.

Grüße

Matthias





Re: DHTML Fenster immer an fester Position bei ver. Auflösungen

Autor: Matthias
Datum: 08.04.2015 15:49:35

Ich hatte denAnhang zu den Cookies vergessen. Hier ist er.

Matthias


Re: DHTML Fenster immer an fester Position bei ver. Auflösungen

Autor: windows-club
Datum: 09.04.2015 11:23:05

Ok danke noch mal für deine Mühe. Das mit dem Doctyp wusste ich, aber ich hab halt noch viel HTML4 drin und dashalb hab ich nich den einfacheren von HTML5 drin <!DOCTYPE html>
Das mit dem CSS im Body Bereich stimm, hab ich beim Ausprobieren nicht gemerkt, dass sollte naürlich nicht dahin. Von den Tabellen muss ich mich wirklich mal Veranschieden, das macht mitlerweile mehr Probleme, als es Sinn macht. Nutze es bloß oft noch zum schnellen Testen und Ausprobieren, da ich für div Container immer noch etwas länger brauche zwecks der Ausrichtung. In Sachen Google, hatte ich mich schon mal schlau gemacht https://developers.google.com/webmasters/mobile-sites/#documentation?hl=de
Ich werd wohl alles noch mal Löschen und von vorne Anfangen, ist wohl doch nicht mit einer kleinen Änderrung am Quelltext gemacht :-(