????:前言通常情況下,當(dāng)內(nèi)部滾動條滾動到兩端時,再接著滾動時外層的滾動條就會跟著滾動;可是有時我們希望用戶只能滾動當(dāng)前區(qū)域,而不觸發(fā)外層(window)的滾動條,離開當(dāng)前區(qū)域后,才能滾動外層的滾動條。因為用戶可能一不小心滾動的幅度過大了,導(dǎo)致當(dāng)前區(qū)域離開可視區(qū)域。在jquery中,滾動事件是scroll,而這個事件是不能阻止冒泡和阻止默認(rèn)事件的。假如我們設(shè)定要禁止window的滾動條,我采取的策略是:當(dāng)
前言
通常情況下,當(dāng)內(nèi)部滾動條滾動到兩端時,再接著滾動時外層的滾動條就會跟著滾動;可是有時我們希望用戶只能滾動當(dāng)前區(qū)域,而不觸發(fā)外層(window)的滾動條,離開當(dāng)前區(qū)域后,才能滾動外層的滾動條。因為用戶可能一不小心滾動的幅度過大了,導(dǎo)致當(dāng)前區(qū)域離開可視區(qū)域。
在jquery中,滾動事件是scroll,而這個事件是不能阻止冒泡和阻止默認(rèn)事件的。假如我們設(shè)定要禁止window的滾動條,我采取的策略是:當(dāng)鼠標(biāo)進入到當(dāng)前區(qū)域后,則window的滾動條的高度始終是鼠標(biāo)進入前的高度
如下的代碼:
<style type="text/css"> .main{ overflow: auto; width: 400px; height: 400px; border: 1px solid #aaa; } .main p{ height: 800px; } </style> <body> <div id="main" class="main"> <p></p> </div> <p style="height:1000px;"></p> </body> $(function () { var scrollTop = -1; // 鼠標(biāo)進入到區(qū)域后,則存儲當(dāng)前window滾動條的高度 $('#main').hover(function(){ scrollTop = $(window).scrollTop(); }, function(){ scrollTop = -1; }); // 鼠標(biāo)進入到區(qū)域后,則強制window滾動條的高度 $(window).scroll(function(){ scrollTop!==-1 && $(this).scrollTop(scrollTop); }) })
從上面的代碼可以看到,我并沒有阻止window滾動條的事件,而是用戶每次滾動時,都會重新進行賦值。
更多關(guān)于利用jquery禁止外層滾動條的滾動請關(guān)注PHP中文網(wǎng)(ipnx.cn)其他文章!