2012-10-01 72 views
3

我想禁用身體滾動時,我有一個彈出div(像照片畫廊查看器等),但我不希望爲子元素禁用滾動。jQuery禁用滾動的正文,但不是子元素?

我現在用的這個權利,這將禁用所有的春聯:

$('body').bind('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()); 
    } 
}); 

所以,如果我有一個元素類名爲「彈出」我怎麼能接受嗎?或者更好的是,我怎麼能阻止事件影響身體標籤以外的任何其他事物?

+0

哪個子元素?或所有的孩子? – Huangism

+0

最好是所有的兒童元素。 –

+0

我想也許你正在禁用滾動錯誤的方式。如果我正確理解你的問題。當你的模態彈出你想要的身體(模型掩碼下的所有東西)是不可滾動的,並且你希望模態的內容是可滾動的?你可能會將這個事件綁定在面具本身上,因爲它會覆蓋身體。雖然我不認爲需要禁用滾動。見http://www.toyota.ca/toyota/en/vehicles/camry/overview點擊汽車圖片附近的build/price按鈕下的免責聲明鏈接 – Huangism

回答

0

嘗試增加給你的子元素

onmouseover="document.body.style.overflow='hidden';" 
onmouseout="document.body.style.overflow='auto';" 

它會讓身體滾動的DIS直到mouseout出現在子元素上,但是否則具有所需的效果。

相關問題