我需要将固定位置应用于已应用转换的父级中子div的视口(viewport)。
不幸的是,我无法删除父项上的转换。

  • 任何想法如何覆盖此行为?
  • 我可以对子元素使用transform使其看起来类似于固定位置吗?


  • .rotate {
      transform: rotate(30deg);
      background: blue;
       width: 300px;
      height: 300px;
      margin: 0 auto;
    
    }
    .fixed {
      position: fixed;
      background: red;
    padding: 10px;
    color: white;
     top: 50px;
      }
      <html>
      <body>
    <div class="rotate">
    <div class="fixed"> I am fixed inside a rotated div.</div>
    </div>
      <div class="fixed"> I am fixed outside a rotated div.</div>
    </body>
    </html>

    最佳答案

    答案很简单,这是CSS无法实现的。请访问以下问题以获取详细信息

    Positions fixed doesn't work when using -webkit-transform

    'transform3d' not working with position: fixed children

    但是您可以使用js实现目标,这是一个基本示例。

    $(window).scroll(function() {
        $(".transform-fixed").css({
            "top": $(window).scrollTop()
        });
    })
    .rotate {
      transform: rotate(30deg);
      background: blue;
       width: 300px;
      height: 300px;
      margin: 0 auto;
    
    }
    .fixed {
      position: fixed;
      background: red;
      padding: 10px;
      color: white;
      top: 50px;
    }
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <html>
    
    <body>
      <div class="rotate">
        <div class="fixed transform-fixed"> I am fixed inside a rotated div.</div>
      </div>
      <div class="fixed"> I am fixed outside a rotated div.</div>
    </body>
    
    </html>

    关于javascript - 当父容器进行转换时,如何强制固定位置?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47326644/

    10-11 00:01