只有当我向下滚动时才会淡出

只有当我向下滚动时才会淡出

问题描述:

如果scrolltop> 750并且当它为< 750时我正在使用此代码片段使淡出元素淡出。它工作正常,但我希望当它仍然不可见时滚动备份(淡出后),直到用户到达页面顶部。只有当我向下滚动时才会淡出

所以,这是什么目前发生的事情: 元素默认为可见,用户滚动750和它淡出。用户到达页面的结束,滚动备份和达到750当元素淡出早在

var $window = $(window); 
var $freccia = $('#freccia1'); 

function showHideFreccia() { 
    var availableScroll = $(document).height() - $window.height(), 
     scrollTop = $window.scrollTop(); 

    if(scrollTop < 750 || scrollTop == availableScroll) { 
     $freccia.fadeIn("slow", function() { 
     }); 
    } else { 
     $freccia.fadeOut("slow", function() { 
     }); 
    } 
} 

showHideFreccia(); 
$window.scroll(showHideFreccia); 

应该怎样改变的是: 元素默认为可见,用户滚动750和它淡出。用户到达页面的结束,滚动备份当到达页面元素变淡回顶

我试图用这个,但它不工作(不淡入/淡出了):

var $window = $(window); 
var $freccia = $('#freccia1'); 

function showHideFreccia() { 
    var availableScroll = $(document).height() - $window.height(), 
     scrollTop = $window.scrollTop(); 

    if (scrollTop > 750 || scrollTop == availableScroll) { 
     $freccia.fadeout("slow", function() { 
     }); 
    } 
    if (scrollTop < 1 || scrollTop == availableScroll) { 
     $freccia.fadein("slow", function() { 
     }); 
    } 
} 

showHideFreccia(); 
$window.scroll(showHideFreccia); 
+1

是你确切的代码?因为你在淡入淡出时缺少大写字母。应该是fadeIn和fadeOut –

+0

是的,这是我的实际代码...我没有得到警告或错误.. – MultiformeIngegno

+0

哦,好吧,理解。现在我想改变它 – MultiformeIngegno

你的第二个代码片段正常工作,您只需要使用淡入淡出代替淡入淡出,一个常见的错误!

此代码为我工作的罚款: JSFiddle

var $window = $(window); 
var $freccia = $('#freccia1'); 

function showHideFreccia() { 
    var availableScroll = $(document).height() - $window.height(), 
     scrollTop = $window.scrollTop(); 

    if (scrollTop > 750 || scrollTop == availableScroll) { 
     $freccia.fadeOut("slow", function() { 
     }); 
    } 
    if (scrollTop < 1 || scrollTop == availableScroll) { 
     $freccia.fadeIn("slow", function() { 
     }); 
    } 
} 

showHideFreccia(); 
$window.scroll(showHideFreccia); 

编辑:

不能确定这是否是你想要的发生与否,而是这个当前的代码将再次显示元素当你到达页面的末尾时。你可以通过从第二个if语句中删除|| scrollTop == availableScroll来解决这个问题(如果根本不需要它,它也可以从第一个中删除)。

你可以使用这个脚本,在你的滚动顶部申请:

var detectScroll = function (_event) { 
    var event = window.event || _event; // old IE support 
    var direction = Math.max(-1, Math.min(1, (event.wheelDelta || -event.detail))); 
    return direction; 
    }; 

function showHideFreccia(e) { 
    var dir = detectScroll(e); 
    //... 
    if (dir == 1 || scrollTop == availableScroll) { 
     // your action 
    } 
} 
// and into your scroll event 
$window.scroll(function(e) { 
    showHideFreccia(e); 
}); 

Source

如果将retur ñ1这意味着,你向上滚动,然后执行你的fadein行动。 -1我指滚动到底

+0

我应该把这个放在哪里? – MultiformeIngegno

+0

我更新了我的安装程序 –