Menu at mouse cursor
Posted: April 16th, 2008 | Author: admin | Filed under: Developers, Javascript | No Comments »
<pre lang="javascript">
<STYLE TYPE="text/css">
<!--
#dek {POSITION:absolute;VISIBILITY:hidden;Z-INDEX:200;}
//-->
</STYLE>
<DIV ID="dek"></DIV>
<SCRIPT TYPE="text/javascript">
<!--
function popUp(theURL, myWidth, myHeight) {
var winName = 'feedback';
var features='toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=1';
//var myWidth = 290;
//var myHeight = 360;
var isCenter = 'true';
if(window.screen)if(isCenter)if(isCenter=="true"){
var myLeft = (screen.width-myWidth)/2;
var myTop = (screen.height-myHeight)/2;
features+=(features!='')?',':'';
features+=',left='+myLeft+',top='+myTop;
}
var handle = window.open(theURL,winName,features+((features!='')?',':'')+'width='+myWidth+',height='+myHeight);
handle.opener = window;
handle.focus();
return handle;
}
Xoffset=0; // modify these values to ...
Yoffset= 0; // change the popup position.
var old,skn,iex=(document.all),yyy=Yoffset;//-1000;
var ns4=document.layers
var ns6=document.getElementById&&!document.all
var ie4=document.all
var must_close = false;
var mouse_x = 0;
var mouse_y = 0;
var timeoutId = false;
function initdek(){
if (ns4) skn=document.dek;
else if (ns6) skn=document.getElementById("dek").style;
else if (ie4) skn=document.all.dek.style;
if(ns4)document.captureEvents(Event.MOUSEMOVE);
else{
skn.visibility="visible"
skn.display="none"
}
document.onmousemove=get_mouse;
}
//ONMOUSEOVER="keep_it_open()" ONMOUSEOUT="about_to_close()"
function popupdek(msg){
keep_it_open();
var content='<div style="border:1px solid #999; padding:10px;background-color:#f87" ONMOUSEOVER="keep_it_open()" ONMOUSEOUT="about_to_close()">' + msg + '</div>';
yyy=Yoffset;
skn.left = mouse_x;
skn.top = mouse_y;
if(ns4){skn.document.write(content);skn.document.close();skn.visibility="visible"}
if(ns6){document.getElementById("dek").innerHTML=content;skn.display=''}
if(ie4){document.all("dek").innerHTML=content;skn.display=''}
}
function get_mouse(e){
if(ns4||ns6){
mouse_x=e.pageX+Xoffset+'px';
mouse_y=e.pageY+yyy + 'px';
}else{
if (document.documentElement){
// IE6 +4.01
mouse_x=event.x+document.documentElement.scrollLeft+Xoffset+'px';
mouse_y=event.y+document.documentElement.scrollTop+yyy + 'px';
}else if (document.body){
// IE5 or DTD 3.2
mouse_x=event.x+document.body.scrollLeft+Xoffset+'px';
mouse_y=event.y+document.body.scrollTop+yyy + 'px';
}
}
}
function kill(){
//yyy=-1000;
if(ns4){skn.visibility="hidden";}
else if (ns6||ie4)
skn.display="none"
is_visible=0;
}
function keep_it_open(){
if(timeoutId) clearTimeout(timeoutId);
timeoutId = false;
}
function about_to_close(){
timeoutId = setTimeout('kill()',1000);
}
function set_must_close(){
must_close=true;
kill();
}
initdek();
function showTags(str){
var msg = "<strong>Tags:</strong><br/>" + str.replace(/\,/,'<br/>');
msg += '<br/><form action=""><input type="text" size="10" value="enter tag.." name="tag"/><input type="submit" value="Add"></form>';
popupdek(msg);
}
function showManage(pid){
var msg = "<strong>Management:</strong><br/>" ;
msg += '<a href="#" onclick="popUp(\'imageop/add_image~' + pid + '.html\',400,300)" >Add image</a><br/>';
msg += '<a href="#" onclick="popUp(\'imageop/delete_image~' + pid + '.html\',400,300)" >Delete image</a><br/>';
msg += '<br/><form action=""><input type="file" size="10" value="" name="uploadfile"/><br/><input type="submit" value="Upload"></form>';
popupdek(msg);
}
function showLinks(pid, iurl){
var msg = "<strong>Links:</strong><br/>" ;
msg += '<a href="<?=$PROFILEORIGIN?>/list_profile~' + pid + '.html" target="_blank">Profile home</a><br/>';
msg += '<a href="' + iurl + '" target="_blank" >Source URL</a><br/>';
popupdek(msg);
}
//-->
</SCRIPT>
</pre>
Used as:
<a href="http://www.blogger.com/post-edit.do#" onmouseover="showTags('taglist,comma separated)');keep_it_open()" onmouseout="about_to_close()" onclick="return false">Tags</a>
Leave a Reply