?
Solved

Resize with animation of a DIV layer

Posted on 2006-06-28
7
Medium Priority
?
876 Views
Last Modified: 2013-11-19
I have a div that starts off as hidden. I want it to slide in to a fixed size on click.

It is used in a graph, the size-in is for effect.

Where t is the finished size for top
where w is the finished size for width
and h is the finished size for height.


<div id="Layer1" style="position:absolute; left:102px; top:<cfoutput>#t#</cfoutput>px; width:<cfoutput>#w#</cfoutput>px; height:<cfoutput>#h#</cfoutput>px; z-index:1; visibility:hidden;">
 <table width="100%" height="100%">
  <tr>
    <td class="expired">&nbsp;</td>
  </tr>
</table>
</div>

at the moment I snap it in by using
<a href="#" onClick="Layer1.style.visibility='visible';"><img name="transperantcfm_r1_c2" src="fireworksimages/transperant.cfm_r1_c2.gif" width="420" height="19" border="0" alt=""></a>

any ideas???
0
Comment
Question by:kleigh
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 4
  • 3
7 Comments
 
LVL 63

Expert Comment

by:Zvonko
ID: 17007183
Any questions???
0
 

Author Comment

by:kleigh
ID: 17011173
i'm sorry... the question is? How do I show and resize a DIV on click with some annimation effects?
0
 
LVL 63

Accepted Solution

by:
Zvonko earned 2000 total points
ID: 17013660
The starting point is already good.
But you need a function for the move initialization and a second function for move steps.
You call the initialization function like this:

<a href="#" onClick="startMove('Layer1',100,200,300);return false;"><img name="transperantcfm_r1_c2" src="fireworksimages/transperant.cfm_r1_c2.gif" width="420" height="19" border="0" alt=""></a>

The initialization function looks like this:
<script>
var theDiv, dTop, dWidth, dHeight, tStep;
var xStep = 10;
var xFact = 10;
function startMove(divID,t,w,h){
  theDiv = document.getElementById(divID);
  dTop = t;
  dWidth = w;
  dHeight = h;
  theDiv.style.visibility="visible";
  tStep = setTimeout("doMove()", xStep);
}

// and this is the stepper move function:

function doMove(){
  var xT = dTop - theDiv.offsetTop;
  var xW = dWidth - theDiv.offsetWidth;
  var xH = dHeight - theDiv.offsetHeight;
  if(xT+xW+xH!=0){
    theDiv.style.top = theDiv.offsetTop+(xT/xFact);
    theDiv.style.width = theDiv.offsetWidth+(xW/xFact);
    theDiv.style.height = theDiv.offsetHeight+(xH/xFact);
    tStep = setTimeout("doMove()", xStep);
  }
}
</script>


0
WordPress Tutorial 2: Terminology

An important part of learning any new piece of software is understanding the terminology it uses. Thankfully WordPress uses fairly simple names for everything that make it easy to start using the software.

 

Author Comment

by:kleigh
ID: 17018061
Zvonko:
I must be missing something.
I tried your script an there is no annimation? it just snaps in.

here is how i wrote it, and i am sure i messed something up

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
<link href="../CSS/NewMessageCenterSKIN.css" rel="stylesheet" type="text/css" />


<script>
var theDiv, dTop, dWidth, dHeight, tStep;
var xStep = 10;
var xFact = 10;
function startMove(divID,t,w,h){
  theDiv = document.getElementById(divID);
  dTop = 500;
  dWidth = 500;
  dHeight = 500;
  theDiv.style.visibility="visible";
  tStep = setTimeout("doMove()", xStep);
}

// and this is the stepper move function:

function doMove(){
  var xT = dTop - theDiv.offsetTop;
  var xW = dWidth - theDiv.offsetWidth;
  var xH = dHeight - theDiv.offsetHeight;
  if(xT+xW+xH!=0){
    theDiv.style.top = theDiv.offsetTop+(xT/xFact);
    theDiv.style.width = theDiv.offsetWidth+(xW/xFact);
    theDiv.style.height = theDiv.offsetHeight+(xH/xFact);
    tStep = setTimeout("doMove()", xStep);
  }
}
</script>
</head>

<body>
<div id="Layer1" style="position:absolute; left:102px; top:200px; width:200px; height:200px; z-index:1; visibility:hidden;">
 <table width="100%" height="100%">
  <tr>
    <td class="expired">&nbsp;</td>
  </tr>
</table>
</div>

<a href="#" onClick="startMove('Layer1',300,500,300);return false;">test</a>

</body>
</html>
0
 
LVL 63

Expert Comment

by:Zvonko
ID: 17018179
I see it sliding, but of course first after inserting some visible text:
<td class="expired">&nbsp;Here Some Text</td>

0
 

Author Comment

by:kleigh
ID: 17018408
Silly Me.... Thanks a lot.
0
 
LVL 63

Expert Comment

by:Zvonko
ID: 17018423
You are welcome.
0

Featured Post

On Demand Webinar: Networking for the Cloud Era

Did you know SD-WANs can improve network connectivity? Check out this webinar to learn how an SD-WAN simplified, one-click tool can help you migrate and manage data in the cloud.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

JavaScript has plenty of pieces of code people often just copy/paste from somewhere but never quite fully understand. Self-Executing functions are just one good example that I'll try to demystify here.
JavaScript can be used in a browser to change parts of a webpage dynamically. It begins with the following pattern: If condition W is true, do thing X to target Y after event Z. Below are some tips and tricks to help you get started with JavaScript …
The viewer will learn how to dynamically set the form action using jQuery.
The viewer will learn how to create and use a small PHP class to apply a watermark to an image. This video shows the viewer the setup for the PHP watermark as well as important coding language. Continue to Part 2 to learn the core code used in creat…
Suggested Courses

770 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question