jquery - 使用没有插件的 css3 和 jquery 滑入和滑出

标签 jquery css css-animations

我正在使用 css3 动画将一个 div 向下滑动到一个包含几组 div 的列表。我正在尝试实现像本网站中的垂直新闻自动收报机一样的滑入和滑出效果

http://buildinternet.s3.amazonaws.com/projects/totem/index.html

CSS

.slidein { 
    animation: slide 1799ms linear; 
    top: 0px; 
    -webkit-animation: slide 1799ms linear;
}    
@keyframes slide {
    0% { top: -100px; }
    100% { top :0px; }
}
@-webkit-keyframes slide {
    0% { top: -100px; }
    100% { top: 0px; }
} 

我使用 jquery 为 slideIn 效果添加上面的类来添加一个 div

查询

 $(".parentDiv")
      .prepend('<div class="newdiv slidein"></div>')
      .children().slice(5);

使用 slice 将 paent div 中的所有其他 div 切掉。

对于向下滑动,我尝试使用 follwing div 使用顶部和底部值将其上下移动

$(".existingDivs").css( {"bottom": ""} );
$(".existingDivs").css({"bottom":"90px"});
$(".existingDivs").animate({   
   top: '+= 92'          
},2000);  

但它在 chrome 中不起作用,在 firefox 中部分起作用。有没有办法附加平滑的滑动效果,如垂直自动收报机。

最佳答案

此解决方案仅使用 jQuery 而不是 css3 动画。

HTML:

<div class="parent"></div>

CSS:

.parent
{
    height: 200px;
    overflow: hidden;
    width: 100px;
    text-align; center;
    position: relative;
}
.child
{
    width: 96px;
    height: 40px;
    margin: 1px;
    position:absolute;
}
div
{
    border: 1px solid black;    
}

JS:

var child = $("<div></div>").addClass("child");
child.css("top","-44px");
$(".child").animate({"top": "+=44"});
$(".parent").prepend(child);
child.animate({"top":"0px"});

top += 44 因为子 div 的宽度是 40px 和 +4 来弥补边距和边框。

查看代码:

http://jsfiddle.net/mSRg6/2/

关于jquery - 使用没有插件的 css3 和 jquery 滑入和滑出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17987887/

相关文章:

javascript - 如何使用 jquery(或 javascript)将关键帧设置为 50%?

CSS 媒体类型 : How to load CSS for mobile?

html - 如何使用 CSS 创建这种触摸友好的登录按钮?

JavaScript 鼠标悬停

css - 使闪烁的光标在 CSS 动画结束时消失

CSS背景图片动画变成空白

jquery - 如何逐渐更改滚动条上导航栏的颜色?

ajax - jQuery $.post 可以从回调中再次调用自身吗?

jquery - jScrollPane 调整大小

jQuery + Greasemonkey,点击事件未在正确的元素上触发?