jsSimpleConnect - Advanced examples

Requirements

In order to run the examples, the JavaScript libraries of jqSimpleConnect and jQuery must be included in the <head> of the HTML file:
<script type="text/javascript" src="js/jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="js/jqSimpleConnect-1.0.js"></script>
        

Demo 1

Code

<script type="text/javascript">
    jQuery(document).ready(function() {
        // Create connections.
        var conn1 = jqSimpleConnect.connect("#div_a", "#div_b");
        var conn2 = jqSimpleConnect.connect("#div_c", "#div_d");
                    
        // Define the link's behaviours for remove the connections
        jQuery("#a_remove_conn1").click(function() {
            if(conn1 != null) {
                jqSimpleConnect.removeConnection(conn1);
                conn1 = null;
            }
        return false;
        });
                   
        jQuery("#a_remove_conn2").click(function() {
            if(conn2 != null) {
                jqSimpleConnect.removeConnection(conn2);
                conn2 = null;
            }
        return false;
        });
    });
</script>
<div style="position:relative; height: 100px;">
    <div id="div_a" style="position:absolute; top:5px; left:5px; border:1px solid black; background-color:white; padding:5px;">Div A</div>
    <div id="div_b" style="position:absolute; top:50px; left:150px; border:1px solid black; background-color:white; padding:5px;">Div B</div>
    <div id="div_c" style="position:absolute; top:25px; left:250px; border:1px solid black; background-color:white; padding:5px;">Div C</div>
    <div id="div_d" style="position:absolute; top:25px; left:400px; border:1px solid black; background-color:white; padding:5px;">Div D</div>
</div>
<div>
    <a href="#" id="a_remove_conn1">Remove first connection</a> | 
    <a href="#" id="a_remove_conn2">Remove second connection</a>
</div>
        

Result

Div A
Div B
Div C
Div D
Remove first connection | Remove second connection

Demo 2

Code

<script type="text/javascript">
    jQuery(document).ready(function() {
        // Create connection.
        var conn3 = jqSimpleConnect.connect("#div_e", "#div_f");
                    
        // Each second, move 'Div E' and repaint the connection.
        var flag = true;
        setInterval(function() {
            var newPos = flag? 50 : 5;                       
            jQuery("#div_e").css('left', newPos);                            
            jqSimpleConnect.repaintConnection(conn3);
            flag = !flag;
        }, 750);
    });                
</script>
<div style="position:relative; height: 110px;">
    <div id="div_e" style="position:absolute; top:5px; left:5px; border:1px solid black; background-color:white; padding:5px;">Div E</div>
    <div id="div_f" style="position:absolute; top:75px; left:150px; border:1px solid black; background-color:white; padding:5px;">Div F</div>
</div>
        

Result

Div E
Div F

Demo 3

Code

<script type="text/javascript">
    jQuery(document).ready(function() {
        // Create connection.
        var conn4 = jqSimpleConnect.connect("#div_g", "#div_h");
                    
        // Animate 'Div G'.
        DivG_Anim1(conn4);
        });
                
    // Define animation functions.
    function DivG_Anim1(connection) {
        jQuery('#div_g').animate(
            { top: '+=70' },
            {
                duration: 5000,
                step: function() { 
                    // Repaint connection.
                    jqSimpleConnect.repaintConnection(connection);
                },
                complete: function() {
                    // Init second animation.
                    DivG_Anim2(connection);
                    }
            }
        );
    }
    
    function DivG_Anim2(connection) {
        jQuery('#div_g').animate(
            { top: '-=70' },
            {
                duration: 5000,
                step: function() { 
                    // Repaint connection.
                    jqSimpleConnect.repaintConnection(connection);
                },
                complete: function() {
                    // Re-init first animation.
                    DivG_Anim1(connection);
                }
            }
        );
    }
</script>
<div style="position:relative; height: 110px;">
    <div id="div_g" style="position:absolute; top:5px; left:5px; border:1px solid black; background-color:white; padding:5px;">Div G</div>
    <div id="div_h" style="position:absolute; top:75px; left:150px; border:1px solid black; background-color:white; padding:5px;">Div H</div>
</div>
        

Result

Div G
Div H
Fork me on GitHub