html - 在没有水平滚动条出现的情况下在窗口边缘稍微旋转一个div

标签 html css animation rotation display

在页面顶部,我创建了四个在悬停时轻微旋转(旋转 5 度)的框/图 block 。这些盒子通过 flexbox 定位和调整大小。跨越窗口的整个宽度。将鼠标悬停在最右侧的框上时,其右下角会移出右侧窗口,从而出现水平滚动条。

我想避免出现滚动条。我尝试通过设置 display: none 来这样做对于 <div>包含盒子,但这通常会干扰显示盒子的旋转,因为它在旋转时会在 div 的边界处将它们切断。我想保持框旋转的效果完全可见,同时避免水平滚动条。

这是我的 htmlcss以及 jsfiddle页面的(请注意,水平滚动条并不总是出现在 jsfiddle 中,具体取决于运行代码的窗口的大小):

.banner {
  margin: 0px;

  font-size: 10vw;
  line-height: 1.2;
  
  overflow-x: hidden;
}

.flex {
  display: flex;
}

.row {
  flex-direction: row;
  justify-content: space-between;
}

.box {
  flex: 1;
  text-align: center;
  border: 1px solid black;
  background-color: white;
  box-sizing: border-box;
  cursor: default;
}

.rotate-right {
  transition: all 400ms ease;
}

.rotate-left {
  transition: all 400ms ease;
}

.rotate-right:hover {
  transform: rotate(5deg);
}

.rotate-left:hover {
  transform: rotate(-5deg);
}
<div class="top" id="top">
  <div>
    <div class="flex row banner">
      <div class="box rotate-right">
        <p>
          1
        </p>
      </div>

      <div class="box rotate-left">
        <p>
          2
        </p>
      </div>

      <div class="box rotate-right">
        <p>
          3
        </p>
      </div>

      <div class="box rotate-left">
        <p>
          4
        </p>
      </div>
    </div>

  </div>
</div>

最佳答案

为你的body 添加overflow-x: hidden。演示:

body {
  overflow-x: hidden;
}

* {
  font-size: 6vw;
}

.flex {
  display: flex;
}

.row {
  flex-direction: row;
  justify-content: space-between;
}

.box {
  flex: 1;
  text-align: center;
  border: 1px solid black;
  background-color: white;
  box-sizing: border-box;
  cursor: default;
}

.rotate-right {
  transition: all 400ms ease;
}

.rotate-left {
  transition: all 400ms ease;
}

.rotate-right:hover {
  transform: rotate(5deg);
}

.rotate-left:hover {
  transform: rotate(-5deg);
}
<div class="top" id="top">
  <div>
    <div class="flex row banner">
      <div class="box rotate-right">
        <p>
          1
        </p>
      </div>

      <div class="box rotate-left">
        <p>
          2
        </p>
      </div>

      <div class="box rotate-right">
        <p>
          3
        </p>
      </div>

      <div class="box rotate-left">
        <p>
          4
        </p>
      </div>
    </div>

  </div>
</div>

关于html - 在没有水平滚动条出现的情况下在窗口边缘稍微旋转一个div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45263019/

相关文章:

javascript - 禁用调整固定 flex 的大小

java - JAVA动态改变标签框中字符的颜色

php - 从输入标记的 "value"属性将数组传递到服务器

javascript - 根据频率分布词 CSS HTML

javascript - jQuery crSpline : weird animation

javascript - 网站速度测试在 "Page Speed Insight"中达到 0/100

javascript - 如何在点击该 li 标签内的 anchor 标签时激活特定的 Li 标签?

javascript - 在CSS中并排对齐元素

android - 如何以类似流体的方式为 VectorDrawable 设置动画?

javascript - 如何对 SVG 矩形进行动画处理以从下到上填充?