hankknight
asked on
Blending between divs with JS function
Hello,
I use the following function to fade between images.
I need a different function that works the same way to change THE ENTIRE CONTENTS of my div, like this:
function blendDiv(divid, millisec) {}
I am not looking for a third party script or link, as I need to integrate this with a larger project.
I simply need one function to blend between divs.
I can provide more peripheral code if needed,
Thanks!
function blendimage(divid, imageid, imagefile, millisec) {
var speed = Math.round(millisec / 100);
var timer = 0;
//set the current image as background
document.getElementById(di vid).style .backgroun dImage = "url(" + document.getElementById(im ageid).src + ")";
//make image transparent
changeOpac(0, imageid);
//make new image
document.getElementById(im ageid).src = imagefile;
//fade in image
for(i = 0; i <= 100; i++) {
setTimeout("changeOpac(" + i + ",'" + imageid + "')",(timer * speed));
timer++;
}
}
I use the following function to fade between images.
I need a different function that works the same way to change THE ENTIRE CONTENTS of my div, like this:
function blendDiv(divid, millisec) {}
I am not looking for a third party script or link, as I need to integrate this with a larger project.
I simply need one function to blend between divs.
I can provide more peripheral code if needed,
Thanks!
function blendimage(divid, imageid, imagefile, millisec) {
var speed = Math.round(millisec / 100);
var timer = 0;
//set the current image as background
document.getElementById(di
//make image transparent
changeOpac(0, imageid);
//make new image
document.getElementById(im
//fade in image
for(i = 0; i <= 100; i++) {
setTimeout("changeOpac(" + i + ",'" + imageid + "')",(timer * speed));
timer++;
}
}
ASKER
Here is the whole thing:
<script>
function opacity(id, opacStart, opacEnd, millisec) {
//speed for each frame
var speed = Math.round(millisec / 100);
var timer = 0;
//determine the direction for the blending, if start and end are the same nothing happens
if(opacStart > opacEnd) {
for(i = opacStart; i >= opacEnd; i--) {
setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
timer++;
}
} else if(opacStart < opacEnd) {
for(i = opacStart; i <= opacEnd; i++)
{
setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
timer++;
}
}
}
//change the opacity for different browsers
function changeOpac(opacity, id) {
var object = document.getElementById(id ).style;
object.opacity = (opacity / 100);
object.MozOpacity = (opacity / 100);
object.KhtmlOpacity = (opacity / 100);
object.filter = "alpha(opacity=" + opacity + ")";
}
function shiftOpacity(id, millisec) {
//if an element is invisible, make it visible, else make it ivisible
if(document.getElementById (id).style .opacity == 0) {
opacity(id, 0, 100, millisec);
} else {
opacity(id, 100, 0, millisec);
}
}
function blendimage(divid, imageid, imagefile, millisec) {
var speed = Math.round(millisec / 100);
var timer = 0;
//set the current image as background
document.getElementById(di vid).style .backgroun dImage = "url(" + document.getElementById(im ageid).src + ")";
//make image transparent
changeOpac(0, imageid);
//make new image
document.getElementById(im ageid).src = imagefile;
//fade in image
for(i = 0; i <= 100; i++) {
setTimeout("changeOpac(" + i + ",'" + imageid + "')",(timer * speed));
timer++;
}
}
function currentOpac(id, opacEnd, millisec) {
//standard opacity is 100
var currentOpac = 100;
//if the element has an opacity set, get it
if(document.getElementById (id).style .opacity < 100) {
currentOpac = document.getElementById(id ).style.op acity * 100;
}
//call for the function that changes the opacity
opacity(id, currentOpac, opacEnd, millisec)
}
</script>
<div style="border:1px solid red;width: 35px; height: 35px;" id="blenddiv">
<img src="http://www.google.com/options/icons/labs.gif" style="width: 35px; height: 35px; border: 0 none; filter: alpha(opacity=100); -moz-opacity: 100; opacity: 100;" id="blendimage" alt="" />
</div>
<a href="javascript:blendimag e('blenddi v','blendi mage', 'http://www.google.com/options/icons/checkout.gif',1500)" >Image 1</a>
<a href="javascript:blendimag e('blenddi v','blendi mage', 'http://www.google.com/options/icons/directory.gif',1500)" >Image 2</a>
<a href="javascript:blendimag e('blenddi v','blendi mage', 'http://www.google.com/options/icons/finance.gif',1510)" >Image 3</a>
<script>
function opacity(id, opacStart, opacEnd, millisec) {
//speed for each frame
var speed = Math.round(millisec / 100);
var timer = 0;
//determine the direction for the blending, if start and end are the same nothing happens
if(opacStart > opacEnd) {
for(i = opacStart; i >= opacEnd; i--) {
setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
timer++;
}
} else if(opacStart < opacEnd) {
for(i = opacStart; i <= opacEnd; i++)
{
setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
timer++;
}
}
}
//change the opacity for different browsers
function changeOpac(opacity, id) {
var object = document.getElementById(id
object.opacity = (opacity / 100);
object.MozOpacity = (opacity / 100);
object.KhtmlOpacity = (opacity / 100);
object.filter = "alpha(opacity=" + opacity + ")";
}
function shiftOpacity(id, millisec) {
//if an element is invisible, make it visible, else make it ivisible
if(document.getElementById
opacity(id, 0, 100, millisec);
} else {
opacity(id, 100, 0, millisec);
}
}
function blendimage(divid, imageid, imagefile, millisec) {
var speed = Math.round(millisec / 100);
var timer = 0;
//set the current image as background
document.getElementById(di
//make image transparent
changeOpac(0, imageid);
//make new image
document.getElementById(im
//fade in image
for(i = 0; i <= 100; i++) {
setTimeout("changeOpac(" + i + ",'" + imageid + "')",(timer * speed));
timer++;
}
}
function currentOpac(id, opacEnd, millisec) {
//standard opacity is 100
var currentOpac = 100;
//if the element has an opacity set, get it
if(document.getElementById
currentOpac = document.getElementById(id
}
//call for the function that changes the opacity
opacity(id, currentOpac, opacEnd, millisec)
}
</script>
<div style="border:1px solid red;width: 35px; height: 35px;" id="blenddiv">
<img src="http://www.google.com/options/icons/labs.gif" style="width: 35px; height: 35px; border: 0 none; filter: alpha(opacity=100); -moz-opacity: 100; opacity: 100;" id="blendimage" alt="" />
</div>
<a href="javascript:blendimag
<a href="javascript:blendimag
<a href="javascript:blendimag
a bit like this?
<script>
function opacity(id, opacStart, opacEnd, millisec) {
//speed for each frame
var speed = Math.round(millisec / 100);
var timer = 0;
//determine the direction for the blending, if start and end are the same nothing happens
if(opacStart > opacEnd) {
for(i = opacStart; i >= opacEnd; i--) {
setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
timer++;
}
} else if(opacStart < opacEnd) {
for(i = opacStart; i <= opacEnd; i++)
{
setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
timer++;
}
}
}
//change the opacity for different browsers
function changeOpac(opacity, id) {
var object = document.getElementById(id
object.opacity = (opacity / 100);
object.MozOpacity = (opacity / 100);
object.KhtmlOpacity = (opacity / 100);
object.filter = "alpha(opacity=" + opacity + ")";
}
function shiftOpacity(id, millisec) {
//if an element is invisible, make it visible, else make it ivisible
if(document.getElementById
opacity(id, 0, 100, millisec);
} else {
opacity(id, 100, 0, millisec);
}
}
function blendimage(divid, imageid, imagefile, millisec) {
var speed = Math.round(millisec / 100);
var timer = 0;
//set the current image as background
//document.getElementById(
//make image transparent
changeOpac(0, imageid);
//make new image
document.getElementById(im
//fade in image
for(i = 0; i <= 100; i++) {
setTimeout("changeOpac(" + i + ",'" + imageid + "')",(timer * speed));
timer++;
}
}
function currentOpac(id, opacEnd, millisec) {
//standard opacity is 100
var currentOpac = 100;
//if the element has an opacity set, get it
if(document.getElementById
currentOpac = document.getElementById(id
}
//call for the function that changes the opacity
opacity(id, currentOpac, opacEnd, millisec)
}
</script>
<div style="border:1px solid red;" id="blenddiv">
<div style="border: 0 none; filter: alpha(opacity=100); -moz-opacity: 100; opacity: 100;" id="blendimage">This is the first text.</div>
</div>
<a href="javascript:blendimag
<a href="javascript:blendimag
<a href="javascript:blendimag
in the above way, you could replace the third argument ('The is the first text', for example) or each of the function calls with a variable name. that variable can contain everything you want, such as text. images, html, etc. a bit like this:
<script>
var divOne = '';
divOne += "<h1>This Is The First Div</h1>";
divOne += "<img src='pic.jpg' />";
divOne += "<p>nice pic eh?</p>";
</script>
<a href="javascript:blendimag
ASKER
Thanks, geordie.
Your code changes between divs correctly, but it does not slowly fade at all in Internet Explorer. In FireFox it does not fade between the two divs, it always fades from a white background.
It should fade between the two divs on IE as well as firefox.
Your code changes between divs correctly, but it does not slowly fade at all in Internet Explorer. In FireFox it does not fade between the two divs, it always fades from a white background.
It should fade between the two divs on IE as well as firefox.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Thanks!
can you include your changeOpac function?