动画扩展摆动

发布于 2024-12-23 05:03:09 字数 1501 浏览 2 评论 0 原文

在这个菜单中,悬停的 div 正在扩展,所有其他元素都在缩小

,更改大小时菜单右侧有一个小摆动,这真的很烦人,

我见过这个: 使用 CSS 从中间展开 div,而不是仅从顶部和左侧展开< /a> 从中心扩展,他们还提到了摆动,

有没有办法修复摆动?

这是我的代码

,您可以看到速度始终相同,因此理论上不应该有晃动,

function add() {
    var speed = 50;
    $('.space').hover(
        function() {
            var n = this.id.replace(/[^\d]/g, '');
            $('#space_' + n).removeClass('contract');
            $('#space_' + n).stop().animate({
                height: "107px",
                width: "107px",
            }, speed, 'linear');
            $('.contract').stop().animate({
                height: "73px",
                width: "70px",
            }, speed, 'linear');
        },
        function() {
            var n = this.id.replace(/[^\d]/g, '');
            $('#space_' + n).addClass('contract');
            if($('#space_' + n).hasClass('selected') != true) {
                $('#space_' + n).stop().animate({
                    height: "73px",
                    width: "73px",
                }, speed, 'linear');
            }
            $('.contract').stop().animate({
                height: "73px",
                width: "73px",
            }, speed, 'linear');
        }
    );
}

add();

您可以在这里看到菜单的示例: http://mellroy.com/dean/

提前谢谢您

in this menu, de hovered div is expanding and all the other elements are shrinking

there is a small wiggle at the right side of the menu when changing size, which is really annoying

i've seen this: Expand div from the middle instead of just top and left using CSS
expanding from the center, and they also mention the wiggle

is there a way to fix the wiggle?

this is my code

as you can see the speed is always the same so there shouldnt be a wiggle in theory

function add() {
    var speed = 50;
    $('.space').hover(
        function() {
            var n = this.id.replace(/[^\d]/g, '');
            $('#space_' + n).removeClass('contract');
            $('#space_' + n).stop().animate({
                height: "107px",
                width: "107px",
            }, speed, 'linear');
            $('.contract').stop().animate({
                height: "73px",
                width: "70px",
            }, speed, 'linear');
        },
        function() {
            var n = this.id.replace(/[^\d]/g, '');
            $('#space_' + n).addClass('contract');
            if($('#space_' + n).hasClass('selected') != true) {
                $('#space_' + n).stop().animate({
                    height: "73px",
                    width: "73px",
                }, speed, 'linear');
            }
            $('.contract').stop().animate({
                height: "73px",
                width: "73px",
            }, speed, 'linear');
        }
    );
}

add();

here you can see an example of the menu: http://mellroy.com/dean/

thank you in advance

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

一人独醉 2024-12-30 05:03:09

摆脱边框 - 而是使用背景图像。如果将整个菜单放在白色和黑色背景上(与菜单匹配),您将不会看到摆动 - 尽管摆动仍然存在。我怀疑你能否避免它。

Get rid of the borders - rather use a background image. If you place the entire menu on a white and black background (matching the menu), you wont see the wobble - event though the wobble is still there. I doubt you will be able to avoid it.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文