jquery - 使用 jquery 调整 div 大小会导致子图像失去纵横比

标签 jquery css responsive-design image-scaling aspect-ratio

我有一些代码可以调整包含我的 Logo 的 div 的大小,以匹配单独的 <ul> 的当前高度。 .在 CSS 中,标志 <img>具有以下属性:

.logo img {
    height:100%;
    width:auto;
}

这意味着图像将与其包含的 div 一样高,自动高度应保持纵横比,但在某些情况下,图像在调整大小时会拉伸(stretch)。我当前代码的基本版本可以在这里找到:http://flatpackstudios.com/2014%20Site/index.html

当您将浏览器窗口缩小到足以使黑色菜单缩减为 2 或 3 行文本,然后水平扩展窗口使其恢复为一行(但保持窗口足够短)时,问题似乎会出现以便您可以垂直滚动)。然后向下滚动 width:auto.logo img 上似乎没有开始,图像会拉伸(stretch)。

以下是问题的一些截图:

jquery image scaling issue

最后,父框本身的 CSS 和 Jquery:

CSS:

.logo {
    position:fixed;
    top:17px;
    left:20px;
    z-index:100;
    text-align:right;   
}

JQuery:

$(document).scroll(function(){
            if($(this).scrollTop() > stickerTop && $(window).width() > 480) {
                $("#sticker").css({position:'fixed',top:'0px'});
                $(".logo").css({top:'3px', zIndex:'1000', width:'122px', height: stickerHeight - 6, cursor:'pointer'});
                $('#page').css('padding-top',stickerHeight + 20);
            }

            else {
                $("#sticker").css({position:'relative'});
                $(".logo").css({width: 'auto', zIndex:'auto', height: 'auto', top: '17px', cursor:'default'});
                $('#page').css('padding-top','20px');
            }
        });

最佳答案

也许试试:

.logo img {
   max-height: 100%;
   max-width: 100%;
}

以及 div.logo 的一些其他尺寸以满足您的目标。

关于jquery - 使用 jquery 调整 div 大小会导致子图像失去纵横比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22113150/

相关文章:

php - PJAX 和 Firefox 后退按钮问题

html - 从 html 正文中获取文本

css - 在我的简单 CSS-3 动画中解释立方体微风

css 响应,一个元素 "touches"其他元素改变 css 位置

javascript - 在打开的选择选项的底部动态附加一个 div

javascript - 如何使用 jquery 为 slider 创建缩略图

html - 如何在文本不超出移动屏幕右侧的情况下给元素填充?

html - 无法使移动响应

jQuery 验证——在用户输入输入并且字段至少模糊一次之前不验证

javascript - 图像未填满行尾