我希望做一些非常简单的事情。我有很多排列在网格中的DIV盒子。当我将其中一个悬停时,我希望它慢慢扩展,从中间锚定,然后缩回。但是,如果没有将其他DIV盒子推到一边,我就无法这样做。我想让DIV继续慢慢扩展,与其他DIV盒重叠,而不移动它们。 我用JQuery完成了一些。 这就是我所拥有的:
CSS:
div{width: 100px; height: 100px; float: left;}
div#sq1{background-color: magenta;}
div#sq2{background-color: yellow;}
div#sq3{background-color: cyan;}
JQuery的:
<script type='text/javascript' src='animated.js'></script>
<script type="text/javascript">
$(document).ready(function() {
$("div").hover(function(){
if (!$(this).hasClass('animated')) {
$(this).dequeue().stop().animate({ width: "100px", height: "100px" });
}
}, function() {
$(this).addClass('animated').animate({ width: "200px", height: "200px" }, "normal", "linear", function() {
$(this).removeClass('animated').dequeue();
});
});
</script>
HTML:
<div id="dequeue" class="blocks">
<div id="sq1"></div>
<div id="sq2"></div>
<div id="sq3"></div>
</div>
以下是我希望它的外观: 之前:http://i39.tinypic.com/dh9x87.png 之后:http://i44.tinypic.com/70cd35.png
谢谢!
答案 0 :(得分:1)
尝试使用负边距来欺骗网页,使每个框仍然是100px x 100px。因此,除了将宽度和高度设置为100px到200px之外,还可以将边距设置为0到-50px。
希望这会有所帮助:)
修改强>
这是一个有效的例子:
答案 1 :(得分:0)
我想我明白你要做什么:D虽然我没有100%的肯定答案,但我确实有一个建议,尝试使用div的z-index,也许让你成为一个徘徊在像5或任何你想要的正数的事情上!
答案 2 :(得分:0)
为什么不使用绝对位置?或者另一种方法是在悬停的那个上创建一个重复的div,然后为它设置动画。
答案 3 :(得分:0)
使用简单易用的CSS3
答案 4 :(得分:0)
答案 5 :(得分:0)
看看这个例子;我想这就是你想要做的。 http://jsfiddle.net/tdsNF/2/
它是一个带图像的扩展器,但我相信div也能正常工作。
在此处找到:Expand / shrink div on hover / out with jQuery
var $imageWidth = 92, // with borders
$imageColumns = 10; // images across
$("#container > div .img").each(function(index) {
var $left = (index % $imageColumns * $imageWidth);
$(this).css("left", $left + "px");
});
$(".img a img").hover(function() {
$(this).closest(".img").css("z-index", 1);
$(this).stop(true,true).animate({ height: "200", width: "200", left: "-=55", top: "-=55" }, "fast");
$("#name").css("color", "#242424").html($(this).attr("data-name"));
$("#school").css("color", "#242424").html($(this).attr("data-school"));
}, function() {
$(this).closest(".img").css("z-index", 0);
$(this).stop(true,true).animate({ height: "90", width: "90", left: "+=55", top: "+=55" }, "fast");
});