我希望使用jQuery从position : relative
到position : absolute
.animate css 位置属性。
我在div容器中有一个小div,我想在单击一个按钮以适合窗口时展开这个div。
HTML:
<div id="container"> <!-- div with position:relative -->
<div id="content"> <!-- i want to expand this div using position:absolute to extract it from the container and to give width and height 100% -->
<button id="full">Full</button>
<button id="collapse">Collapse</button>
</div>
</div>
我对jQuery().animate
感到厌倦,但是不行,我和jQuery().css
一起工作并且工作,但不是我想要的。
这就是我所做的:
$(document).ready(function () {
$("#collapse").hide();
$("#full").bind("click", function (e) {
e.preventDefault();
$("#content").animate({
width: "1000px",
height:"1000px",
top:0,
left:0
}, 500).css({"overflow": "visible", "position":"absolute"});
$("#full").hide(100);
$("#collapse").show(100); // can i use $("#collapse").css("display","block"); ?
});
$("#collapse").bind("click", function (e) {
e.preventDefault();
$("#content").animate({
width: "400px",
height: "300px",
}, 500).css({"overflow": "visible", "position":"relative"});
$("#full").show(100);
$("#collapse").hide(100);
});
});
非常感谢您的帮助! 最诚挚的问候。
答案 0 :(得分:2)
Position
属性本身不具有动画效果。
您可以更改left
,top
和bottom
值以获得移动效果。
答案 1 :(得分:1)
你想要那样的东西吗? DEMO http://jsfiddle.net/yeyene/TJwsM/6/
$(document).ready(function () {
$("#collapse").hide();
var p = $('#content').position();
$("#full").bind("click", function (e) {
e.preventDefault();
$("#content").animate({
width: $(window).width(),
height:$(window).height(),
top: '0px',
left: '0px'
}, 500);
$("#full").hide(100);
$("#collapse").show(100);
});
$("#collapse").bind("click", function (e) {
e.preventDefault();
$("#content").animate({
width: "400px",
height: "300px",
top: p.top+'px',
left: p.left+'px'
}, 500);
$("#full").show(100);
$("#collapse").hide(100);
});
});
答案 2 :(得分:0)
这是您提到的问题的简单解决方案,重写:
<强> http://jsfiddle.net/vj36r/ 强>
HTML:
<div id="container">
<div id="content">
<button id="full">Full</button>
<button id="collapse">Collapse</button>
</div>
</div>
CSS:
div#container {
position:relative;
width:400px;
height:600px;
background-color:#EEFFEE;
}
div#content {
position:relative;
background-color:#FFEEEE;
overflow:visible;
}
JS:
$(document).ready(function () {
$("#collapse").hide();
$("#content").animate({
top: 40,
marginLeft: 10,
marginRight: 10,
marginBottom: 10
}, 0);
$("#full").bind("click", function (e) {
e.preventDefault();
$("#content").animate({
top: 0,
marginLeft: 0,
marginRight: 0,
marginBottom: 0
}, 500);
$("#full").toggle();
$("#collapse").toggle();
});
$("#collapse").bind("click", function (e) {
e.preventDefault();
$("#content").animate({
top: 40,
marginLeft: 10,
marginRight: 10,
marginBottom: 10
}, 500);
$("#full").toggle();
$("#collapse").toggle();
});
});
答案 3 :(得分:0)
您可以添加一个更改div位置的类,并在单击该元素时使用.addClass和.removeClass方法激活该类。
$(document).ready(function () {
$("#collapse").hide();
$("#full").bind("click", function (e) {
e.preventDefault();
$(this).addClass("position");
$("#content").animate({
width: "1000px",
height:"1000px",
top:0,
left:0
}, 500).css({"overflow": "visible", "position":"absolute"});
$("#full").hide(100);
$("#collapse").show(100); // can i use $("#collapse").css("display","block"); ?
});
$("#collapse").bind("click", function (e) {
e.preventDefault();
$(this).addRemove("position");
$("#content").animate({
width: "400px",
height: "300px",
}, 500).css({"overflow": "visible", "position":"relative"});
$("#full").show(100);
$("#collapse").hide(100);
});
});
css
.position{
position: absolute;
}