Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations TouchToneTommy on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Floating Menu 1

Status
Not open for further replies.

Clanger67

Programmer
Mar 28, 2002
28
GB
I have some code that creates a floating menu. It works fine when the script is on the page, but when i put the code onto a seperate .js page and try to reference it, it does not work.

Any ideas as to what I am missing would be much appreciated.


<script src="includes/JScript1.js" type="text/javascript"></script>
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<div id="floatdiv" style="BORDER:#2266aa 2px solid; PADDING:16px; BACKGROUND:#ffffff; height:150px; width:200px; position:absolute; top:40px; left:20px; Z-INDEX:100;">
This is a floating javascript menu.
</div>
<asp:panel id="Panel1" style="Z-INDEX: 101; LEFT: 230px; POSITION: absolute; TOP: 16px; border:red 1px dashed;" runat="server"
Width="912px" Height="1816px">Panel</asp:panel>

<!-- <script>

var target_x = 10;
var target_y = 10;

var has_inner = typeof(window.innerWidth) == 'number';
var has_element = document.documentElement && document.documentElement.clientWidth;

var fm_id='floatdiv';
var floating_menu =
document.getElementById
? document.getElementById(fm_id)
: document.all
? document.all[fm_id]
: document.layers[fm_id];

var fm_shift_x, fm_shift_y, fm_next_x, fm_next_y;

function move_menu()
{
if (document.layers)
{
floating_menu.left = fm_next_x;
floating_menu.top = fm_next_y;
}
else
{
floating_menu.style.left = fm_next_x + 'px';
floating_menu.style.top = fm_next_y + 'px';
}
}

function compute_shifts()
{
fm_shift_x = has_inner
? pageXOffset
: has_element
? document.documentElement.scrollLeft
: document.body.scrollLeft;
if (target_x < 0)
fm_shift_x += has_inner
? window.innerWidth
: has_element
? document.documentElement.clientWidth
: document.body.clientWidth;

fm_shift_y = has_inner
? pageYOffset
: has_element
? document.documentElement.scrollTop
: document.body.scrollTop;
if (target_y < 0)
fm_shift_y += has_inner
? window.innerHeight
: has_element
? document.documentElement.clientHeight
: document.body.clientHeight;
}

function float_menu()
{
var target_x = 10;
var target_y = 10;

var has_inner = typeof(window.innerWidth) == 'number';
var has_element = document.documentElement && document.documentElement.clientWidth;

var fm_id='floatdiv';
var floating_menu =
document.getElementById
? document.getElementById(fm_id)
: document.all
? document.all[fm_id]
: document.layers[fm_id];

var fm_shift_x, fm_shift_y, fm_next_x, fm_next_y;

var step_x, step_y;

compute_shifts();

step_x = (fm_shift_x + target_x - fm_next_x) * .07;
if (Math.abs(step_x) < .5)
step_x = fm_shift_x + target_x - fm_next_x;

step_y = (fm_shift_y + target_y - fm_next_y) * .07;
if (Math.abs(step_y) < .5)
step_y = fm_shift_y + target_y - fm_next_y;

if (Math.abs(step_x) > 0 ||
Math.abs(step_y) > 0)
{
fm_next_x += step_x;
fm_next_y += step_y;
move_menu();
}

setTimeout('float_menu()', 20);
};

compute_shifts();
if (document.layers)
{
// Netscape 4 cannot perform init move
// when the page loads.
fm_next_x = 0;
fm_next_y = 0;
}
else
{
fm_next_x = fm_shift_x + target_x;
fm_next_y = fm_shift_y + target_y;
move_menu();
}
float_menu();
*/

</script> -->

</form>
</body>
</HTML>
 
Dan

Sorry for not posting earlier, but I was away on Friday.

I have since found another solution and have managed to get that to work. I can post you a copy if your interested.

Just like to say thanks for all your help and patience.

Thanks once again

David
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top