Chrome 63+, फ़ायरफ़ॉक्स 59+ और ओपेरा 50+ में आप इसे CSS में कर सकते हैं:
body {
overscroll-behavior-y: none;
}
यह प्रश्न के स्क्रीनशॉट में दिखाए गए iOS पर रबरबैंडिंग प्रभाव को निष्क्रिय करता है। हालांकि यह पुल-टू-रिफ्रेश, ग्लो इफेक्ट्स और स्क्रॉल चाइनिंग को भी निष्क्रिय कर देता है।
हालाँकि आप अपने स्वयं के प्रभाव या कार्यक्षमता को ओवर-स्क्रॉलिंग पर लागू करने के लिए चुनाव कर सकते हैं। यदि आप उदाहरण के लिए पृष्ठ को धुंधला करना चाहते हैं और एक साफ एनीमेशन जोड़ना चाहते हैं:
<style>
body.refreshing #inbox {
filter: blur(1px);
touch-action: none; /* prevent scrolling */
}
body.refreshing .refresher {
transform: translate3d(0,150%,0) scale(1);
z-index: 1;
}
.refresher {
--refresh-width: 55px;
pointer-events: none;
width: var(--refresh-width);
height: var(--refresh-width);
border-radius: 50%;
position: absolute;
transition: all 300ms cubic-bezier(0,0,0.2,1);
will-change: transform, opacity;
...
}
</style>
<div class="refresher">
<div class="loading-bar"></div>
<div class="loading-bar"></div>
<div class="loading-bar"></div>
<div class="loading-bar"></div>
</div>
<section id="inbox"><!-- msgs --></section>
<script>
let _startY;
const inbox = document.querySelector('#inbox');
inbox.addEventListener('touchstart', e => {
_startY = e.touches[0].pageY;
}, {passive: true});
inbox.addEventListener('touchmove', e => {
const y = e.touches[0].pageY;
// Activate custom pull-to-refresh effects when at the top of the container
// and user is scrolling up.
if (document.scrollingElement.scrollTop === 0 && y > _startY &&
!document.body.classList.contains('refreshing')) {
// refresh inbox.
}
}, {passive: true});
</script>
ब्राउज़र का समर्थन
क्रोम 63+, फ़ायरफ़ॉक्स 59+ और ओपेरा 50+ इसे लिखते हैं। एज ने पारंपरिक रूप से इसका समर्थन किया जबकि सफारी एक अज्ञात है। प्रगति को ट्रैक यहाँ और वर्तमान ब्राउज़र संगतता MDN दस्तावेजीकरण
अधिक जानकारी