Avatar billede minau Nybegynder
02. februar 2002 - 01:43 Der er 2 kommentarer og
1 løsning

Et lag der er fixed?

Kan man fiksere et lag så den ikke køre med og op ned når der scrooles?

(noget a la fixed mht. baggrundsbilled)
Avatar billede gryn Nybegynder
02. februar 2002 - 02:39 #1
HEAD:

    <SCRIPT LANGUAGE="JavaScript">
<!-- Original: Randy Bennett (rbennett@thezone.net) -->
<!-- Web Site: http://home.thezone.net/~rbennett/sitemap.htm -->

<!-- This script and many more are available free online at -->
<!-- Javafile.com!! http://www.javafile.com -->

<!-- Begin
function setVariables() {
if (navigator.appName == "Netscape") {
v = ".top=";
h = ".left=";
dS = "document.";
sD = "";
y = "window.pageYOffset";
x = "window.pageXOffset";
iW = "window.innerWidth";
iH = "window.innerHeight";
}

else {
h = ".pixelLeft=";
v = ".pixelTop=";
dS = "";
sD = ".style";
y = "document.body.scrollTop";
x = "document.body.scrollLeft";
iW = "document.body.clientWidth";
iH = "document.body.clientHeight";
}
xyz = 500;
innerX = eval(iW) - 115;
innerY = eval(iH) - 110;
object = "logo";
checkLocationA();
}
movex = 0;
movey = 0;
xdiff = 0;
ydiff = 0;
ystart = 0;
xstart = 0;

function checkLocation() {
yy = eval(y);
xx = eval(x);
ydiff = ystart - yy;
xdiff = xstart - xx;
if ((ydiff < (-1)) || (ydiff > (1))) movey = Math.round(ydiff / 10), ystart -= movey;
if ((xdiff < (-1)) || (xdiff > (1))) movex = Math.round(xdiff / 10), xstart -= movex;
eval(dS + object + sD + v + (ystart + innerY));
eval(dS + object + sD + h + (xstart + innerX));
setTimeout("checkLocation()", 10);
}

function checkLocationA() {
ystart = eval(y);
xstart=eval(x);
}

function switchLogo(abc) {
if (abc == "menu") {
eval(dS + object + sD + v + 0);
eval(dS + object + sD + h + (-200));
object = abc;
}
else xyz = setTimeout("delayLogo()", 2000)
}

function delayLogo() {
eval(dS + object + sD + v + 0);
eval(dS + object + sD + h + (-200));
object = 'logo';
}
// End -->
</script>

BODY:


<!--BODY CODE HER-->
<div id="logo" style="position:absolute; visibility:show; left:0px; top:-200px; z-index:2">

<table border=0 cellspacing=10 cellpadding=0 width=100>
<tr>
<td>
<center><br><br><br>
<A href="java script:void(0)"; onmouseover="switchLogo('menu')">

Logo

</A>
</center>
</td>
</tr>
</table>


</div>


<div id="menu" style="position:absolute; visibility:show; left:0px; top:-200px; z-index:2">

<table border=0 cellspacing=10 cellpadding=0 width=100>
<tr>
<td>
<center>
<a href="http://www.your-site.com/page-one.html"; onmouseover="clearTimeout(xyz)"; onmouseout="switchLogo('logo')">Page One</a>
</center>
</td>
</tr>
<tr>
<td>
<center>
<a href="http://www.your-site.com/page-two.html"; onmouseover="clearTimeout(xyz)"; onmouseout="switchLogo('logo')">Page Two</a>
</center>
</td>
</tr>
<tr>
<td>
<center>
<a href="http://www.your-site.com/page-three.html"; onmouseover="clearTimeout(xyz)"; onmouseout="switchLogo('logo')">Page Three</a>
</center>
</td>
</tr>
</table>

</div>


----------------------------------
Taget fra www.javafile.com

