使用 JQuery 向所有方向扩展 div



我有一个div的网格,每个div都有内容:一些文本,一张图片和某种[x]按钮。这些div 的位置都设置为绝对(这是一个不规则的网格,这就是我选择绝对的原因)。

我现在想做的是让它们在鼠标光标位于它们上方时展开(并将其放在网格中其他重叠的div 之上)。我设法在这里做到了这一点:http://jsfiddle.net/CvhkM/2833/.问题是我希望它恢复到其初始位置和尺寸(每个div 都有自己的位置和尺寸),并且由于某种原因它不起作用......(请注意,这是我第一次使用jQuery)。哦,我可以补充一点,我将如何限制它不扩展到区域(矩形区域)之外?

上面

提到的溢出问题肯定会有所帮助,你可以在CSS中做到这一点。我个人会做溢出:隐藏或溢出:自动,以便您的溢出内容保持隐藏状态,直到将鼠标悬停在框上。

我在下面添加了代码来帮助您使代码变得动态,您可以随意调整悬停动画上的数字和乘法因子,这可以让您进一步根据原始尺寸调整大小:)

var multiplying_factor = 1.5;
$(function() {
    $('.div').each(function() {
        $(this).data('original_position', $(this).offset());
        $(this).data('original_width', $(this).width());
        $(this).data('original_height', $(this).height());
        $(this).hover(function() {
            $(this).stop().animate({
                left   : $(this).data('original_position').left - ($(this).data('original_width') * multiplying_factor / 4),
                top    : $(this).data('original_position').top - ($(this).data('original_height') * multiplying_factor / 4),
                width  : $(this).data('original_width') * multiplying_factor,
                height : $(this).data('original_height') * multiplying_factor
            }, 300);
        },function() {
            $(this).stop().animate({
                left   : $(this).data('original_position').left,
                top    : $(this).data('original_position').top,
                width  : $(this).data('original_width'),
                height : $(this).data('original_height')
            }, 300);
        });
    });
});    ​

这是一个溢出问题。尝试添加

$('.div').css('overflow','visible');

请参阅此 JSFiddle:

http://jsfiddle.net/CvhkM/2834/

最新更新