<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>Position Visual Test: Containing Element</title> <link rel="stylesheet" href="../visual.css" type="text/css" /> <link rel="stylesheet" href="../../../themes/base/jquery.ui.all.css" type="text/css" title="ui-theme" /> <script src="../../../jquery-1.7.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> html, body { height:100%; width:100%; margin:0; /* force scroll bar*/ min-height:800px; min-width:800px; /* IE6 needs this */ text-align:center; } .demo-description { text-align:center; padding:1.5em; } .demo-container { background:#aaa; width:80%; height:80%; text-align:left; margin:0 auto; position:relative; padding:10px; } .demo { background:#eee; overflow:hidden; position:relative; height:100%; /* IE6 needs this */ width:100%; } #parent { width: 60%; margin: 10px auto; padding: 5px; border: 1px solid #777; background-color: #fbca93; text-align: center; cursor:move; } .positionable { width: 75px; height: 75px; position: absolute; display: block; right: 0; bottom: 0; background-color: #bcd5e6; text-align: center; cursor:move; } .ui-flipped-top { border-top: 3px solid #000000; } .ui-flipped-bottom { border-bottom: 3px solid #000000; } .ui-flipped-left { border-left: 3px solid #000000; } .ui-flipped-right { border-right: 3px solid #000000; } select, input { margin-left: 15px; } </style> <script> $(function() { function position( using ) { $( ".positionable" ).position({ of: $( "#parent" ), my: $( "#my_horizontal" ).val() + " " + $( "#my_vertical" ).val(), at: $( "#at_horizontal" ).val() + " " + $( "#at_vertical" ).val(), offset: $( "#offset" ).val(), using: using, within: $( ".demo" ), collision: $( "#collision_horizontal" ).val() + " " + $( "#collision_vertical" ).val() }); } $( ".demo" ).append("<div style='width:5000px;height:5000px;' />").css("overflow","auto"); $( ".positionable" ).css( "opacity", 0.5 ); $( ":input" ).bind( "click keyup change", function() { position(); } ); $( "#parent" ).draggable({ drag: function() { position(); } }); $( ".positionable" ).draggable({ drag: function( event, ui ) { // reset offset before calculating it $( "#offset" ).val( "0" ); position(function( result ) { var demo = $( ".demo" ); $( "#offset" ).val( "" + ( ui.offset.left - result.left - demo.offset().left + demo.scrollLeft() ) + " " + ( ui.offset.top - result.top - demo.offset().top + demo.scrollTop() ) ); position(); }); } }); position(); }); </script> </head> <body> <div class="demo-description"> Use the form controls to configure the positioning, or drag the positioned element to modify its offset. <br/>Drag around the parent element to see collision detection in action. </div><!-- End demo-description --> <div class="demo-container"> <div class="demo"> <div id="parent"> <p>This is the position parent element.</p> </div> <div class="positionable"> <p>to position</p> </div> <div class="positionable" style="width:120px; height: 40px;"> <p>to position 2</p> </div> <div style="padding: 20px; margin-top: 75px;"> position... <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>offset:</b> <input id="offset" type="text" size="15"/> </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="none">none</option> </select> <select id="collision_vertical"> <option value="flip">flip</option> <option value="fit">fit</option> <option value="none">none</option> </select> </div> </div> </div><!-- End demo --> </div> </body> </html>