【问题标题】:Is there any way to make div fly in/out with pure CSS有没有办法让 div 用纯 CSS 飞入/飞出
【发布时间】:2021-03-14 04:13:46
【问题描述】:

我正在尝试使用 CSS 动画让 div 在单击按钮时飞入/飞出页面。我知道如何使用 CSS 制作动画,但我的问题是:如果我尝试将 div 的位置设置为 -1000%,则会出现水平滚动条。我不希望它出现,但我也不想禁用滚动条。

【问题讨论】:

  • 没那么简单。请给我们一些示例html结构。什么应该触发“飞出”?

标签: html css animation css-animations


【解决方案1】:

使用关键帧。例如:

.fly{
    animation: superman-fly-right ease-in-out 0.5s forwards;
}

@keyframes superman-fly-right {
        from {
            transform: translateX(0);
        }
        to {
            transform: translateX(100vw);
        }
    }

【讨论】:

    【解决方案2】:

    使用CSS中元素的位置,可以使用animation@keyframes规则。根据您希望如何控制元素在父元素中的定位,将您的元素设置为 relativeabsolute,并使用 lefttop css动画规则。 @0%left 位置设置为离开页面并将其置于 100% => 0

    body {
      overflow-x:hidden;
    }
    
    #main {
      display: flex;
      justify-content: center;
      align-items: center;
      width: 100vw;
      height: 100vh;
      position: relative;
    }
    
    #header {
      position: absolute; 
      left: 37%;
      z-index: 10;
      font-size: 3rem;
      animation: slideup 1.2s ease-in-out;
      text-shadow: 1px 1px white;
      font-family: sans-serif;
    }
    
    #image {
      position: absolute;
      left: 0px;
      top: 0px;
      animation: slidein 1s ease-in-out;
      z-index: 1;
    }
    
    @keyframes slidein {
      0% {
        top: -1900px;
      }
      100% {
        top: 0px;
      }
    }
    <div id="main">
      <img id='image' src="https://assets3.thrillist.com/v1/image/1679696/size/tmg-facebook_social.jpg">
      <h2 id="header">My Vacation</h2>
    </div>

    【讨论】:

    • 嗯,它有一个一直向右和向左延伸的滚动条……我不想要滚动条……(我有一个全屏无滚动背景图像)。
    • @ublec 您可以将overflow: hidden; 添加到您的正文中,它将消除滚动问题。
    • 是的,我做到了。但是如果我想让我的网站有滚动条呢?
    • 我的建议是使用侧滑并使用 overflow-x:hidden; 这样您仍然可以使用 y 滚动
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-01
    • 1970-01-01
    • 2021-10-03
    • 2020-08-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多