Avatar billede artery_graphics Nybegynder
09. oktober 2002 - 14:22 Der er 8 kommentarer og
1 løsning

Height script problem

Hvad skulle der være galdt her?
Faktisk skal det virke for både IE og NS, så netscape checket skal vel droppes. Men jeg har i forvejen problemer med at få det til at virke...

<script type="text/javascript"><!--
NS = (navigator.userAgent.indexOf('Netscape')!=-1)?true:false;
var height768 = (screen.availHeight==768)?true:false;
var height864 = (screen.height==864)?true:false;
var height900 = (screen.height==900)?true:false;
var height960 = (screen.height==960)?true:false;
var height1024 = (screen.height==1024)?true:false;
var height1200 = (screen.height==1200)?true:false;
//--></script>


<td valign="top" background="images/border.gif" bgcolor="#F1F1F1">
<script type="text/javascript"><!--

if (NS&&height768) {
  document.write('<img border="0" src="images/adjust.gif" width="5" height="1000">');
} else if (NS&&height864) {
  document.write('<img border="0" src="images/adjust.gif" width="5" height="500">');
} else if (NS&&height900) {
  document.write('<img border="0" src="images/adjust.gif" width="5" height="700">');
} else if (NS&&height960) {
  document.write('<img border="0" src="images/adjust.gif" width="5" height="800">');
} else if (NS&&height1024) {
  document.write('<img border="0" src="images/adjust.gif" width="5" height="900">');
} else if (NS&&height1200) {
  document.write('<img border="0" src="images/adjust.gif" width="5" height="1200">');
}
//--></script></td>
Avatar billede erikjacobsen Ekspert
09. oktober 2002 - 14:29 #1
Undskyld et "irrelevant" spørgsmål: hvorfor aflæser du skærmens
størrelse. Det er vel vinduets størrelse der er langt mere interessant.
Ikke alle kører med deres browser i fuld skærm.
Avatar billede artery_graphics Nybegynder
09. oktober 2002 - 14:33 #2
Men så er det vel bare denne screen.availHeight i stedet for screen.height.
Det hjælper bare stadig ikke på, at det ikke virker..
Avatar billede jakoba Nybegynder
09. oktober 2002 - 14:42 #3
<script type="text/javascript"><!--
var height768 = (screen.height==768)?true:false;
var height864 = (screen.height==864)?true:false;
var height900 = (screen.height==900)?true:false;
var height960 = (screen.height==960)?true:false;
var height1024 = (screen.height==1024)?true:false;
var height1200 = (screen.height==1200)?true:false;
//--></script>

det virker faktisk længere tilbage i NS end det gør i IE.

men det virker ikke ret godt, for det du tester er om højden er præcis lig med så mange pixel i hver betingelse. og det er ikke specielt sandsynligt at brugerens skærm netop ramme een af dine værdier.

det er bedre at teste på intervaller og større end:

var height768 = (screen.height<=768)?true:false;  // lille skærm
var height864 = (screen.height>768 && screen.height<=864 )?true:false; // lidt større
...

mvh JakobA
Avatar billede artery_graphics Nybegynder
09. oktober 2002 - 14:49 #4
Okay.. men hvordan vil hele scriptet så se ud på denne måde, hvis alle
opløsninger over 768 skal dækkes ind.. og hvis det skal virke i både IE og NS? Jeg har læst en del tidligere spørgsmål igennem hvor, du selv deltager i det berømte spørgsmål om Height="100%" problemet..
Avatar billede jakoba Nybegynder
09. oktober 2002 - 15:03 #5
for at dække ALLE størrelser ind skulle du sige:
var height768 = (screen.height==768)?true:false;
var height769 = (screen.height==769)?true:false;
var height770 = (screen.height==770)?true:false;
var height771 = (screen.height==771)?true:false;
var height772 = (screen.height==772)?true:false;
...
... osv osv lidt over 500 linier op til
...
var height1277 = (screen.height==1277)?true:false;
var height1278 = (screen.height==1278)?true:false;
var height1279 = (screen.height==1279)?true:false;
var height1280 = (screen.height==1280)?true:false;

og der findes stadig både større og mindre skærme det kunne være. Jeg så for ikke længe siden en reklame for en skærm på 3600/2400 pixel

Læs erikjakobsens indlæg een gang til. Du prøver at løse det forkerte problem :-)

mvh JakobA
Avatar billede artery_graphics Nybegynder
09. oktober 2002 - 15:12 #6
Okay.. det bliver lidt meget af det gode.
Men kan man så ikke aflæse brugerens screen.availHeight og så sætte den
værdi ind i scriptet der skal styrer den adjust.gif height størrelse?

if (læs brugerens screen.availHeight ) {
  document.write('<img border="0" src="images/adjust.gif" width="5" height="indsæt brugerens screen.availHeight værdi">');
Avatar billede jakoba Nybegynder
09. oktober 2002 - 15:25 #7
screen.awailHeight er IE-only, der skal bruges  screen.height  for at Netscape kan være med.
men ellers jo. sådan kan du godt gøre.

document.write('<img border="0" src="images/adjust.gif" width="5" height="' +screen.height +'">');

men jeg tror ikke du bliver glad for resultatet.

mvh JakobA
Avatar billede artery_graphics Nybegynder
09. oktober 2002 - 15:34 #8
Hmm.. hvordan vil hele script se ud?
Kan godt se problemet med at værdien af en opløsning på 1024x768 blir
en for høj Height værdi.

Men kan script ikke læse brugerens screen.height og så sige denne værdi
-20 eller -100 og så sætte dette resultat ind som Height værdien
for adjust.gif billede?

Mit problem er denne side: http://www.theselfimages.com/test2.htm
hvor del verticale mørkegrå streg skal nå til bunden af skærmen, det samme skal den hvide og den grå flade på hver sin side af den. Jeg bruger adjust.gif i en tabelcelle for sig til at udvide height for hele tabellen,
men denn kan jo ikke være en fast px størrelse af hensyn til forskellige opløsnger.
Avatar billede artery_graphics Nybegynder
11. oktober 2002 - 12:10 #9
Dette spørgsmål er lukket
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