影响页面宽度的CSS动画

时间:2017-02-23 15:46:21

标签: html css css-animations

我使用CSS动画变换在我的页面上旋转图像。问题是,当我减小页面宽度时,我得到一个不断变化大小的水平滚动条。如何保持旋转图像,但是当它开始在页面宽度之外扩展时,父容器会从侧面切掉?

我已尝试将图像更改为光线 div中的背景图像,但之后我完全失去了效果。

请参阅以下缩小的示例。



#rays-container {
  width: 100%;
  max-width: 490px;
  position: absolute;
  left: 0;
  right: 0;
  margin: auto;
  z-index: 0;
}
#rays {
  width: 100%;
  height: 100%;
}
@-webkit-keyframes rays {
    from {
        -webkit-transform: rotate(0deg);
    }
    to {
        -webkit-transform: rotate(360deg);
    }
}

@-ms-keyframes rays {
    from {
        -ms-transform: rotate(0deg);
    }
    to {
        -ms-transform: rotate(360deg);
    }
}
.spin {
    -webkit-transform-origin: center center;
    -webkit-animation: rays 60s infinite linear;
    -ms-animation: rays 60s infinite linear;
    -ms-transform-origin: center center;
}

<div id="rays-container" class="spin">
  <div id="rays">
    <img src="https://s-media-cache-ak0.pinimg.com/736x/af/97/ee/af97eef70a8bce541b19c6a41178a015.jpg" style="width: 100%; height: 100%;">
  </div>
</div>
&#13;
&#13;
&#13;

CodePen

2 个答案:

答案 0 :(得分:3)

你看到的滚动条是因为它里面的内容大于它的宽度(这是显而易见的部分)。话虽这么说,修复它的一种方法是使用overflow-x: hidden;class="spin"添加到元素父级的CSS中,在这种情况下为<body>

body {
    overflow-x: hidden;
}

溢出是CSS属性,它定义了内容不适合时会发生什么。值hidden告诉它只是剪辑内容,而不是显示任何滚动条。

有关详细信息,请参阅MDN page on CSS overflow

答案 1 :(得分:1)

尝试将padding添加到#rays类,就像这样。

#rays {
    padding: 100px;
    /* as suggested by Matheus Avellar */
    overflow: hidden;
    /* width: 100%; */
    /* height: 100%; */
}

Code Pen