jquery 帮助 css() 和 animate()
我有这个导航系统,
<nav id="mainnav">
<ul>
<li<?php if ( $this->uri->segment(1) == '' ): ?> class="active" <?php endif; ?>><a href="">Jobwall</a></li>
<li<?php if ( $this->uri->segment(1) == 'jobfeed' ): ?> class="active" <?php endif; ?>><a href="">Live Job Feed</a></li>
<li<?php if ( $this->uri->segment(1) == 'tutorials' ): ?> class="active" <?php endif; ?>><a href="">Tutorials</a></li>
<li<?php if ( $this->uri->segment(1) == 'services' ): ?> class="active" <?php endif; ?>><a href="">Employer Services</a></li>
</ul>
<section id="progress"></section>
</nav>
基于 uri,li 获得一个活动类,并根据该活动,背景图像移动以显示哪个页面处于活动状态,但这仅在我使用 CSS 函数 jquery 链接时才有效,所以,
if($("#mainnav li:eq(0)").hasClass('active'))
{
$("#progress").css({backgroundPosition: '-883px 0px'})
}
if($("#mainnav li:eq(1)").hasClass('active'))
{
alert("hello");
$("#progress").css({backgroundPosition: '-783px 0px'})
}
if($("#mainnav li:eq(2)").hasClass('active'))
{
$("#progress").css({backgroundPosition: '-702px 0px'})
}
if($("#mainnav li:eq(3)").hasClass('active'))
{
$("#progress").css({backgroundPosition: '-567px 0px'})
}
如果我使用,
if($("#mainnav li:eq(0)").hasClass('active'))
{
$("#progress").animate({backgroundPosition: '-883px 0px'})
}
if($("#mainnav li:eq(1)").hasClass('active'))
{
alert("hello");
$("#progress").animate({backgroundPosition: '-783px 0px'})
}
if($("#mainnav li:eq(2)").hasClass('active'))
{
$("#progress").animate({backgroundPosition: '-702px 0px'})
}
if($("#mainnav li:eq(3)").hasClass('active'))
{
$("#progress").animate({backgroundPosition: '-567px 0px'})
}
然后什么也没有发生,我的 background-position
是 0px 0px
为什么?
I have this nav system,
<nav id="mainnav">
<ul>
<li<?php if ( $this->uri->segment(1) == '' ): ?> class="active" <?php endif; ?>><a href="">Jobwall</a></li>
<li<?php if ( $this->uri->segment(1) == 'jobfeed' ): ?> class="active" <?php endif; ?>><a href="">Live Job Feed</a></li>
<li<?php if ( $this->uri->segment(1) == 'tutorials' ): ?> class="active" <?php endif; ?>><a href="">Tutorials</a></li>
<li<?php if ( $this->uri->segment(1) == 'services' ): ?> class="active" <?php endif; ?>><a href="">Employer Services</a></li>
</ul>
<section id="progress"></section>
</nav>
based on the uri the li gets an active class, and based on that active a background image moves to show which page is active, however this only works when I use the CSS function jquery link so,
if($("#mainnav li:eq(0)").hasClass('active'))
{
$("#progress").css({backgroundPosition: '-883px 0px'})
}
if($("#mainnav li:eq(1)").hasClass('active'))
{
alert("hello");
$("#progress").css({backgroundPosition: '-783px 0px'})
}
if($("#mainnav li:eq(2)").hasClass('active'))
{
$("#progress").css({backgroundPosition: '-702px 0px'})
}
if($("#mainnav li:eq(3)").hasClass('active'))
{
$("#progress").css({backgroundPosition: '-567px 0px'})
}
If I use,
if($("#mainnav li:eq(0)").hasClass('active'))
{
$("#progress").animate({backgroundPosition: '-883px 0px'})
}
if($("#mainnav li:eq(1)").hasClass('active'))
{
alert("hello");
$("#progress").animate({backgroundPosition: '-783px 0px'})
}
if($("#mainnav li:eq(2)").hasClass('active'))
{
$("#progress").animate({backgroundPosition: '-702px 0px'})
}
if($("#mainnav li:eq(3)").hasClass('active'))
{
$("#progress").animate({backgroundPosition: '-567px 0px'})
}
then nothing happens and my background-position
is 0px 0px
why?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
背景位置没有内置到 jQuery 的核心动画功能中。您可以使用背景位置插件添加它:
http://plugins.jquery.com/project/backgroundPosition -效果
background-position isn't built into jQuery's core animate functionality. You can add it with background-position plugin:
http://plugins.jquery.com/project/backgroundPosition-Effect
对于每一行,将
backgroundPosition
更改为'background-position'
,例如:For each of these lines change
backgroundPosition
to'background-position'
, for example: