对jquery来说很新 - 为什么这不起作用

时间:2011-10-03 00:17:28

标签: jquery html css jquery-animate

我只是想把.icon转移到右边。试图通过位置()的数量来动画.icon。左

我的代码无效,我不知道为什么。我打赌它非常简单!!

<script>
$("li.menu-item").hover(function(){
    var pos = $(this).position().left;
    $(".icon").animate({left : pos+'px'}, 1500 );

});
</script>




</head>
<body>


<div id="menu-wrapper">
<ul id="main-nav">
<li class="menu-item"><a href="">Blog</a></li>
<li class="menu-item"><a href="">Sponsored</a></li>
<li class="menu-item"><a href="">Facebook</a></li>
<li class="menu-item"><a href="">Twitter</a></li>
<li class="menu-item"><a href="">About</a></li>
<li class="menu-item"><a href="">Contact</a></li>
</ul>

<div class="icon">move please</div>

</div><!-- //END menu-wrapper -->
</body>

CSS

#menu-wrapper { position: fixed; bottom: 50px; margin: 0 auto; text-align:center;}

.icon {
    width: 9px;
    height: 9px;
    background: url(../images/plus-menu.png) no-repeat 0 0;
    position: absolute;
    left: -5px;
    bottom: -4px;
}

#main-nav { line-height: 1.0; float: left; margin-bottom: 1em; }

#main-nav{list-style: none;}

#main-nav li a {
    display: block;
    position: relative;
    text-decoration: none;
    margin-right: 20px;
    color: #b2b2b2;
    line-height: 19px;
    padding-bottom: 17px;
}

#main-nav li { float: left; position: relative; }

#main-nav li a:hover, #main-nav li a:active { color: #404040; }

任何帮助都会很棒

由于

2 个答案:

答案 0 :(得分:2)

将您的代码包裹在$(document).ready()

<script>
$(document).ready(function()
{
    $("li.menu-item").hover(function(){
        var pos = $(this).position().left;
        $(".icon").animate({left : pos+'px'}, 1500 );

    });
});
</script>

查看此beginner tutorial以获取更多信息

答案 1 :(得分:1)

坎。通过最少的修改(stop()在每个新的悬停事件上ping动画,所以东西不会被链接),它似乎可以在this fiddle中使用。