由于需要考虑的CSS边距的变化,我在使用这段代码时遇到了麻烦。我想通过在var $offset
函数中的if / else添加serialScroll
来更改$margins
插件中的.keybind
。我是javascript的新手,我不确定如何正确地做到这一点。
这是我的代码:
jQuery(function( $ )
{
var $nav = $('#slideshow li');
var $margins = 0;
var $offset = (-220 + $margins); //this offsets the elements
$('#maincontent').serialScroll( //serialscroll
{
items:'li',
prev:'.leftArrow, div.logo#logo',
next:'.rightArrow',
offset:$offset,
start:0,
duration:500,
force:false,
stop:true,
easing:'swing',
navigation:$nav,
onBefore:function(e,el,$p,$i,pos)
{
$nav.removeAttr('id'), //this removes id from old element
$nav.eq(pos).attr("id","yourit"),//this adds id to new element
$nav.removeClass('select'), //this removes class from old element
$nav.eq(pos).addClass('select'); //this adds class to new element
},
/*///////////////////////////////////////////////////////
keyboard binds
*////////////////////////////////////////////////////////
var $pane = $('#maincontent')
$(document).keydown(function(e) //keyboard bind
{
if( e.keyCode == 39 ) //right (->)
{
if
($('.selectstyle').hasClass("selectstyle"))
{
$margins = -180; //i want to get this value and add it to my $offset var
$(".selectstyle" ).removeClass( "selectstyle", 200);
$pane.trigger('next');
return false;
}
else
($(".select" ).hasClass("select"))
{
$margins = 0; //ditto with this var if true
$(".select" ).removeClass( "select", 200);
$pane.trigger('next');
return false;
}
}
});
答案 0 :(得分:0)
您在函数中声明了$margins
,因此您将其设为局部变量。如果您希望其他函数使用它,您需要在函数外部声明它并使其成为全局函数。
尝试在顶部声明var $margins = 0;
的位置旁边声明$offset
。
然后从if-else语句中删除var
旁边的单词$margins
。
希望它会有所帮助。