somewherehot
asked on
Create popup window appear and disappear on rollover link - javascript
Hi,
I'm trying to create a portfolio for our websites. To do this, I was going to have a lot of thumbnails of sites that we have completed. When the user moves their mouse over one of the images I wanted a popup window to appear that gives more detail about the project. When the mouse moves away from thumbnail the popup should disapear.
I want the popup to be an actual web page so that I can add a link to it to show the actual website site.
It's quite hard to explain what I mean, so it may be better for you to go to:
http://www.revelation.uk.com/beta/rollover/Autos%20-%20Text%20Link%20Ads.htm
There will be a long list of websites. If you move your mouse over the 'reveal' link a pop up appears. This is exactly the type of thing that we are trying to achieve
I'm trying to create a portfolio for our websites. To do this, I was going to have a lot of thumbnails of sites that we have completed. When the user moves their mouse over one of the images I wanted a popup window to appear that gives more detail about the project. When the mouse moves away from thumbnail the popup should disapear.
I want the popup to be an actual web page so that I can add a link to it to show the actual website site.
It's quite hard to explain what I mean, so it may be better for you to go to:
http://www.revelation.uk.com/beta/rollover/Autos%20-%20Text%20Link%20Ads.htm
There will be a long list of websites. If you move your mouse over the 'reveal' link a pop up appears. This is exactly the type of thing that we are trying to achieve
ASKER
Thats really good - although not exactly what I was looking for. The behaviour of this script is more like the popup window that you get on istock.com
I need to allow the user to move their mouse inside the popup box (which will contain text and images) to click on a link.
Thanks for your suggestion though
I need to allow the user to move their mouse inside the popup box (which will contain text and images) to click on a link.
Thanks for your suggestion though
Not exactly what you are looking for, but this could be modified easily to do what you are asking. This actaully was designed to simulate a modal dialog box without a pop-up window. You could easily remove the code that disables the rest of the page and add an onmouseout option to the <div's> that hold your pop-up information.
If it looks like this might work for you and you need help with it, let me know.
Neal.
http://www.applicationgroup.com/tutorials/modalDialog/modalDialog.asp
If it looks like this might work for you and you need help with it, let me know.
Neal.
http://www.applicationgroup.com/tutorials/modalDialog/modalDialog.asp
ASKER
Thanks for the suggestion - Its not what I was looking for. Is there a way of extracting the code from the example page ( http://www.revelation.uk.com/beta/rollover/Autos%20-%20Text%20Link%20Ads.htm ) that I sent?
ASKER
I managed to fix this myself using div's and the hidden status:
<!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=utf-8" />
<title>Untitled Document</title>
<SCRIPT type=text/javascript>
function showstuff(boxid){
document.getElementById(bo xid).style .visibilit y="visible ";
}
function hidestuff(boxid){
document.getElementById(bo xid).style .visibilit y="hidden" ;
}
</SCRIPT>
<style type="text/css">
<!--
#apDiv1 {
position:absolute;
width:200px;
height:115px;
z-index:99;
left: 11px;
top: 21px;
visibility: hidden;
background-color: #0000FF;
}
-->
</style>
</head>
<body>
<div id="apDiv1" onmouseover=showstuff('apD iv1') onmouseout=hidestuff('apDi v1')>
<p>tHIS IS A TEST</p>
<p> </p>
<p>asdsa</p>
</div>
<p><A onmouseover=showstuff('apD iv1')
onmouseout=hidestuff('apDi v1') href="javascript:void();"> Put your mouse here</A></p>
<p> </p>
</body>
</html>
<!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=utf-8" />
<title>Untitled Document</title>
<SCRIPT type=text/javascript>
function showstuff(boxid){
document.getElementById(bo
}
function hidestuff(boxid){
document.getElementById(bo
}
</SCRIPT>
<style type="text/css">
<!--
#apDiv1 {
position:absolute;
width:200px;
height:115px;
z-index:99;
left: 11px;
top: 21px;
visibility: hidden;
background-color: #0000FF;
}
-->
</style>
</head>
<body>
<div id="apDiv1" onmouseover=showstuff('apD
<p>tHIS IS A TEST</p>
<p> </p>
<p>asdsa</p>
</div>
<p><A onmouseover=showstuff('apD
onmouseout=hidestuff('apDi
<p> </p>
</body>
</html>
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Somewherehot: Very simple and nice script. It is appreciated. I am going to use it (modified) in greasemonkey to create a sort of lightbox script that will allow me to open images in the same page as they are linked in.
Thanks!
Thanks!
I can suggest u this script, i don't remmeber where i take it but it works as it should in any browser.
example of usage u can see at http://www.pashik.com/portfolio.html
script.js file:
var t_id = setInterval(animate,20);
var pos=0;
var dir=2;
var len=0;
function animate()
{
var elem = document.getElementById('p
if(elem != null) {
if (pos==0) len += dir;
if (len>32 || pos>79) pos += dir;
if (pos>79) len -= dir;
if (pos>79 && len==0) pos=0;
elem.style.left = pos;
elem.style.width = len;
}
}
function remove_loading() {
this.clearInterval(t_id);
var targelem = document.getElementById('l
targelem.style.display='no
targelem.style.visibility=
var t_id = setInterval(animate,60);
}
var offsetfrommouse=[15,25]; //image x,y offsets from cursor position in pixels. Enter 0,0 for no offset
var displayduration=0; //duration in seconds image should remain visible. 0 for always.
var defaultimageheight = 40; // maximum image size.
var defaultimagewidth = 40; // maximum image size.
var timer;
function gettrailobj(){
if (document.getElementById)
return document.getElementById("p
}
function gettrailobjnostyle(){
if (document.getElementById)
return document.getElementById("p
}
function truebody(){
return (!window.opera && document.compatMode && document.compatMode!="Back
}
function hidetrail(){
gettrailobj().display= "none";
document.onmousemove=""
gettrailobj().left="-500px
clearTimeout(timer);
}
function showtrail(imagename,title,
i = imagename
t = title
w = width
h = height
timer = setTimeout("show('"+i+"',t
}
function show(imagename,title,width
var docwidth=document.all? truebody().scrollLeft+true
var docheight=document.all? Math.min(truebody().scroll
if( (navigator.userAgent.index
( width == 0 ) ? width = defaultimagewidth: '';
( height == 0 ) ? height = defaultimageheight: '';
width+=30
height+=25
defaultimageheight = height
defaultimagewidth = width
document.onmousemove=follo
newHTML = '<div class="border_preview" style="width:'+ width +'px;height:'+ height +'px"><div id="loader_container"><div
// newHTML = newHTML + '<h2 class="title_h2">' + ' '+title + '</h2>'
newHTML = newHTML + '<div class="preview_temp_load">
newHTML = newHTML + '</div>';
if(navigator.userAgent.ind
newHTML = newHTML+'<iframe src="about:blank" scrolling="no" frameborder="0" width="'+width+'" height="'+height+'"></ifra
}
gettrailobjnostyle().inner
gettrailobj().display="blo
}
}
function followmouse(e){
var xcoord=offsetfrommouse[0]
var ycoord=offsetfrommouse[1]
var docwidth=document.all? truebody().scrollLeft+true
var docheight=document.all? Math.min(truebody().scroll
if (typeof e != "undefined"){
if (docwidth - e.pageX < defaultimagewidth + 2*offsetfrommouse[0]){
xcoord = e.pageX - xcoord - defaultimagewidth; // Move to the left side of the cursor
} else {
xcoord += e.pageX;
}
if (docheight - e.pageY < defaultimageheight + 2*offsetfrommouse[1]){
ycoord += e.pageY - Math.max(0,(2*offsetfrommo
} else {
ycoord += e.pageY;
}
} else if (typeof window.event != "undefined"){
if (docwidth - event.clientX < defaultimagewidth + 2*offsetfrommouse[0]){
xcoord = event.clientX + truebody().scrollLeft - xcoord - defaultimagewidth; // Move to the left side of the cursor
} else {
xcoord += truebody().scrollLeft+even
}
if (docheight - event.clientY < (defaultimageheight + 2*offsetfrommouse[1])){
ycoord += event.clientY + truebody().scrollTop - Math.max(0,(2*offsetfrommo
} else {
ycoord += truebody().scrollTop + event.clientY;
}
}
gettrailobj().left=xcoord+
gettrailobj().top=ycoord+"
}
IN ur HTML file:
don't forget to include <script language="javascript" type="text/javascript" src="script.js"></script>
and write in after <body> tag
<div style="display: none; position: absolute;z-index:110; " id="preview_div"></div>
And on image/text where u want to have mouseover popup write this:
<a style="cursor: hand" href="http://www.yahoo.com" target="_blank" onfocus="showtrail('images