<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>Position Visual Test</title> <script src="../../../jquery-1.9.1.js"></script> <script src="../../../ui/jquery.ui.core.js"></script> <script src="../../../ui/jquery.ui.widget.js"></script> <script src="../../../ui/jquery.ui.mouse.js"></script> <script src="../../../ui/jquery.ui.draggable.js"></script> <script src="../../../ui/jquery.ui.position.js"></script> <style> .demo { position: relative; height: 500px; width: 80%; margin: 20px auto; background: #eee; } #target { width: 60%; margin: 0 auto; border: 1px solid #777; background-color: #fbca93; text-align: center; cursor: move; } .positionable { position: absolute; background-color: #bcd5e6; text-align: center; } .extra-margin { margin: 0 15px 15px 0; } </style> <script> $(function() { var within = $( ".demo" ), positionable = $( ".positionable" ); function position() { positionable.position({ of: $( "#target" ), my: $( "#my_horizontal" ).val() + " " + $( "#my_vertical" ).val(), at: $( "#at_horizontal" ).val() + " " + $( "#at_vertical" ).val(), within: within, collision: $( "#collision_horizontal" ).val() + " " + $( "#collision_vertical" ).val() }); } positionable.css( "opacity", 0.5 ); $( "#target" ).draggable({ drag: function() { position(); } }); $( "#within" ).click(function() { within = within.is( ".demo" ) ? $( window ) : $( ".demo" ); position(); }); $( "#margin" ).click(function() { positionable.toggleClass( "extra-margin" ); position(); }); $( "select, input" ).bind( "click keyup change", function() { position(); } ); position(); }); </script> </head> <body> <div class="demo"> <div id="target"> <p>This is the position target element.</p> </div> <div class="positionable" style="width: 75px; height: 75px;"> <p>to position</p> </div> <div class="positionable" style="width:120px; height: 40px;"> <p>to position 2</p> </div> <form style="padding: 20px; margin-top: 75px;"> <h2>Position configuration:</h2> <div style="padding-bottom: 20px;"> <b>my:</b> <select id="my_horizontal"> <option value="left">left</option> <option value="center">center</option> <option value="right" selected="selected">right</option> </select> <select id="my_vertical"> <option value="top">top</option> <option value="middle">center</option> <option value="bottom">bottom</option> </select> </div> <div style="padding-bottom: 20px;"> <b>at:</b> <select id="at_horizontal"> <option value="left">left</option> <option value="center">center</option> <option value="right" selected="selected">right</option> </select> <select id="at_vertical"> <option value="top">top</option> <option value="middle">center</option> <option value="bottom">bottom</option> </select> </div> <div style="padding-bottom: 20px;"> <b>collision:</b> <select id="collision_horizontal"> <option value="flip">flip</option> <option value="fit">fit</option> <option value="flipfit">flipfit</option> <option value="none">none</option> </select> <select id="collision_vertical"> <option value="flip">flip</option> <option value="fit">fit</option> <option value="flipfit">flipfit</option> <option value="none">none</option> </select> </div> <div> <label for="within">within:</label> <input id="within" type="checkbox" checked="checked"> </div> <div> <label for="margin">extra margin:</label> <input id="margin" type="checkbox"> </div> </form> </div> </body> </html>