Javascript jcarousel,我需要:外部控件的活动状态
我正在运行一个Jcarousel,我想在当前分页选项中添加一个.active。我看过其他关于这件事的帖子Javascript jcarousel,我需要:外部控件的活动状态,javascript,jquery,html,ruby-on-rails,Javascript,Jquery,Html,Ruby On Rails,我正在运行一个Jcarousel,我想在当前分页选项中添加一个.active。我看过其他关于这件事的帖子 <script type="text/javascript"> /** * We use the initCallback callback * to assign functionality to the controls */ function mycarousel_initCallback(carousel) { jQuery('.jcarousel-cont
<script type="text/javascript">
/**
* We use the initCallback callback
* to assign functionality to the controls
*/
function mycarousel_initCallback(carousel) {
jQuery('.jcarousel-control a').bind('click', function() {
carousel.scroll(jQuery.jcarousel.intval(jQuery(this).text()));
return false;
});
}
jQuery('#mycarousel-next').bind('click', function() {
carousel.next();
return false;
});
jQuery('#mycarousel-prev').bind('click', function() {
carousel.prev();
return false;
});
};
// Ride the carousel...
jQuery(document).ready(function() {
jQuery("#mycarousel").jcarousel({
scroll: 1,
initCallback: mycarousel_initCallback,
// This tells jCarousel NOT to autobuild prev/next buttons
buttonNextHTML: null,
buttonPrevHTML: null
});
});
</script>
/**
*我们使用initCallback
*为控件指定功能的步骤
*/
函数mycarousel_initCallback(carousel){
jQuery('.jcarousel控件a').bind('click',function(){
滚动(jQuery.jcarousel.intval(jQuery(this.text()));
返回false;
});
}
jQuery(“#mycarousel next”).bind('click',function(){
carousel.next();
返回false;
});
jQuery('mycarouselprev').bind('click',function(){
上一个转盘();
返回false;
});
};
//乘坐旋转木马。。。
jQuery(文档).ready(函数(){
jQuery(“mycarousel”).jcarousel({
卷轴:1,
initCallback:mycarousel_initCallback,
//这告诉jCarousel不要自动生成上一个/下一个按钮
buttonNextHTML:null,
buttonPrevHTML:null
});
});
这就是初始化代码
分页就在里面:
<ul class="jcarousel-control">
<% (1..@project.size).each do |n| %>
<li><a href="#"><%= n %></a></li>
<% end %>
</ul>`
`
它是一个rails应用程序,因此rails根据组中的项目数创建列表
有什么想法吗?看起来应该很简单。。但是我一点也不懂js。好吧,所以我想我是自己弄明白的。首先,如果你只是提供
ul.jcarousel-control li a:focus {background-position:0 -11px}
这将当前控制项设置为“打开”
但是,在单击它之前,这是不起作用的 好吧,我想我自己解决了每一个问题。首先,如果你只是提供
ul.jcarousel-control li a:focus {background-position:0 -11px}
这将当前控制项设置为“打开”
但是,在单击它之前,这是不起作用的 我也需要这个,最后找到了一个解决方案,下面是我的代码:
jQuery("#mycarousel").jcarousel({
scroll: 1,
initCallback: mycarousel_initCallback,
// This tells jCarousel NOT to autobuild prev/next buttons
buttonNextHTML: null,
buttonPrevHTML: null,
itemVisibleInCallback: {
onAfterAnimation: function(c, o, i, s) {
--i;
jQuery('.jcarousel-control a').removeClass('active').addClass('inactive');
jQuery('.jcarousel-control a:eq('+i+')').removeClass('inactive').addClass('active');
}
}
});
我也需要这个,最终找到了一个解决方案,以下是我的代码:
jQuery("#mycarousel").jcarousel({
scroll: 1,
initCallback: mycarousel_initCallback,
// This tells jCarousel NOT to autobuild prev/next buttons
buttonNextHTML: null,
buttonPrevHTML: null,
itemVisibleInCallback: {
onAfterAnimation: function(c, o, i, s) {
--i;
jQuery('.jcarousel-control a').removeClass('active').addClass('inactive');
jQuery('.jcarousel-control a:eq('+i+')').removeClass('inactive').addClass('active');
}
}
});
使用
var size=c.options.size;i=((i-1)%size)+size)%size
而不是--i代码>。此代码固定负值的模数。使用var size=c.options.size;i=((i-1)%size)+size)%size
而不是--i代码>。此代码修复负值的模数。如果使用循环旋转,则需要使用i=(i-1)%$('#mycarousel li').size()
而不是--i代码>绝妙的解决方案!使用wrap:'last'
进行无更改的工作。如果使用的是循环旋转,则需要使用i=(i-1)%$('#mycarousel li').size()
而不是--i代码>绝妙的解决方案!使用wrap:'last'
进行无更改的工作。很棒的东西。我花了半天的时间来获取第二个递增索引,以突出显示正确的外部控制:)很棒的东西。我花了半天的时间来获取第二个递增索引,以突出显示正确的外部控件:)