CSS动画宽度从右到左,高度从下到上

时间:2016-12-22 11:39:43

标签: javascript jquery css css3

我正在尝试解决从右到左扩展div的宽度和从下到上的不同容器的高度的问题。我正在尝试创建将在正方形中旋转的CSS动画,并且模仿此处的边框是指向我的CodePen https://codepen.io/Archezi/pen/xReqvq?editors=0100的链接,如果有帮助的话。

这是我的HTML .container是一个主要包装.circle是一个动画line1-line4是我试图制作动画的正方形边框。

<div class="container">
    <div class="circle "></div>
    <div class="line1  "></div>
    <div class="line2  "></div>
    <div class="line3  "></div>
    <div class="line4  "></div>
</div>

这是我的CSS

body {
    margin: 0 auto;
}
.container {
    position:relative;
    margin: 50px auto;
    width: 800px;
    height:800px;
    border:1px solid #000;
}
.circle {
    display:inline-block;
    width: 25px;
    height: 25px;
    border-radius:50%;
    position: absolute;
    top:100px;
    left:100px;
    background:#000;
    animation: myframes 4s ease-in-out 0s infinite;

    /* animation-name: myanimation;
    animation-duration:5s;
    animation-timing-function:ease-in-out;
    animation-delay: 0s;
    animaiton-iteration-count: infinite;
    animation-direction: normal;
    animation-fill-mode: forwards;
    animation-play-state: running; */
}
.line1 {
    height:15px;
    width:15px;
    position:absolute;
    top:105px;
    left:105px;
    background:red;
    animation: squerframe 2s ease-in-out 0s infinite;
}
.line2 {
    height:15px;
    width:15px;
    position:absolute;
    top:105px;
    left:205px;
    background:green;
    animation: squerframe2 2s ease-in-out 1s infinite;
}
.line3 {
    height:15px;
    width:15px;
    position:absolute;
    top:205px;
    left:205px;
    background-color:red;
    animation: squerframe3 2s ease-in-out 2s infinite;
}

.line4 {
    height:15px;
    width:15px;
    position:absolute;
    top:205px;
    left:105px;
    background:green;
    animation: squerframe4 2s ease-in-out 3s infinite;
}
@Keyframes squerframe 
{
    0%  {  width:15px; opacity: 1; }
    50% {  width:115px; }
    100%{  width:115px; opacity: 0; }
}
@Keyframes squerframe2 
{
    0%  { height:15px;  opacity: 1; }
    50% { height:115px;             }
    100%{ height:115px;  opacity: 0;  }
}
@Keyframes squerframe3 
{
    0%  { width:115px; opacity: 0;}
    50% { width:115px; }
    100%{ width:15px; opacity: 1; }
}
@Keyframes squerframe3 
{
    0%  { width:15px; opacity: 1;}
    50% { width:115px;  }
    100%{ width:115px; opacity: 0; }
}
@Keyframes squerframe4 
{
    0%  {  height:15px; opacity: 1;}
    50% {  height:115px;  }
    100%{  height:115px; opacity: 0; }
}

@keyframes myframes 
{
    0%   { top:100px; left:100px; }
    25%  { top:100px; left:200px; }
    50%  { top:200px; left:200px; }  
    75%  { top:200px; left:100px; }
    100% { top:100px; left:100px; }
}

请指导我在哪里找到解决方案或指出我对此问题的不同方法。谢谢!

2 个答案:

答案 0 :(得分:2)

这里的问题是你需要让line3具有绝对权利,这样当宽度改变时,它会向左伸展。

另外,第4行应该有一个绝对的底部,所以它会伸展。

我建议您添加一个容器或更改当前div.container的尺寸(就像我在示例中所做的那样)为四行,并使用4行作为该容器的极值。

以下是您修改的示例,作为如何继续的参考点:

https://codepen.io/anon/pen/MbRvGM?editors=0100

tableA.getColumns().add(NumberTableCellFactory.createNumberColumn("#", 1));
tableB.getColumns().add(NumberTableCellFactory.createNumberColumn("#", 1));

答案 1 :(得分:0)

添加其他样式

animation: squerframe4 2s ease-in-out 3s infinite;
-webkit-animation: squerframe4 2s ease-in-out 3s infinite;
-moz-animation: squerframe4 2s ease-in-out 3s infinite;

和关键帧

@Keyframes squerframe...
@-webkit-Keyframes squerframe...
@-moz-Keyframes squerframe...