动画居中的内联块元素

洪扎·斯特劳哈尔(Honza Strouhal)

有什么方法可以使用纯CSS为居中的嵌入式块元素设置动画?我想做的是在添加(或删除)列表项时<li>元素内部的动画设置动画<ul>看看我的jsfiddle,添加新项目时,其他先前项目略微向左跳以保持居中对齐。我想做的是为该跳跃设置动画以使其平滑。

div.wrap {
  width: 330px;
  text-align: center;
}

ul#list {
  margin: 0;
}

ul#list > li {
  display: inline-block;
  width: 50px;
  height: 50px;
  border: 3px solid blue;
  list-style-type: none;
}

提前致谢 :)

塔希尔·艾哈迈德(Tahir Ahmed)

我认为newItem本身可以是动画(或oldItem可以是动画使用CSS)的动画属性使用JavaScript的一点点的帮助下(是的,你仍然需要它)。

但是,根据上述任何一种情况,对其他项的重新调整进行动画处理都会有些复杂。

无论如何,看看这个小提琴作为示范。

片段:

function addItem(list, newItem) {
    newItem.insertAdjacentHTML('beforeEnd', 'X');
    list.appendChild(newItem);
    newItem.classList.add('animatein');
}

function removeItem(list){
    var oldItem = null;
    if (list.childNodes.length > 0){
        oldItem = list.childNodes[list.childNodes.length - 1];
        oldItem.classList.remove('animatein');
        oldItem.classList.add('animateout');
        oldItem.addEventListener('animationend', function(){
            list.removeChild(oldItem);
        });
    }
}

var list = document.getElementById('list');
var newItem = document.createElement('li');

var button = document.getElementById('add');
var removeButton = document.getElementById('remove');
button.addEventListener('click', function () {
    addItem(list, newItem.cloneNode());
});
removeButton.addEventListener('click', function(){
    removeItem(list);
});
div.wrap {
    width: 330px;
    text-align: center;
}
ul#list {
    margin: 0;
}
ul#list > li {
    position: relative;
    display: inline-block;
    width: 50px;
    height: 50px;
    border: 3px solid blue;
    list-style-type: none;
}

.animatein { animation: .4s fadein; }
.animateout { animation: .4s fadeout; }

@keyframes fadein {
    from { opacity: 0; left: 100px; }
    to { opacity: 1; left: 0px; }
}

@keyframes fadeout {
    from { opacity: 1; left: 0px; }
    to { opacity: 0; left: 100px; }
}
<div class="wrap">
    <ul id="list"></ul>
</div>
<button id="add">Add</button>
<button id="remove">Remove</button>

这是您要找的东西吗?希望这会有所帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

完美居中锂内联块元素?

来自分类Dev

使文本居中并缩小元素以适合内联块显示的元素

来自分类Dev

居中的内联块

来自分类Dev

居中的内联块

来自分类Dev

如何将可变宽度的内联块元素居中?

来自分类Dev

将两个内联块元素垂直居中

来自分类Dev

将内联块的div居中

来自分类Dev

内联块垂直居中问题

来自分类Dev

内联块垂直居中问题

来自分类Dev

css 内联块居中内容

来自分类Dev

垂直居中-如何将内联元素垂直保持在块级元素的中间

来自分类Dev

使内联块元素响应

来自分类Dev

CSS:Google Chrome在居中的UL元素上使用内联块来做奇怪的事情

来自分类Dev

内联块列中的垂直居中图像

来自分类Dev

为什么此内联块未居中?

来自分类Dev

使内联块图像和文本居中

来自分类Dev

内联块元素的水平滚动

来自分类Dev

内联块元素高度问题

来自分类Dev

内联显示块级元素

来自分类Dev

内联块元素之间的空白

来自分类Dev

内联块元素忽略填充

来自分类Dev

内联块元素的匿名文本块宽度

来自分类Dev

内联块元素的匿名文本块宽度

来自分类Dev

完美居中inline块元素?

来自分类Dev

水平居中对齐块元素

来自分类Dev

动画元素位置中间居中

来自分类Dev

动画中的居中元素

来自分类Dev

显示:非导航元素的内联与内联块与块

来自分类Dev

垂直居中位置绝对元素内联