【发布时间】:2018-08-04 23:22:23
【问题描述】:
我需要从我点击从左到右移动的页面的位置创建 Div。有没有办法不断改变我可以开始动画的位置?而不是有一个固定的左边和一个固定的右边?我在 CSS 中使用关键帧。
【问题讨论】:
标签: javascript css animation onclick
我需要从我点击从左到右移动的页面的位置创建 Div。有没有办法不断改变我可以开始动画的位置?而不是有一个固定的左边和一个固定的右边?我在 CSS 中使用关键帧。
【问题讨论】:
标签: javascript css animation onclick
请试试这个:
HTML
<div class="container">
<div class="startleft">
<div class="box">
</div>
<div class="box">
</div>
</div>
</div>
CSS
.container {
width:100%;
height:100vh;
}
.box {
margin: 5px;
width:30px;
height:30px;
background-color:blue;
}
JS
var container = document.getElementsByClassName("container")[0];
container.onclick = function(e) {
console.log("startleft");
var offset = e.offsetX;
var startleft = document.getElementsByClassName("startleft")[0];
startleft.setAttribute("style", "padding-left:"+ offset + "px");
};
codepen:https://codepen.io/YasirKamdar/pen/aqaMpj
这将设置偏移量开始,您可以使用收到的偏移量值任意使用动画
【讨论】:
html代码
<div class="move-me move-me-1">steps(4, end)</div>
<br>
<div class="move-me move-me-2">steps(4, start)</div>
<br>
<div class="move-me move-me-3">no steps</div>
scss 代码:
.move-me {
display: inline-block;
padding: 20px;
color: white;
position: relative;
margin: 0 0 10px 0;
}
.move-me-1 {
animation: move-in-steps 8s steps(4) infinite;
}
.move-me-2 {
animation: move-in-steps 8s steps(4, start) infinite;
}
.move-me-3 {
animation: move-in-steps 8s infinite;
}
body {
padding: 20px;
}
@keyframes move-in-steps {
0% {
left: 0;
background: blue;
}
100% {
left: 100%;
background: red;
}
}
这个链接帮助This link try it
谢谢
【讨论】: