| function cross_fade_image(image_node, new_link, group_node, transition_duration) { | |
| var original_x = +image_node.attr('x'); | |
| var original_y = +image_node.attr('y'); | |
| var original_width = +image_node.attr('width'); | |
| var original_height = +image_node.attr('height'); | |
| var new_image = group_node.append('svg:image') | |
| .attr('id', 'transition_' + image_node.id) | |
| .attr('width', original_width) | |
| .attr('height', original_height) | |
| .attr('xlink:href', image_node.attr('xlink:href')) | |
| .attr('x', original_x) | |
| .attr('y', original_y) | |
| .style('opacity', 1.0); | |
| image_node | |
| .attr('xlink:href', new_link); | |
| new_image | |
| .transition() | |
| .duration(transition_duration) | |
| .style('opacity', 0.0) | |
| .attr('x', original_x) | |
| .attr('y', original_y) | |
| .remove(); | |
| } |