所以我可以通过它的中心枢轴很好地缩放div:http://jsfiddle.net/uTDay/
但是,当我在div中添加内容时,转换开始发生变化:http://jsfiddle.net/uTDay/1/
请注意,它不再从中心缩小。
我也尝试过它,因为它随着.fadeOut()
/ .fadeTo()
/ .animate()
开始缩小而逐渐消失,但无法让它发挥作用。
基本上,当您点击过滤器选项时,我想要实现的效果就是此效果 - shrink/grow
从中心枢轴点开始的同时,fade in/out
:{{ 3}}
谢谢。
答案 0 :(得分:12)
Isotope使用CSS Transforms来缩放元素,这就是所有内容随之缩放的原因。如果您只是更改框(容器)大小,则包含的节点不受影响(文本具有相同的字体大小等)
使用CSS转换或更改内容的大小以及容器元素(如其他答案所示)。
<强>的Javascript 强>
$(".btn a").click(function () {
$('.box').addClass('hidden');
});
<强> CSS 强>
.box {
display: block;
height: auto;
width:402px;
/*height:200px;*/
background-color: red;
padding: 20px;
-webkit-transition: all 1000ms linear;
-moz-transition: all 1000ms linear;
-ms-transition: all 1000ms linear;
-o-transition: all 1000ms linear;
transition: all 1000ms linear;
}
.box.hidden {
-moz-opacity: 0;
opacity: 0;
-moz-transform: scale(0.01);
-webkit-transform: scale(0.01);
-o-transform: scale(0.01);
-ms-transform: scale(0.01);
transform: scale(0.01);
}
答案 1 :(得分:1)
同时淡化和缩放。这可能会有点重构,但这是个想法:
$(".btn a").click(function () {
var boxleft = $('.box').outerWidth()/2;
var boxtop = $('.box').outerHeight()/2;
var imgleft = $('.box img').outerWidth()/2;
var imgtop = $('.box img').outerHeight()/2;
$('.box').animate({
'opacity' : 0,
'width': 0,
'height': 0,
'left': boxleft + 'px',
'top': boxtop + 'px'
});
$('.box img').animate({
'opacity' : 0,
'width': 0,
'height': 0,
'left': imgleft + 'px',
'top': imgtop + 'px'
});
});
CSS(添加position: relative
):
.box {
display: block;
width:200px;
height:200px;
background-color: red;
position: relative;
}
DEMO:http://jsfiddle.net/uTDay/12/
答案 2 :(得分:1)
我把时间花在了这个上面:
所有框隐藏,并根据每个元素属性缩放到相对高度。
代码,使用函数变量为DRY。
var hide_those_boxes = function () {
$('.box , .box img').each(function(ix, obj) {
$(obj).animate({
opacity : 0,
left: '+='+$(obj).width()/4,
top: '+='+$(obj).height()/4,
height:0,
width:0
},
3000,
function() { $(obj).hide(); }
);
});
}
$(".btn a").click(hide_those_boxes);
答案 3 :(得分:0)
盒子仍然在发挥你期望的效果,你需要做的是对盒子里面的img应用类似的效果
答案 4 :(得分:0)
这个更好用:)
$(".btn a").click(function () {
$('.box').hide("scale", {}, 500).animate({'opacity' : 0});
$('.box img').hide("scale", {}, 500).animate({'opacity' : 0});
});
答案 5 :(得分:0)
DEMO = http://jsfiddle.net/uTDay/8/ 不同的方式:
$(".btn a").click(function () {
$('.box').animate({'opacity':0,'width':0,'height':0},1000);
$('.box img').animate({'width':0,'height':0},1000);
});