2014-07-23 21 views
5

içinde dış kaydırma işlemini devre dışı bırakabilme Kaydırabileceğiniz bilgileri tutan birkaç tane divim var. Ancak, üst veya alt tarafa bastığınızda, tüm sayfayı kaydıran tarayıcı kaydırmalarına dönüşür.Kaydırılabilir div

Fare, bu özel div içerisindeyken dış kaydırma işlemini devre dışı bırakmak istiyorum (bu türden üç tane div var).

Zarar vermeye çalıştığım şeyin bir örneği çalma listesi seçicisidir.

Here's an example at youtube Farenizi popüler yükleme bölümünün içine getirin ve yukarı ve aşağı doğru ilerlemeye çalışın.

DÜZENLEME: bağlantıyı başka bir tarayıcıda kullanmayı denedim ve video seçim kısmı görünmüyor, ancak "oynatma listesine ekle" kısmı bunu etkinleştirir.

Bunu yapmanın bir yolu bilen var mı?

cevap

4

bir FIDDLE

<div> 
    ... some content ... 
</div> 

div { 
    height: 400px; 
    overflow: scroll; 
} 

$('div').on('mousewheel DOMMouseScroll', function(e) { 
    var scrollTo = null; 

    if(e.type === 'mousewheel') { 
    scrollTo = (e.originalEvent.wheelDelta * -1); 
    } 
    else if(e.type === 'DOMMouseScroll') { 
    scrollTo = 40 * e.originalEvent.detail; 
    } 

    if(scrollTo) { 
    e.preventDefault(); 
    $(this).scrollTop(scrollTo + $(this).scrollTop()); 
    } 
}); 
var
1

Untested, ama cevap olabilir:

$("div").scroll(function(event) { 
    event.stopPropagation();//Do not bubble up the DOM, do not scroll document. 
}); 

stopPropagation() DOM kabardığını olay önlemek için kullanılır. Bu şekilde diğer öğeler bu etkinliğe bildirilmez.

Devamı: http://api.jquery.com/event.stoppropagation/ İşte

İlgili konular