jQuery用滚动

时间:2016-06-15 15:31:56

标签: jquery

我不知道该怎么做。我对一个按钮有一个scrollTo效果。但是我只想在用户位于页面顶部时触发它。当他离开"身高"时,我想转过身来。如果他重新回到"身高"我想把它重新打开。

我试过这个jQuery

$(document).ready(function(){

    $('.navbar-toggle').click(function(){
         $("html, body").animate({ scrollTop: 220 }, "slow");
    });

});

var height = $(window).height();

$(window).scroll(function() {
    if ($(document).scrollTop() > height) {
        $('navbar-toggle').off('click');
    } else {
        $('navbar-toggle').on('click');

    }
});

但是它不起作用,我不知道如何解决它。如果你们能帮帮我的话会很棒的! :)

提前致谢

1 个答案:

答案 0 :(得分:1)

您的代码中有很少的错误.. 首先,你不应该做

function userMediaSuccessHandler(e) {
    $scope.localStreamEvent = e;

    webRTCClient.addStreamInDiv($scope.localStreamEvent.detail.stream, $scope.localStreamEvent.detail.callType,
          "mini", 'miniElt-' + $scope.localStreamEvent.detail.callId,
          {width : "128px", height : "96px"}, true);

}

function remoteStreamAddedHandler(e) {
  $scope.remoteStreamEvent = e;
}

缺少处理程序,这意味着该元素的所有点击事件将被解除。

另外,选择器中缺少点,它应该是$ $('navbar-toggle').off('click');

所以,我建议将你的函数保存到变量中,如下所示:

('.navbar-toggle')

然后你可以很容易地做到:

var myHandler = function(){
    $("html, body").animate({ scrollTop: 220 }, "slow");
};
  

但我只想在用户位于页面顶部时触发它

为此,您无需计算身高,只需检查$('.navbar-toggle').on('click', myHandler); $('.navbar-toggle').off('click', myHandler);

即可

最终代码应该是这样的:

if ($(document).scrollTop() > 0)

查看DEMO HERE