2012-09-10 40 views
1

我曾经跨越大概有以下问题脚本或文章来了:检测滚动意图

想象一下,一个页面是滚动里面,同时也是滚动的多个元素。当向下滚动页面时,光标会遇到可滚动的元素,并且它们将获得焦点。导致必须从该元素中删除光标,或者在能够再次滚动整个页面之前向下滚动该元素。

我看到的演示只关注光标移动后的滚动元素或某种滚动中断,从而解决了这个问题。因此,当您向下滚动页面时,您可以不中断地滚动(悬浮在可滚动元素上)。

有谁知道我在说什么脚本?

+0

我建议你不要改变这个由用户期望的行为! –

+0

@Bondye你发布(和删除)的主题是完全不同的问题 – dubbelj

回答

0

如果我明白了,否则让我知道:如果你想检测滚动事件,那么你必须使用从jquery页面scroll()

尝试这个例子:

<!DOCTYPE html> 
<html> 
<head> 
    <style> 
    div { color:blue; } 
    p { color:green; } 
    span { color:red; display:none; } 
    </style> 
    <script src="http://code.jquery.com/jquery-latest.js"></script> 
</head> 
<body> 
    <div>Try scrolling the iframe.</div> 
    <p>Paragraph - <span>Scroll happened!</span></p> 
<script> 
    $("p").clone().appendTo(document.body); 
    $("p").clone().appendTo(document.body); 
    $("p").clone().appendTo(document.body); 
    $(window).scroll(function() { 
     $("span").css("display", "inline").fadeOut("slow"); 
    }); 

</script> 

</body> 
</html> 

在这里看到演示:http://jsfiddle.net/4M7XK/(最小化右下块的高度)

0

我很抱歉,但我不现在你是指原始文章到,但这里是想法,我将如何使它工作。

一旦用户开始滚动。 (例如jQuery中的$(window).scroll(function(){...})),我会放置一个空div来覆盖从上到下的整个页面。该元素将高于所有其他可滚动的div,从而阻止它们捕获滚动事件。它的元素必须在几毫秒的时间内被移除。

$(window).scroll(function(){ 
var $cover = $('<div style="position: absolute; left: 0px; top: 0px; width: 100%; height: '+ $(document).height() + 'px; z-index: 100000">asdasd</div>') 
$cover.appendTo($("body")); 
setTimeout(function(){ 
    $cover.remove(); 
},200); 
});