1

我试图阻止页面滚动到顶部。另外我希望用 e.preventDefault(); 或返回假;(因此其他身体标签解决方案不好)但是它似乎忽略了这些..

(.Slideshow fadeIn 和 fadeOut 工作正常。)

但是页面在(我认为)之后滚动到顶部:onAfter 函数如何防止这种情况?

评论返回 false 和 e.preventDefault 它似乎不起作用..

先感谢您。

       if ($('.slideshow').length) {
    $('.slideshow').cycle({
        fx: 'scrollHorz',
        speed: 'fast',
        timeout: 0,
        prev: '#prev',
        next: '#next',
        nowrap: 1,
        before: onBefore,
        after: onAfter,
        pager: '#slide-pager ul',
        pagerAnchorBuilder: function (idx, slide) {
            // return selector string for existing anchor 

            return '#slide-pager ul li:eq(' + idx + ') a';
        },
        onPrevNextEvent: function (dir, id, el) {
            if (dir === true) {
                //alert('slide right');
                if (id >= 3) {
                    //alert(i);
                    $('#slide-pager_next').click();
                }
            }
            else {
                //alert('slide left');
                if (id >= 1) {
                    //alert(i);
                    $('#slide-pager_prev').click();
                    return false;
                }
            }
        }
    });
};

function onBefore() {
    //e.preventDefault(); // same thing as above
    $(".chapter-content .slideshow").fadeOut("fast");
    // return false; // prevent default click action from happening!
}
function onAfter() {
    // return false; // prevent default click action from happening!
    //e.preventDefault(); // same thing as above
    $(".chapter-content .slideshow").fadeIn("100");
    // return false; // prevent default click action from happening!
}
4

1 回答 1

0

我看不到你的演示,我可能误解了,但试试这个:

function onBefore() {
  if ( !$('.slideshow').is(':animated') ) {
    $(".chapter-content .slideshow").fadeOut("fast");
  }
}
function onAfter() {
  if ( !$('.slideshow').is(':animated') ) {
    $(".chapter-content .slideshow").fadeIn("100");
  }
}
于 2012-07-05T07:34:37.127 回答