【问题标题】:Second hover transition for scale on <img> tag not working correctly<img> 标签上缩放的第二个悬停过渡无法正常工作
【发布时间】:2018-05-23 18:29:59
【问题描述】:

我正在尝试为父母及其孩子制作两种不同的:hover 效果。

HTML

<section class="col large-poster">
               <div class="image-area">
                      <img class="img-cover" src="/path.png" alt="Maven" />
                </div>
                <div class="poster-cover">
                     <div>
                         <h1>
                            Item 
                          </h1>
                     </div>
                </div>
 </section>

不透明度过渡

我正在使用这个将不透明度更改为1

main#wrap > .page > .group > section.large-poster > .image-area {
            position: absolute;
            width: 100%;
            height: 100vh;
            opacity: .265;
            transition: 4s ease;
}

      main#wrap > .page > .group > section.large-poster:hover > .image-area {
            opacity: 1;
     }

这很好用,但我也希望能够慢慢缩放它,我的 CSS 似乎不适用于 :hover 缩放。它建立在与不透明度渐变相同的逻辑之上。

比例转换

main#wrap > .page > .group > section.large-poster > .image-area > img {
        margin-top: 0;
        margin-left: -752px;
        width: auto;
        /* height: auto */
        height: 1000px;
        transform:scale(1,1);
        transition: 8s all;
    }

   main#wrap > .page > .group > section.large-poster:hover > image-area > img {
      transform:scale(1.2,1.2)
   }

jdFiddle link


html {
    font-size: 62.5%;
    font-family: sans-serif;
    box-sizing: border-box;
    -webkit-text-size-adjust: 100%;
    -moz-text-size-adjust: 100%;
    -ms-text-size-adjust: 100%;
}

body {
    padding: 0;
    margin: 0 auto;
}

.container:after, .group:before, .group:after, .clearfix:before, .clearfix:after, .row:before, .row:after {
    content: '\0020';
    display: block;
    overflow: hidden;
    visibility: hidden;
    width: 0;
    height: 0;
}

.container:after, .row:after, .clearfix:after, .group:after {
    clear: both;
}

.row, .clearfix, .group {
    zoom: 1;
}

body, html {
    height: 100%;
}

body {
    color: #000;
    font-weight: 300;
    font-size: 16px;
    font-size: 1.6rem;
    line-height: 1.5;
    background: #fff
}

img:not(.img-cover),
svg {
    display: block;
    max-width: 100%;
    height: auto
}

.col {
    width: 25%;
    float:left;
    display:block
}

main {
    display: block;
    background: black
}

    main#wrap > .page > .group > section.large-poster {
        min-height: 892px;
        height: 100vh;
        position: relative;
        overflow: hidden;
        display: flex;
        align-items: center;
        justify-content: center;
    }

        main#wrap > .page > .group > section.large-poster > .image-area {
            position: absolute;
            width: 100%;
            height: 100vh;
            opacity: .265;
            transition: 4s ease;
        }

        main#wrap > .page > .group > section.large-poster:hover > .image-area {
            opacity: 1;
        }

        main#wrap > .page > .group > section.large-poster > .image-area > img {
            margin-top: 0;
            margin-left: -752px;
            width: auto;
            /* height: auto */
            height: 1000px;
            transform:scale(1,1);
            transition: 8s all;
        }

        main#wrap > .page > .group > section.large-poster:hover > image-area > img {
            transform:scale(1.2,1.2)
        }

        main#wrap > .page > .group > section.large-poster > .poster-cover {
            position: relative;
            z-index: 2;
        }

            main#wrap > .page > .group > section.large-poster > .poster-cover > div {
                margin: 0 40px;
                text-align: center
            }

                main#wrap > .page > .group > section.large-poster > .poster-cover > div > h1 {
                    text-transform: uppercase;
                    color: #fff;
                    font-size: 25px;
                    font-size: 2.455rem;
                    line-height: 1.2;
                }
    <main id="wrap">
        <div class="page">
           <div class="group">
               <section class="col large-poster">
                        <div class="image-area">
                              <img class="img-cover" src="https://wallpapercave.com/wp/k15SYSI.jpg" alt="Maven" />
                        </div>
                        <div class="poster-cover">
                            <div>
                                <h1>
                                    First 
                                </h1>
                            </div>
                        </div>
               </section>
               <section class="col large-poster">
                        <div class="image-area">
                              <img class="img-cover" src="https://wallpapercave.com/wp/k15SYSI.jpg" alt="Maven" />
                        </div>
                        <div class="poster-cover">
                            <div>
                                <h1>
                                    Second Item 
                                </h1>
                            </div>
                        </div>
               </section>
               <section class="col large-poster">
                        <div class="image-area">
                              <img class="img-cover" src="https://wallpapercave.com/wp/k15SYSI.jpg" alt="Maven" />
                        </div>
                        <div class="poster-cover">
                            <div>
                                <h1>
                                    Third Item
                                </h1>
                            </div>
                        </div>
               </section>
               <section class="col large-poster">
                        <div class="image-area">
                              <img class="img-cover" src="https://wallpapercave.com/wp/k15SYSI.jpg" alt="Maven" />
                        </div>
                        <div class="poster-cover">
                            <div>
                                <h1>
                                    Last Item
                                </h1>
                            </div>
                        </div>
               </section>
           </div>
        </div>
    </main>

【问题讨论】:

  • 你只是忘记了“.”指向第二个 CSS 选择器“图像区域”。这里: main#wrap > .page > .group > section.large-poster:hover > image-area > img { transform:scale(1.2,1.2) } 这应该是 .image-area (image-area 是一个类名)
  • @MarouenMhiri 哦。我的 。上帝。我需要休息一下。谢谢你。附:你应该回答它!
  • np 我知道当你花很长时间寻找你忽略的东西时:-)

标签: css css-transitions transform


【解决方案1】:

你只是忘了点一个点

点赞.image-area,问题就解决了:

   main#wrap > .page > .group > section.large-poster:hover > .image-area > img {
      transform:scale(1.2,1.2)
   }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-15
    • 2016-11-06
    • 1970-01-01
    • 2016-04-27
    • 1970-01-01
    • 2021-10-08
    • 2023-04-01
    • 1970-01-01
    相关资源
    最近更新 更多