过去每次使用 jScrollPane 时,我都会以某种方式与它作斗争,但最终总是设法让它发挥作用。然而,这一次我完全被难住了,希望有人能启发我。
我的页面上有一些动画项目,在执行将外部数据加载到 div (#content) 之后。我相信我已经初始化,然后在动画完成后正确地重新初始化,但我什么也没得到。除了 jScrollPane 之外,其他一切都正确触发。这是CSS:
#content { margin-top: 30px; position: absolute; left: 120px; right: 20px; max-width: 900px !important; height:300px; overflow: auto; z-index: 99; }
这是js:
g_index = -1;
$(function() {
//jscrollpane settings
var settings =
{
// showArrows: true
};
var pane = $('#content')
pane.jScrollPane(settings);
var api = pane.data('jsp');
$('#nav > .circle').mouseenter(
function () {
var index = $(".circle").index(this);
var $this = $(this);
if(index != g_index) {
g_index = index;
$('.circle a').removeClass('engtext');
$('#content, #bgimage').fadeOut(250, function() {
$('#bgimage').removeClass('bgl bgr');
});
$('.animate').stop().animate({
'width' :'100px',
'height' :'100px',
'top' :'0px',
'left' :'0px',
'opacity' :'1.0'
},1000,'easeOutQuad',function(){
//animation complete
});
$this.find('a').addClass('engtext');
$this.find('.animate').stop().animate({
'width' :'1100px',
'height' :'1100px',
'top' :'-300px',
'left' :'-300px',
'opacity' :'0.7'
},500,'easeOutQuad',function(){
//animation complete
var target = $this.find('a').attr('href');
target = target.replace('#','');
$('#content').css('left', (index * 120) + 120 );
$('#content').load(target + '.html', function() {
// when target page has loaded do the below
$(this).fadeIn(250);
api.reinitialise();
if(g_index < 2) {
$('#bgimage').addClass('bgr');
$('#bgimage').attr('src','img/footer_' + target + '.png');
}
else {
$('#bgimage').addClass('bgl');
$('#bgimage').attr('src','img/footer_' + target + '.png');
}
$('#bgimage').fadeIn(250);
});
//all animation complete
$('.animate').filter(':animated').promise().done(function() {
$('.circle').removeClass('z1');
$this.addClass('z1');
});
});
}
});
});