亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

利用jquery禁止外層滾動(dòng)條的滾動(dòng)

Original 2017-01-13 14:24:54 305
abstrakt:前言通常情況下,當(dāng)內(nèi)部滾動(dòng)條滾動(dòng)到兩端時(shí),再接著滾動(dòng)時(shí)外層的滾動(dòng)條就會(huì)跟著滾動(dòng);可是有時(shí)我們希望用戶(hù)只能滾動(dòng)當(dāng)前區(qū)域,而不觸發(fā)外層(window)的滾動(dòng)條,離開(kāi)當(dāng)前區(qū)域后,才能滾動(dòng)外層的滾動(dòng)條。因?yàn)橛脩?hù)可能一不小心滾動(dòng)的幅度過(guò)大了,導(dǎo)致當(dāng)前區(qū)域離開(kāi)可視區(qū)域。在jquery中,滾動(dòng)事件是scroll,而這個(gè)事件是不能阻止冒泡和阻止默認(rèn)事件的。假如我們?cè)O(shè)定要禁止window的滾動(dòng)條,我采取的策略是:當(dāng)

前言

通常情況下,當(dāng)內(nèi)部滾動(dòng)條滾動(dòng)到兩端時(shí),再接著滾動(dòng)時(shí)外層的滾動(dòng)條就會(huì)跟著滾動(dòng);可是有時(shí)我們希望用戶(hù)只能滾動(dòng)當(dāng)前區(qū)域,而不觸發(fā)外層(window)的滾動(dòng)條,離開(kāi)當(dāng)前區(qū)域后,才能滾動(dòng)外層的滾動(dòng)條。因?yàn)橛脩?hù)可能一不小心滾動(dòng)的幅度過(guò)大了,導(dǎo)致當(dāng)前區(qū)域離開(kāi)可視區(qū)域。

在jquery中,滾動(dòng)事件是scroll,而這個(gè)事件是不能阻止冒泡和阻止默認(rèn)事件的。假如我們?cè)O(shè)定要禁止window的滾動(dòng)條,我采取的策略是:當(dāng)鼠標(biāo)進(jìn)入到當(dāng)前區(qū)域后,則window的滾動(dòng)條的高度始終是鼠標(biāo)進(jìn)入前的高度

如下的代碼:

<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)進(jìn)入到區(qū)域后,則存儲(chǔ)當(dāng)前window滾動(dòng)條的高度
 $('#main').hover(function(){
 scrollTop = $(window).scrollTop();
 }, function(){
 scrollTop = -1;
 });
 
 // 鼠標(biāo)進(jìn)入到區(qū)域后,則強(qiáng)制window滾動(dòng)條的高度
 $(window).scroll(function(){
 scrollTop!==-1 && $(this).scrollTop(scrollTop);
 })
})

從上面的代碼可以看到,我并沒(méi)有阻止window滾動(dòng)條的事件,而是用戶(hù)每次滾動(dòng)時(shí),都會(huì)重新進(jìn)行賦值。

更多關(guān)于利用jquery禁止外層滾動(dòng)條的滾動(dòng)請(qǐng)關(guān)注PHP中文網(wǎng)(ipnx.cn)其他文章!

Versionshinweise

Beliebte Eintr?ge