我试图在单击鼠标时将圆圈缩小 50%。我通过使用 jQuery UI 的缩放效果来做到这一点。
div是
<div id='circle' class='circle'></div>
Js是
var percent = 0.5;
$('#circle').click(function () {
var height = $(this).height();
var width = $(this).width();
var centerX = $(this).position().left + $(this).width()/2.0;
var centerY = $(this).position().top + $(this).height()/2.0;
$(this).effect( "scale", { percent: percent * 100 }, 1000, function () {
var newTop = centerY - (height * percent)/2.0;
var newLeft = centerX - (width * percent)/2.0;
$('#circle').offset({ 'top': newTop, 'left': newLeft });
$('#circle').css({'height': height * percent, 'width': width * percent });
});
});
那段代码一直有效,直到我在圆圈上添加了一些文本,例如
<div id='circle' class='circle'>
<span class="title">Title</span>
</div>
标题确实随着圆圈缩小,但完成后它恢复到原始大小并使圆圈变成椭圆形。请试试这个小提琴:http: //jsfiddle.net/marsant/Ycakg/
除了手动调整完成回调之外,有没有一种巧妙的方法来解决这个问题?谢谢!