Jump to content

Drop Down Position


timmah1

Recommended Posts

I have a marquee, and when you roll-over the photo in the marquee, it drops down more information about that photo.

The problem I'm having is the position of the drop down, I need it to show directly below the photo, but it's showing to the right, sometimes off screen.

 

Can anybody help me out with this? I'm not very familiar with javascript

 

<a href="http://www.thehoneypotclub.com/" id="searchlink" rel="subcontent"><img src="escorts/<?php echo $row1['SampleOne']; ?>" height="110"></a>
<DIV id="subcontent" style="position:absolute; visibility: hidden; border: 9px solid orange; background-color: white; width: 150px; padding: 8px; z-index:1;">
<p><b><?php echo $myrow2['EscortName']; ?> Details</b></p>
<ul>
<li><?php echo $myrow2['EscortName']; ?></li>
<li><?php echo $myrow2['Age']; ?></li>
<li>£<?php echo $myrow2['priceperhour']; ?></li>
<li><a href="index.php?cid=profile&EscortID=<?php echo $myrow2['id']; ?>">View Full Profile</a></li>
</ul>
</DIV>
<script type="text/javascript">
//Call dropdowncontent.init(anchorID, positionString, glideduration) at the end of the page:
dropdowncontent.init("searchlink", "left-bottom", 500)
</script>

 

It calls this script in the header

var dropdowncontent={
delaybeforehide: 100, //set delay in milliseconds before content box disappears onMouseout (1000=1 sec)
disableanchorlink: true, //when user clicks on anchor link, should it be disabled?
ajaxloadingmsg: "Loading content. Please wait...", //HTML to show while ajax page is being feched
ajaxbustcache: true, //Bust cache when fetching pages?

getposOffset:function(what, offsettype){
	return (what.offsetParent)? what[offsettype]+this.getposOffset(what.offsetParent, offsettype) : what[offsettype]
},

isContained:function(m, e){
	var e=window.event || e
	var c=e.relatedTarget || ((e.type=="mouseover")? e.fromElement : e.toElement)
	while (c && c!=m)try {c=c.parentNode} catch(e){c=m}
	if (c==m)
		return true
	else
		return false
},

show:function(anchorobj, subobj, e){
	if (!this.isContained(anchorobj, e)){
		var horizontaloffset=(subobj.dropposition[0]=="left")? -(subobj.offsetWidth-anchorobj.offsetWidth) : 0 //calculate user added horizontal offset
		var verticaloffset=(subobj.dropposition[1]=="top")? -subobj.offsetHeight : anchorobj.offsetHeight //calculate user added vertical offset
		subobj.style.left=this.getposOffset(anchorobj, "offsetLeft") + horizontaloffset + "px"
		subobj.style.top=this.getposOffset(anchorobj, "offsetTop")+verticaloffset+"px"
		subobj.style.clip=(subobj.dropposition[1]=="top")? "rect(auto auto auto 0)" : "rect(0 auto 0 0)" //hide drop down box initially via clipping
		subobj.style.visibility="visible"
		subobj.startTime=new Date().getTime()
		subobj.contentheight=parseInt(subobj.offsetHeight)
		if (typeof window["hidetimer_"+subobj.id]!="undefined") //clear timer that hides drop down box?
			clearTimeout(window["hidetimer_"+subobj.id])
		this.slideengine(subobj, (subobj.dropposition[1]=="top")? "up" : "down")
	}
},

curveincrement:function(percent){
	return (1-Math.cos(percent*Math.PI)) / 2 //return cos curve based value from a percentage input
},

slideengine:function(obj, direction){
	var elapsed=new Date().getTime()-obj.startTime //get time animation has run
	if (elapsed<obj.glidetime){ //if time run is less than specified length
		var distancepercent=(direction=="down")? this.curveincrement(elapsed/obj.glidetime) : 1-this.curveincrement(elapsed/obj.glidetime)
		var currentclip=(distancepercent*obj.contentheight)+"px"
		obj.style.clip=(direction=="down")? "rect(0 auto "+currentclip+" 0)" : "rect("+currentclip+" auto auto 0)"
		window["glidetimer_"+obj.id]=setTimeout(function(){dropdowncontent.slideengine(obj, direction)}, 10)
	}
	else{ //if animation finished
		obj.style.clip="rect(0 auto auto 0)"
	}
},

hide:function(activeobj, subobj, e){
	if (!dropdowncontent.isContained(activeobj, e)){
		window["hidetimer_"+subobj.id]=setTimeout(function(){
			subobj.style.visibility="hidden"
			subobj.style.left=subobj.style.top=0
			clearTimeout(window["glidetimer_"+subobj.id])
		}, dropdowncontent.delaybeforehide)
	}
},

ajaxconnect:function(pageurl, divId){
	var page_request = false
	var bustcacheparameter=""
	if (window.XMLHttpRequest) // if Mozilla, IE7, Safari etc
		page_request = new XMLHttpRequest()
	else if (window.ActiveXObject){ // if IE6 or below
		try {
		page_request = new ActiveXObject("Msxml2.XMLHTTP")
		} 
		catch (e){
			try{
			page_request = new ActiveXObject("Microsoft.XMLHTTP")
			}
			catch (e){}
		}
	}
	else
		return false
	document.getElementById(divId).innerHTML=this.ajaxloadingmsg //Display "fetching page message"
	page_request.onreadystatechange=function(){dropdowncontent.loadpage(page_request, divId)}
	if (this.ajaxbustcache) //if bust caching of external page
		bustcacheparameter=(pageurl.indexOf("?")!=-1)? "&"+new Date().getTime() : "?"+new Date().getTime()
	page_request.open('GET', pageurl+bustcacheparameter, true)
	page_request.send(null)
},

loadpage:function(page_request, divId){
	if (page_request.readyState == 4 && (page_request.status==200 || window.location.href.indexOf("http")==-1)){
		document.getElementById(divId).innerHTML=page_request.responseText
	}
},

init:function(anchorid, pos, glidetime){
	var anchorobj=document.getElementById(anchorid)
	var subobj=document.getElementById(anchorobj.getAttribute("rel"))
	var subobjsource=anchorobj.getAttribute("rev")
	if (subobjsource!=null && subobjsource!="")
		this.ajaxconnect(subobjsource, anchorobj.getAttribute("rel"))
	subobj.dropposition=pos.split("-")
	subobj.glidetime=glidetime || 1000
	subobj.style.left=subobj.style.top=0
	anchorobj.onmouseover=function(e){dropdowncontent.show(this, subobj, e)}
	anchorobj.onmouseout=function(e){dropdowncontent.hide(subobj, subobj, e)}
	if (this.disableanchorlink) anchorobj.onclick=function(){return false}
	subobj.onmouseout=function(e){dropdowncontent.hide(this, subobj, e)}
}
}

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.