如何使动画<div>仅在另一个<div> </div> </div>中可见

时间:2013-12-07 03:56:40

标签: javascript jquery html css animation

首先感谢你在小组中接受我。 我需要有关jQuery动画的问题的帮助。 这是我在这个模板的导航菜单中的项目上找到的动画,模板怪物。

http://www.templatemonster.com/demo/40492.html

显然这些是在画布上移动并在某个时刻逐渐消失的两个图像。

研究jQuery的例子我看到使用动画属性top(css)获得了部分效果。但不幸的是,我动画的元素并没有像链接中显示的那样逐渐消失。

请帮助我理解如何使用jQuery实现相同的效果。

3 个答案:

答案 0 :(得分:0)

这是一个简单的例子:http://jsfiddle.net/qtdtL/。请注意,带有“top”动画的元素的位置为:fixed。

$("nav").click(function() {
    var el = $(this);
    var elTop = el.position().top == 0 ? "-70px" : "0";
    el.animate({top: elTop});
});

答案 1 :(得分:0)

基本上你添加

div
{
 transition: all 0.5s ease;
-webkit-transition: all 0.5s ease; /* Safari */
}

第一个属性告诉应该在更改时应该动画的更改类型,第二个属性告诉它应该花多长时间和第三个时间,如果需要,还有第四个用于延迟的

答案 2 :(得分:0)

您可以按照以下方式制作。

CSS

@font-face {
  font-family: 'Six Caps';
  font-style: normal;
  font-weight: 400;
  src: local('Six Caps'), local('SixCaps'), url(http://themes.googleusercontent.com/static/fonts/sixcaps/v5/tMrhQDUBAHnnGuM33-yobPesZW2xOQ-xsNqO47m55DA.woff) format('woff');
}
.clear{clear:both;}
.nav{}
.menubox{width:200px;float:left;margin:0px 10px;height:80px;overflow:hidden;position:relative;font-family: 'Six Caps', sans-serif;line-height: 80px;color: #161616;font-size: 80px;color:#000;display:block;cursor:pointer;}
.menubox > span{width:100%;height:80px;display:block;position:absolute;text-align:center;}
.menubox > span.default-txt{top:0px;left:0px;}
.menubox > span.hover-txt{top:80px;left:0px;color:red;}

HTML

<div class="nav">
    <a class="menubox">
        <span class="default-txt">menu</span>
        <span class="hover-txt">menu</span>
    </a>
    <a class="menubox">
        <span class="default-txt">menu</span>
        <span class="hover-txt">menu</span>
    </a>
    <a class="menubox">
        <span class="default-txt">menu</span>
        <span class="hover-txt">menu</span>
    </a>
    <a class="menubox">
        <span class="default-txt">menu</span>
        <span class="hover-txt">menu</span>
    </a>
    <div class="clear"></div>
</div>

的jQuery

$(document).ready(function(){
    $('.menubox').mouseenter(function(){            
        $(this).children('.default-txt').stop(true,true).animate({top:'-100px'});
        $(this).children('.hover-txt').stop(true,true).animate({top:'0px'});
    }).mouseleave(function(){
        $(this).children('.default-txt').stop(true,true).animate({top:'0px'});
        $(this).children('.hover-txt').stop(true,true).animate({top:'100px'});
    });
});

的jsfiddle

Working Demo