jQuery UI 实例 – 定位(Position)
相对窗口、文档、锚、光标/鼠标等元素定位一个元素。
如需了解更多有关 .position() 方法的细节,请查看 API 文档 .position()。
默认功能
使用表单控件配置位置,或者拖拽被定位的元素来修改它的偏移量。向四周拖拽父元素来查看碰撞检测。
<!doctype html>
<html lang=\"en\">
<head>
<meta charset=\"utf-8\">
<title>jQuery UI 定位(Position) - 默认功能</title>
<link rel=\"stylesheet\" href=\"//code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css\">
<script src=\"//code.jquery.com/jquery-1.9.1.js\"></script>
<script src=\"//code.jquery.com/ui/1.10.4/jquery-ui.js\"></script>
<link rel=\"stylesheet\" href=\"http://jqueryui.com/resources/demos/style.css\">
<style>
#parent {
width: 60%;
height: 40px;
margin: 10px auto;
padding: 5px;
border: 1px solid #777;
background-color: #fbca93;
text-align: center;
}
.positionable {
position: absolute;
display: block;
right: 0;
bottom: 0;
background-color: #bcd5e6;
text-align: center;
}
#positionable1 {
width: 75px;
height: 75px;
}
#positionable2 {
width: 120px;
height: 40px;
}
select, input {
margin-left: 15px;
}
</style>
<script>
$(function() {
function position() {
$( \".positionable\" ).position({
of: $( \"#parent\" ),
my: $( \"#my_horizontal\" ).val() + \" \" + $( \"#my_vertical\" ).val(),
at: $( \"#at_horizontal\" ).val() + \" \" + $( \"#at_vertical\" ).val(),
collision: $( \"#collision_horizontal\" ).val() + \" \" + $( \"#collision_vertical\" ).val()
});
}
$( \".positionable\" ).css( \"opacity\", 0.5 );
$( \"select, input\" ).bind( \"click keyup change\", position );
$( \"#parent\" ).draggable({
drag: position
});
position();
});
</script>
</head>
<body>
<div>
<p>
这是父元素的位置。
</p>
</div>
<div>
<p>
to position
</p>
</div>
<div>
<p>
to position 2
</p>
</div>
<div style=\"padding: 20px; margin-top: 75px;\">
定位...
<div style=\"padding-bottom: 20px;\">
<b>my:</b>
<select>
<option value=\"left\">left</option>
<option value=\"center\">center</option>
<option value=\"right\">right</option>
</select>
<select>
<option value=\"top\">top</option>
<option value=\"center\">center</option>
<option value=\"bottom\">bottom</option>
</select>
</div>
<div style=\"padding-bottom: 20px;\">
<b>at:</b>
<select>
<option value=\"left\">left</option>
<option value=\"center\">center</option>
<option value=\"right\">right</option>
</select>
<select>
<option value=\"top\">top</option>
<option value=\"center\">center</option>
<option value=\"bottom\">bottom</option>
</select>
</div>
<div style=\"padding-bottom: 20px;\">
<b>collision:</b>
<select>
<option value=\"flip\">flip</option>
<option value=\"fit\">fit</option>
<option value=\"flipfit\">flipfit</option>
<option value=\"none\">none</option>
</select>
<select>
<option value=\"flip\">flip</option>
<option value=\"fit\">fit</option>
<option value=\"flipfit\">flipfit</option>
<option value=\"none\">none</option>
</select>
</div>
</div>
</body>
</html>
图像循环
一个照片浏览器的原型,使用 Position 分别把图片定为在左边、中间、右边,然后循环显示。使用顶部的链接来循环图像,或者在图像的左侧或右侧点击来循环图像。请注意,当调整窗口大小时,会重新定位图像。
<!doctype html>
<html lang=\"en\">
<head>
<meta charset=\"utf-8\">
<title>jQuery UI 定位(Position) - 图像循环</title>
<link rel=\"stylesheet\" href=\"//code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css\">
<script src=\"//code.jquery.com/jquery-1.9.1.js\"></script>
<script src=\"//code.jquery.com/ui/1.10.4/jquery-ui.js\"></script>
<link rel=\"stylesheet\" href=\"http://jqueryui.com/resources/demos/style.css\">
<style>
body {
margin: 0;
}
#container {
overflow: hidden;
position: relative;
height: 400px;
}
img {
position: absolute;
}
</style>
<script>
$(function() {
// 重构部件,去除这些插件方法
$.fn.left = function( using ) {
return this.position({
my: \"right middle\",
at: \"left+25 middle\",
of: \"#container\",
collision: \"none\",
using: using
});
};
$.fn.right = function( using ) {
return this.position({
my: \"left middle\",
at: \"right-25 middle\",
of: \"#container\",
collision: \"none\",
using: using
});
};
$.fn.center = function( using ) {
return this.position({
my: \"center middle\",
at: \"center middle\",
of: \"#container\",
using: using
});
};
$( \"img:eq(0)\" ).left();
$( \"img:eq(1)\" ).center();
$( \"img:eq(2)\" ).right();
function animate( to ) {
$( this ).stop( true, false ).animate( to );
}
function next( event ) {
event.preventDefault();
$( \"img:eq(2)\" ).center( animate );
$( \"img:eq(1)\" ).left( animate );
$( \"img:eq(0)\" ).right().appendTo( \"#container\" );
}
function previous( event ) {
event.preventDefault();
$( \"img:eq(0)\" ).center( animate );
$( \"img:eq(1)\" ).right( animate );
$( \"img:eq(2)\" ).left().prependTo( \"#container\" );
}
$( \"#previous\" ).click( previous );
$( \"#next\" ).click( next );
$( \"img\" ).click(function( event ) {
$( \"img\" ).index( this ) === 0 ? previous( event ) : next( event );
});
$( window ).resize(function() {
$( \"img:eq(0)\" ).left( animate );
$( \"img:eq(1)\" ).center( animate );
$( \"img:eq(2)\" ).right( animate );
});
});
</script>
</head>
<body>
<div>
<img loading=\"lazy\" src=\"/wp-content/uploads/2014/03/earth.jpg\" width=\"458\" height=\"308\" alt=\"earth\">
<img loading=\"lazy\" src=\"/wp-content/uploads/2014/03/flight.jpg\" width=\"512\" height=\"307\" alt=\"flight\">
<img loading=\"lazy\" src=\"/wp-content/uploads/2014/03/rocket.jpg\" width=\"300\" height=\"353\" alt=\"rocket\">
<a href=\"#\">上一个</a>
<a href=\"#\">下一个</a>
</div>
</body>
</html>
点我分享笔记