bramos
12-20-2008, 04:42 PM
Hi all!
For my portfolio website (http://dev.aplus-webdesigns.nl/peerlingspictures) I'm using the Dynamic Drive Gradual Element Fader (http://dynamicdrive.com/dynamicindex11/gradualfader.htm), but as you see it isn't working properly, as I want to use the script twice: once on the div and once on the image. The reason? I want the div-background (the orange border and green text) to have a higher base-opacity than the real image.
I editted the scripts so I could duplicate them succesfully. See beneath:
divfader.js:
//Gradual Elements Fader- By Dynamic Drive at http://www.dynamicdrive.com
//Last updated: Nov 8th, 07'
var gradualDivFader={}
gradualDivFader.baseopacity=0.4 //set base opacity when mouse isn't over element (decimal below 1)
gradualDivFader.increment=0.1 //amount of opacity to increase after each iteration (suggestion: 0.1 or 0.2)
document.write('<style type="text/css">\n') //write out CSS to enable opacity on "gradualFader" class
document.write('.divfader{filter:progid:DXImageTransform.Microsoft.alpha(opacity='+gradualDivFader.baseopacity*100+'); -moz-opacity:'+gradualDivFader.baseopacity+'; opacity:'+gradualDivFader.baseopacity+';}\n')
document.write('</style>')
gradualDivFader.setopacity=function(obj, value){ //Sets the opacity of targetobject based on the passed in value setting (0 to 1 and in between)
var targetobject=obj
if (targetobject && targetobject.filters && targetobject.filters[0]){ //IE syntax
if (typeof targetobject.filters[0].opacity=="number") //IE6
targetobject.filters[0].opacity=value*100
else //IE 5.5
targetobject.style.filter="alpha(opacity="+value*100+")"
}
else if (targetobject && typeof targetobject.style.MozOpacity!="undefined") //Old Mozilla syntax
targetobject.style.MozOpacity=value
else if (targetobject && typeof targetobject.style.opacity!="undefined") //Standard opacity syntax
targetobject.style.opacity=value
targetobject.currentopacity=value
}
gradualDivFader.fadeupdown=function(obj, direction){
var targetobject=obj
var fadeamount=(direction=="fadeup")? this.increment : -this.increment
if (targetobject && (direction=="fadeup" && targetobject.currentopacity<1 || direction=="fadedown" && targetobject.currentopacity>this.baseopacity)){
this.setopacity(obj, targetobject.currentopacity+fadeamount)
window["opacityfader"+obj._fadeorder]=setTimeout(function(){gradualDivFader.fadeupdown(obj, direction)}, 50)
}
}
gradualDivFader.clearTimer=function(obj){
if (typeof window["opacityfader"+obj._fadeorder]!="undefined")
clearTimeout(window["opacityfader"+obj._fadeorder])
}
gradualDivFader.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
}
gradualDivFader.fadeinterface=function(obj, e, direction){
if (!this.isContained(obj, e)){
gradualDivFader.clearTimer(obj)
gradualDivFader.fadeupdown(obj, direction)
}
}
gradualDivFader.collectElementbyClass=function(classname){ //Returns an array containing DIVs with specified classname
var classnameRE=new RegExp("(^|\\s+)"+classname+"($|\\s+)", "i") //regular expression to screen for classname within element
var pieces=[]
var alltags=document.all? document.all : document.getElementsByTagName("*")
for (var i=0; i<alltags.length; i++){
if (typeof alltags[i].className=="string" && alltags[i].className.search(classnameRE)!=-1)
pieces[pieces.length]=alltags[i]
}
return pieces
}
gradualDivFader.init=function(){
var targetobjects=this.collectElementbyClass("divfader")
for (var i=0; i<targetobjects.length; i++){
targetobjects[i]._fadeorder=i
this.setopacity(targetobjects[i], this.baseopacity)
targetobjects[i].onmouseover=function(e){gradualDivFader.fadeinterface(this, e, "fadeup")}
targetobjects[i].onmouseout=function(e){gradualDivFader.fadeinterface(this, e, "fadedown")}
}
}
imgfader.js:
//Gradual Elements Fader- By Dynamic Drive at http://www.dynamicdrive.com
//Last updated: Nov 8th, 07'
var gradualImgFader={}
gradualImgFader.baseopacity=0.1 //set base opacity when mouse isn't over element (decimal below 1)
gradualImgFader.increment=0.1 //amount of opacity to increase after each iteration (suggestion: 0.1 or 0.2)
document.write('<style type="text/css">\n') //write out CSS to enable opacity on "gradualFader" class
document.write('.imgfader{filter:progid:DXImageTransform.Microsoft.alpha(opacity='+gradualImgFader.baseopacity*100+'); -moz-opacity:'+gradualImgFader.baseopacity+'; opacity:'+gradualImgFader.baseopacity+';}\n')
document.write('</style>')
gradualImgFader.setopacity=function(obj, value){ //Sets the opacity of targetobject based on the passed in value setting (0 to 1 and in between)
var targetobject=obj
if (targetobject && targetobject.filters && targetobject.filters[0]){ //IE syntax
if (typeof targetobject.filters[0].opacity=="number") //IE6
targetobject.filters[0].opacity=value*100
else //IE 5.5
targetobject.style.filter="alpha(opacity="+value*100+")"
}
else if (targetobject && typeof targetobject.style.MozOpacity!="undefined") //Old Mozilla syntax
targetobject.style.MozOpacity=value
else if (targetobject && typeof targetobject.style.opacity!="undefined") //Standard opacity syntax
targetobject.style.opacity=value
targetobject.currentopacity=value
}
gradualImgFader.fadeupdown=function(obj, direction){
var targetobject=obj
var fadeamount=(direction=="fadeup")? this.increment : -this.increment
if (targetobject && (direction=="fadeup" && targetobject.currentopacity<1 || direction=="fadedown" && targetobject.currentopacity>this.baseopacity)){
this.setopacity(obj, targetobject.currentopacity+fadeamount)
window["opacityfader"+obj._fadeorder]=setTimeout(function(){gradualImgFader.fadeupdown(obj, direction)}, 50)
}
}
gradualImgFader.clearTimer=function(obj){
if (typeof window["opacityfader"+obj._fadeorder]!="undefined")
clearTimeout(window["opacityfader"+obj._fadeorder])
}
gradualImgFader.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
}
gradualImgFader.fadeinterface=function(obj, e, direction){
if (!this.isContained(obj, e)){
gradualImgFader.clearTimer(obj)
gradualImgFader.fadeupdown(obj, direction)
}
}
gradualImgFader.collectElementbyClass=function(classname){ //Returns an array containing DIVs with specified classname
var classnameRE=new RegExp("(^|\\s+)"+classname+"($|\\s+)", "i") //regular expression to screen for classname within element
var pieces=[]
var alltags=document.all? document.all : document.getElementsByTagName("*")
for (var i=0; i<alltags.length; i++){
if (typeof alltags[i].className=="string" && alltags[i].className.search(classnameRE)!=-1)
pieces[pieces.length]=alltags[i]
}
return pieces
}
gradualImgFader.init=function(){
var targetobjects=this.collectElementbyClass("imgfader")
for (var i=0; i<targetobjects.length; i++){
targetobjects[i]._fadeorder=i
this.setopacity(targetobjects[i], this.baseopacity)
targetobjects[i].onmouseover=function(e){gradualImgFader.fadeinterface(this, e, "fadeup")}
targetobjects[i].onmouseout=function(e){gradualImgFader.fadeinterface(this, e, "fadedown")}
}
}
But, as you can see on my website, the combination doesn't work properly. The browser picks just one of the two scripts: sometimes it's imgfader.js, sometimes it's divfader.js. That way, the image never gets a opacity of 100%: or it sticks at its base-opacity (10%) or the fader ís activated, but the div-opacity stays 40% (its base-opacity).
As I'm not a JS-pro (I'm more of a noob, really xD) I'm asking you guys if you can help me out. I tried some other forum, but there nobody could help me.
Many, many, many thanks in advance to anybody helping me out!
Bram(os)
For my portfolio website (http://dev.aplus-webdesigns.nl/peerlingspictures) I'm using the Dynamic Drive Gradual Element Fader (http://dynamicdrive.com/dynamicindex11/gradualfader.htm), but as you see it isn't working properly, as I want to use the script twice: once on the div and once on the image. The reason? I want the div-background (the orange border and green text) to have a higher base-opacity than the real image.
I editted the scripts so I could duplicate them succesfully. See beneath:
divfader.js:
//Gradual Elements Fader- By Dynamic Drive at http://www.dynamicdrive.com
//Last updated: Nov 8th, 07'
var gradualDivFader={}
gradualDivFader.baseopacity=0.4 //set base opacity when mouse isn't over element (decimal below 1)
gradualDivFader.increment=0.1 //amount of opacity to increase after each iteration (suggestion: 0.1 or 0.2)
document.write('<style type="text/css">\n') //write out CSS to enable opacity on "gradualFader" class
document.write('.divfader{filter:progid:DXImageTransform.Microsoft.alpha(opacity='+gradualDivFader.baseopacity*100+'); -moz-opacity:'+gradualDivFader.baseopacity+'; opacity:'+gradualDivFader.baseopacity+';}\n')
document.write('</style>')
gradualDivFader.setopacity=function(obj, value){ //Sets the opacity of targetobject based on the passed in value setting (0 to 1 and in between)
var targetobject=obj
if (targetobject && targetobject.filters && targetobject.filters[0]){ //IE syntax
if (typeof targetobject.filters[0].opacity=="number") //IE6
targetobject.filters[0].opacity=value*100
else //IE 5.5
targetobject.style.filter="alpha(opacity="+value*100+")"
}
else if (targetobject && typeof targetobject.style.MozOpacity!="undefined") //Old Mozilla syntax
targetobject.style.MozOpacity=value
else if (targetobject && typeof targetobject.style.opacity!="undefined") //Standard opacity syntax
targetobject.style.opacity=value
targetobject.currentopacity=value
}
gradualDivFader.fadeupdown=function(obj, direction){
var targetobject=obj
var fadeamount=(direction=="fadeup")? this.increment : -this.increment
if (targetobject && (direction=="fadeup" && targetobject.currentopacity<1 || direction=="fadedown" && targetobject.currentopacity>this.baseopacity)){
this.setopacity(obj, targetobject.currentopacity+fadeamount)
window["opacityfader"+obj._fadeorder]=setTimeout(function(){gradualDivFader.fadeupdown(obj, direction)}, 50)
}
}
gradualDivFader.clearTimer=function(obj){
if (typeof window["opacityfader"+obj._fadeorder]!="undefined")
clearTimeout(window["opacityfader"+obj._fadeorder])
}
gradualDivFader.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
}
gradualDivFader.fadeinterface=function(obj, e, direction){
if (!this.isContained(obj, e)){
gradualDivFader.clearTimer(obj)
gradualDivFader.fadeupdown(obj, direction)
}
}
gradualDivFader.collectElementbyClass=function(classname){ //Returns an array containing DIVs with specified classname
var classnameRE=new RegExp("(^|\\s+)"+classname+"($|\\s+)", "i") //regular expression to screen for classname within element
var pieces=[]
var alltags=document.all? document.all : document.getElementsByTagName("*")
for (var i=0; i<alltags.length; i++){
if (typeof alltags[i].className=="string" && alltags[i].className.search(classnameRE)!=-1)
pieces[pieces.length]=alltags[i]
}
return pieces
}
gradualDivFader.init=function(){
var targetobjects=this.collectElementbyClass("divfader")
for (var i=0; i<targetobjects.length; i++){
targetobjects[i]._fadeorder=i
this.setopacity(targetobjects[i], this.baseopacity)
targetobjects[i].onmouseover=function(e){gradualDivFader.fadeinterface(this, e, "fadeup")}
targetobjects[i].onmouseout=function(e){gradualDivFader.fadeinterface(this, e, "fadedown")}
}
}
imgfader.js:
//Gradual Elements Fader- By Dynamic Drive at http://www.dynamicdrive.com
//Last updated: Nov 8th, 07'
var gradualImgFader={}
gradualImgFader.baseopacity=0.1 //set base opacity when mouse isn't over element (decimal below 1)
gradualImgFader.increment=0.1 //amount of opacity to increase after each iteration (suggestion: 0.1 or 0.2)
document.write('<style type="text/css">\n') //write out CSS to enable opacity on "gradualFader" class
document.write('.imgfader{filter:progid:DXImageTransform.Microsoft.alpha(opacity='+gradualImgFader.baseopacity*100+'); -moz-opacity:'+gradualImgFader.baseopacity+'; opacity:'+gradualImgFader.baseopacity+';}\n')
document.write('</style>')
gradualImgFader.setopacity=function(obj, value){ //Sets the opacity of targetobject based on the passed in value setting (0 to 1 and in between)
var targetobject=obj
if (targetobject && targetobject.filters && targetobject.filters[0]){ //IE syntax
if (typeof targetobject.filters[0].opacity=="number") //IE6
targetobject.filters[0].opacity=value*100
else //IE 5.5
targetobject.style.filter="alpha(opacity="+value*100+")"
}
else if (targetobject && typeof targetobject.style.MozOpacity!="undefined") //Old Mozilla syntax
targetobject.style.MozOpacity=value
else if (targetobject && typeof targetobject.style.opacity!="undefined") //Standard opacity syntax
targetobject.style.opacity=value
targetobject.currentopacity=value
}
gradualImgFader.fadeupdown=function(obj, direction){
var targetobject=obj
var fadeamount=(direction=="fadeup")? this.increment : -this.increment
if (targetobject && (direction=="fadeup" && targetobject.currentopacity<1 || direction=="fadedown" && targetobject.currentopacity>this.baseopacity)){
this.setopacity(obj, targetobject.currentopacity+fadeamount)
window["opacityfader"+obj._fadeorder]=setTimeout(function(){gradualImgFader.fadeupdown(obj, direction)}, 50)
}
}
gradualImgFader.clearTimer=function(obj){
if (typeof window["opacityfader"+obj._fadeorder]!="undefined")
clearTimeout(window["opacityfader"+obj._fadeorder])
}
gradualImgFader.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
}
gradualImgFader.fadeinterface=function(obj, e, direction){
if (!this.isContained(obj, e)){
gradualImgFader.clearTimer(obj)
gradualImgFader.fadeupdown(obj, direction)
}
}
gradualImgFader.collectElementbyClass=function(classname){ //Returns an array containing DIVs with specified classname
var classnameRE=new RegExp("(^|\\s+)"+classname+"($|\\s+)", "i") //regular expression to screen for classname within element
var pieces=[]
var alltags=document.all? document.all : document.getElementsByTagName("*")
for (var i=0; i<alltags.length; i++){
if (typeof alltags[i].className=="string" && alltags[i].className.search(classnameRE)!=-1)
pieces[pieces.length]=alltags[i]
}
return pieces
}
gradualImgFader.init=function(){
var targetobjects=this.collectElementbyClass("imgfader")
for (var i=0; i<targetobjects.length; i++){
targetobjects[i]._fadeorder=i
this.setopacity(targetobjects[i], this.baseopacity)
targetobjects[i].onmouseover=function(e){gradualImgFader.fadeinterface(this, e, "fadeup")}
targetobjects[i].onmouseout=function(e){gradualImgFader.fadeinterface(this, e, "fadedown")}
}
}
But, as you can see on my website, the combination doesn't work properly. The browser picks just one of the two scripts: sometimes it's imgfader.js, sometimes it's divfader.js. That way, the image never gets a opacity of 100%: or it sticks at its base-opacity (10%) or the fader ís activated, but the div-opacity stays 40% (its base-opacity).
As I'm not a JS-pro (I'm more of a noob, really xD) I'm asking you guys if you can help me out. I tried some other forum, but there nobody could help me.
Many, many, many thanks in advance to anybody helping me out!
Bram(os)