mvh. gryn
Avatar billede minau Nybegynder
07. februar 2002 - 02:07 #2
hmmm - d virker jo ikke
Avatar billede pelkjaer Nybegynder
07. februar 2002 - 02:22 #3
Men det gør dette her:

<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript" type="text/javascript">
<!--
window.onerror=null;
var topMargin = 0
var slideTime = 10
var ns6 = (!document.all && document.getElementById);
var ie4 = (document.all);
var ns4 = (document.layers);
function layerObject(id,left) {
  if (ns6){
    this.obj = document.getElementById(id).style;
    this.obj.left = left;
    return this.obj;
  } else if(ie4) {
    this.obj = document.all[id].style;
    this.obj.left = left;
    return this.obj;
  } else if(ns4) {
    this.obj = document.layers[id];
    this.obj.left = left;
    return this.obj;
  }
}
function layerSetup() {
  floatLyr = new layerObject('floatLayer2', pageWidth*.0);
  window.setInterval("main()", 10)
}
function floatObject2() {
  if (ns4 || ns6) {
    findHt = window.innerHeight;
  } else if(ie4) {
    findHt = document.body.clientHeight;
  }
}
function main() {
  if (ns4) {
    this.currentY = document.layers["floatLayer2"].top;
    this.scrollTop = window.pageYOffset;
    mainTrigger();
  } else if(ns6) {
    this.currentY = parseInt(document.getElementById('floatLayer2').style.top);
    this.scrollTop = scrollY;
    mainTrigger();
  } else if(ie4) {
    this.currentY = floatLayer2.style.pixelTop;
    this.scrollTop = document.body.scrollTop;
    mainTrigger();
  }
}
function mainTrigger() {
  var newTargetY = this.scrollTop + this.topMargin
  if ( this.currentY != newTargetY ) {
    if ( newTargetY != this.targetY ) {
      this.targetY = newTargetY
      floatStart();
    }
    animator();
  }
}
function floatStart() {
  var now = new Date()
  this.A = this.targetY - this.currentY
  this.B = Math.PI / ( 2 * this.slideTime )
  this.C = now.getTime()
  if (Math.abs(this.A) > this.findHt) {
    this.D = this.A > 0 ? this.targetY - this.findHt : this.targetY + this.findHt
    this.A = this.A > 0 ? this.findHt : -this.findHt
  } else {
    this.D = this.currentY
  }
}
function animator() {
  var now = new Date()
  var newY = this.A * Math.sin( this.B * ( now.getTime() - this.C ) ) + this.D
  newY = Math.round(newY)
  if (( this.A > 0 && newY > this.currentY ) || ( this.A < 0 && newY < this.currentY )) {
  if ( ie4 )document.all.floatLayer2.style.pixelTop = newY
  if ( ns4 )document.layers["floatLayer2"].top = newY
  if ( ns6 )document.getElementById('floatLayer2').style.top = newY + "px"
  }
}

function detectIt() {
  if(ns6||ns4) {
    pageWidth=innerWidth;
    pageHeight=innerHeight;
    layerSetup();
    floatObject2();
  } else if(ie4) {
    pageWidth=document.body.clientWidth;
    pageHeight=document.body.clientHeight;
    layerSetup();
    floatObject2();
  }
}

function forceIt() {
  history.go(0);
}
//-->
</script>
</head>

<body bgcolor="#FFFFFF" text="#000000" onLoad="detectIt()" onResize="forceIt();detectIt()">
<!-- PersistentLayer2-->
<div id="floatLayer2" style="position:absolute; height:200px; width:200px; left:30px; top:1px; z-index:100; background-color: #00FFFF; layer-background-color: #00FFFF; border: 1px none #000000">
  <table width="200">
    <tr>
      <td>Dette layer bliver p&aring; plads :o)</td>
    </tr>
  </table>
</div>
<!--End PersistentLayer2-->
</body>
</html>

Ønsker du en mere "glidende" effekt kan du ændre det i linjen:

var slideTime = 10

Prøv med fx. 2400 istedet for 10.
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