javascript - CSS 过渡不起作用

标签 javascript html css css-transitions

我的 sidebar.css :

body
{
  margin: 0;
  padding: 0;
}
#header
{
  background-color: #577481;
  float: left;
  height: 50px;
  width: 100%;
}
#sidebar
{
  background-color: #4ea9d1;
  float: left;
  height: 100%;
  left: -200px;
  position: absolute;
  top: 50px;
  width: 200px;
}
#wrapper
{
  float: left;
  height: 100%;
  width: 100%;
}
#content
{
  background-color: #d6b141;
  float: left;
  height: 500px;
  width: 100%;
}
#sideBarButton
{
  background-image: url('SideBarButton.png');
  background-position: center;
  background-repeat: no-repeat;
  background-size: 70% 70%;
  border-radius: 25px;
  height: 50px;
  margin-left: 30px;
  width: 50px;
}

我的 index.html:

<<!DOCTYPE html>
<html>

  <head>
    <link rel="stylesheet" type="text/css" href="sidebar.css">
    <script>
      function slideIn(element1, element2, element3) {
        var elem = document.getElementById(element1);
        var elem2 = document.getElementById(element2);
        var elem3 = document.getElementById(element3);
        elem.style.transition = "left 0.5s ease-in 0s";
        elem.style.left = "0px";
        elem2.style.transition = "marginLeft 0.5s ease-in 0s";
        elem2.style.marginLeft = "200px";
        elem2.style.opacity = 0.75;
        elem3.style.backgroundImage = 'url(SideBarButtonHover.png)';
        elem3.style.backgroundColor = '#3f545d';
      }

      function slideOut(element1, element2, element3) {
        var elem = document.getElementById(element1);
        var elem2 = document.getElementById(element2);
        var elem3 = document.getElementById(element3);
        elem.style.transition = "left 0.5s ease-out 0s";
        elem.style.left = "-200px";
        elem2.style.transition = "marginLeft 0.5s ease-out 0s";
        elem2.style.marginLeft = "0px";
        elem2.style.opacity = 1;
        elem3.style.backgroundImage = 'url(SideBarButton.png)';
        elem3.style.backgroundColor = '#577481';
      }
    </script>
  </head>

  <body>
    <div id="header">
      <div id="sideBarButton" onMouseOver="slideIn('sidebar', 'content', 'sideBarButton');" onMouseOut="slideOut('sidebar', 'content', 'sideBarButton');"></div>
    </div>
    <div id="wrapper">
      <div id="sidebar">
        <ul>
          <li><a href="#">Hallo</a>
          </li>
        </ul>
      </div>
      <div id="content">Ich bin der Content</div>
    </div>
  </body>

</html>

第一个元素(侧边栏)的过渡有效,但第二个元素(内容)无效。当您将鼠标悬停在侧边栏按钮上时,它应该像这样工作,侧边栏会出现,内容会同时向右移动。我的问题是为什么内容转换不起作用?感谢您的帮助!

第一个元素(侧边栏)的过渡有效,但第二个元素(内容)无效。 当您将鼠标悬停在侧边栏按钮上时,它应该像这样工作,侧边栏会出现,内容会同时向右移动。我的问题是为什么内容转换不起作用?

谢谢大家的帮助!

最佳答案

在 javascript 中设置样式值时,您的样式名称应该采用驼峰式命名,但如果设置一个包含 CSS 属性的值,则应使用 CSS 属性语法。正确的是:

elem2.style.transition = "margin-left 0.5s ease-in 0s";
elem2.style.marginLeft = "200px";

关于javascript - CSS 过渡不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19939005/

相关文章:

javascript - 如何通过 angularjs 方法访问视频流对象?

Javascript 事件和 css

html - 使用 Bootstrap 对齐元素的字段集未正确对齐

javascript - 如何通过java脚本单击该行的更新超链接来更新该行?

php - php 中的背景 css

html - 为什么我的带有淡入淡出效果的 Bootstrap 全屏背景轮播没有在移动设备中显示?

javascript - jQuery Datatables 请求行 '0' 列 '0' 的未知参数 '0'

javascript - 如何设置完整的div可点击?

javascript - 将索引传递给自定义 orderBy 函数

javascript - 将 string.prototype.replace 与正则表达式和函数一起使用