【问题标题】:Animate an element to the size of screen in fixed position将元素动画到固定位置的屏幕大小
【发布时间】:2016-10-07 19:22:59
【问题描述】:

如何为<div> 设置动画以在单击时展开以适应屏幕。一直保持在固定位置,然后露出那个<div>的内容

图片:

【问题讨论】:

    标签: javascript jquery html css jquery-animate


    【解决方案1】:
    1. 为您的元素设置 CSS3 transition
    2. 创建一个,使您的元素100vw100vh(视口宽度高度单位)
    3. 添加该类点击

    $("#box").on("click", function() {
      $(this).toggleClass("fullScreen");
    });
    html, body{height:100%;margin:0;}
    
    /* YOUR BOX */
    #box{
      position: fixed;
      overflow: hidden; /* in order to contain content */
      
      /* The initial styles: */
      border-radius: 25px;
      background: red;
      left:50px; bottom:50px;
      width: 50px;
      height: 50px;
      
    
      /* TRANSITION TO THE RESCUE */
              transition: 0.7s;
      -webkit-transition: 0.7s;
    }
    
    /* ADD THIS CLASS WITH JS */
    #box.fullScreen{
      /* Your override styles: */
      border-radius: 0;
      background: gold;
      left:0; bottom:0;
      width: 100vw;
      height:100vh;
    }
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <div id="box">CLICK</div>

    【讨论】:

      【解决方案2】:

      您可以使用transform: scale( ) 按比例缩小和放大全屏框。缩放也会影响盒子的内容。小版本的盒子与全屏盒子的纵横比相同。

      示例

      $("#box").on("click", function() {
        $(this).toggleClass("fullScreen");
      });
      html, body{height:100%;margin:0;}
      
      /* YOUR BOX */
      #box{
        position: fixed;
        cursor: pointer;
        background-color: red;
        
        /* make the box full screen */
        width: 100vw; /* IE9+ */
        height:100vh; /* IE9+ */
        top: 0;
        left: 0;
      
        /* scale it down to 0.1 (10%) initially,
           make an offset from bottom left */
        -ms-transform: translate(50px, -50px) scale(0.1); /* IE9 */
        -ms-transform-origin: left bottom; /* IE9 */
        transform: translate(50px, -50px) scale(0.1);
        transform-origin: left bottom;
      
        /* smooth transition (IE10+) */
        -webkit-transition: all 0.7s ease;
                transition: all 0.7s ease;
      }
      
      /* ADD THIS CLASS WITH JS */
      #box.fullScreen {
        /* Your override style:
           remove offset, scale it to 1 (100%) */
        -ms-transform: translate(0px, 0px) scale(1); /* IE9 */
        transform: translate(0px, 0px) scale(1);
      }
      <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
      <div>click the box</div>
      <div id="box">your content</div>

      【讨论】:

      • 虽然这是一个很好的答案,但问题是您无法为 #box 指定特定的宽度和高度,并且它的大小会因屏幕大小而异
      猜你喜欢
      • 2011-11-26
      • 2019-09-04
      • 1970-01-01
      • 1970-01-01
      • 2014-10-08
      • 1970-01-01
      • 2022-01-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多