RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 1258964
Accepted
MrShnaider
MrShnaider
Asked:2022-03-22 01:36:48 +0000 UTC2022-03-22 01:36:48 +0000 UTC 2022-03-22 01:36:48 +0000 UTC

使用变换时对象拟合无法正常工作:缩放

  • 772

有产品卡(它们看起来像产品卡)。图片,然后是标题和描述。

<section class="projects__section c-container--center-max">
    <h2 class="visually-hidden">Список проектов</h2>
    <ul class="projects__list">
        <li class="projects__item">
            <a href="#">
            <div class="card">
                <picture>
                    <source srcset="img/projects__movie-1@orig-plus.jpg 1000w" media="(min-width: 750px)"/>
                    <source srcset="img/projects__movie-1@900.jpg 900w" media="(max-width: 750px)"/>
                    <img class="card__img" src="img/projects__movie-1@orig-plus.jpg" alt="Movie 1"/>
                </picture>
                <div class="w-card__text">
                    <h3 class="card__title">The Movie</h3>
                    <p class="card__description">Movie in cinema</p>
                </div>
            </div>
            </a>
        </li>
        <li class="projects__item"></li>
        <li class="projects__item"></li>
        <li class="projects__item"></li>
    </ul>
</section>
:root {
    --max-width: 1280px;
}
* {
    padding: 0;
    margin: 0;
    box-sizing: border-box;
}
.c-container--center-max {
    margin: 0 auto;
    max-width: var(--max-width);
}
.projects__section {
    padding: 30px 0px;
}
.projects__list {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, auto));
    gap: 1rem;
    align-items: stretch;
    list-style: none;
}
.projects__item {
    --transition-time: 0.3s;
    display: grid;
    align-items: stretch;

    box-shadow: 0 0 20px rgb(142 78 199 / 20%);
    border-radius: 5px;
    
    transition: var(--transition-time) ease;
}
.card {
    display: grid;
    grid-template-rows: minmax(450px,75%) repeat(2, auto);
    grid-template-areas:
    'card__img'
    'w-card__text';

    background-color: #fff;
    transition: var(--transition-time) ease;
    overflow: hidden;
}
.card__img {
    width: 100%;
    grid-area: card__img;
    height: 100%;
    object-fit: cover;
    object-position: 50% 0;
    display: block;
    transition: var(--transition-time) ease;
    transform: scale(1);
}
.w-card__text {
    grid-area: w-card__text;
    padding: 20px;
}
.projects__item .card {
    height: 100%;
}
.card:hover .card__img{
    transform: scale(1.01);
    filter: brightness(75%);
    will-change: transform;
    transform-origin: center center;
    backface-visibility: hidden;
}

这些卡片在一个带有属性的网格容器中grid-template-columns: repeat(auto-fill, minmax(300px, auto)),它们分别被拉伸、压缩和根据屏幕改变一行中的数字。为了使图片适合块,我object-fit: cover; overflow: hidden还应用了图片width: 100%。一切正常,但是:当您悬停时,图片应该略微平滑地增加(当您移除悬停时,采用原始大小)。应用transform: scale(1.01); transition: 0.3s. 而现在的问题是:当悬停被移除时,图片恢复到原来的状态,然而,在随机情况下,在变换结束时,它会抽搐,好像重新对齐以适应块。在什么模式我无法追踪。即使它们具有相同的宽度/高度/文本部分,彼此相邻的相同图片的行为也会有所不同。例如,连续 3 张相同的图片(一排卡片),一张向下抽动,另一张向上和向左抽动,第三张根本不抽动。我知道 object-fit 不会动画,但有些图片不会抽搐,这意味着属性“可能”正常工作。这种行为可能是什么原因以及如何正确实施它?甚至在 JS 上也是可能的。提前致谢。

css
  • 2 2 个回答
  • 10 Views

2 个回答

  • Voted
  1. Артем
    2022-03-22T06:36:47Z2022-03-22T06:36:47Z

    将.card__img设置为宽度:101%;
    如果您谈论的是带有图像的框在抽搐的事实。

    • 0
  2. Best Answer
    MrShnaider
    2022-07-25T19:58:39Z2022-07-25T19:58:39Z

    这些属性是:

    will-change: transform;
    transform-origin: center center;
    

    放入选择器

    .card__img
    

    不在

    .card:hover .card__img
    

    由于悬停选择器仅出现在悬停时,will-change 在悬停后不起作用并导致类似的抽搐。

    • 0

相关问题

  • 几何形状的阴影

  • 如何制作这样的人物组合?

  • 如何在css中制作一个图形

  • 如何制作阴影(投影)渐变

  • 网格项目传输不起作用

  • 更改屏幕宽度时换行。引导程序

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    表格填充不起作用

    • 2 个回答
  • Marko Smith

    提示 50/50,有两个,其中一个是正确的

    • 1 个回答
  • Marko Smith

    在 PyQt5 中停止进程

    • 1 个回答
  • Marko Smith

    我的脚本不工作

    • 1 个回答
  • Marko Smith

    在文本文件中写入和读取列表

    • 2 个回答
  • Marko Smith

    如何像屏幕截图中那样并排排列这些块?

    • 1 个回答
  • Marko Smith

    确定文本文件中每一行的字符数

    • 2 个回答
  • Marko Smith

    将接口对象传递给 JAVA 构造函数

    • 1 个回答
  • Marko Smith

    正确更新数据库中的数据

    • 1 个回答
  • Marko Smith

    Python解析不是css

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5