我不知道该怎么做。我对一个按钮有一个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');
}
});
但是它不起作用,我不知道如何解决它。如果你们能帮帮我的话会很棒的! :)
提前致谢
答案 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)