"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > कीबोर्ड खुला होने पर भी किसी तत्व को नीचे की ओर कैसे स्थिर रखा जाए

कीबोर्ड खुला होने पर भी किसी तत्व को नीचे की ओर कैसे स्थिर रखा जाए

2024-08-25 को प्रकाशित
ब्राउज़ करें:705

अरे देवों! मुझे यह अपने नोट-टेकिंग ऐप पर काम करते समय पता चला।
यहां मेरे ऐप का उपयोग करते हुए एक पोस्ट है।
एक्स (ट्विटर) पर प्रगति साझा करना

क्या आपको कभी आश्चर्य हुआ है कि सीएसएस आपकी अपेक्षा के अनुरूप काम नहीं कर रहा है?
मेरे साथ (फिर से) ऐसा ही हुआ जब मैंने नीचे एक तत्व को ठीक करने के लिए सेट किया और फिर अपने iPhone पर कीबोर्ड खोला।

मैंने जो देखा वह यह है कि वह तत्व बिल्कुल भी दिखाई नहीं दे रहा है।
क्योंकि यह तय हो गया है. नीचे। कीबोर्ड के पीछे.

How to keep an element fixed at the bottom, even when the keyboard is open

ऐसा लगता है कि समस्या को ठीक करने के लिए हमें कुछ JS की आवश्यकता है।

विज़ुअलव्यूपोर्ट

अच्छे समर्थन वाला एक ब्राउज़र एपीआई है जिसका उपयोग इन उद्देश्यों के लिए किया जा सकता है: विज़ुअल व्यूपोर्ट।
यह वास्तविक दृश्यमान व्यूपोर्ट की चौड़ाई और ऊंचाई लौटाता है। डॉक्स से एमडीएन लिंक।
हालाँकि, यह देखने के लिए अपनी स्वयं की जाँच करें कि क्या यह उन संस्करणों के लिए समर्थित है जिन्हें आप लक्षित कर रहे हैं।

How to keep an element fixed at the bottom, even when the keyboard is open

गणित

मूल रूप से, हमें विज़ुअल व्यूपोर्ट के संबंध में तत्व की स्थिति, साथ ही स्क्रॉल स्थिति और तत्व की ऊंचाई को संभालने की आवश्यकता है। आइए गणित करें।

इसके अलावा, चूंकि गणित इस तरह से बहुत सरल है, इसलिए नीचे के बजाय शीर्ष पैरामीटर का उपयोग करना समझ में आता है।

top = viewport height   scroll - element height

कार्यान्वयन

मैं रिएक्ट का उपयोग करूंगा। किसी भी अन्य ढांचे के लिए, आप केवल यूज़इफ़ेक्ट हुक की सामग्री की प्रतिलिपि बना सकते हैं।

import { useEffect, useState } from 'react';
import classNames from 'classnames';
import { useDebounce } from 'use-debounce';

const elementHeight = 55; // elem. height in pixels
// It's also a good idea to calculate it dynamically via ref

export const FixedBlock = () => {
  // top postion -> the most important math result goes here
  const [top, setTop] = useState(0);

  useEffect(() => {
    function resizeHandler() {
      // viewport height
      const viewportHeight = window.visualViewport?.height ?? 0;
      // math
      setTop(viewportHeight   window.scrollY - elementHeight)
    }

    // run first time to initialize 
    resizeHandler();

    // subscribe to events which affect scroll, or viewport position
    window.visualViewport?.addEventListener('resize', resizeHandler);
    window.visualViewport?.addEventListener('scroll', resizeHandler);
    window?.addEventListener('touchmove', resizeHandler);

    // unsubscribe
    return () => {
      window.visualViewport?.removeEventListener('resize', resizeHandler);
      window.visualViewport?.removeEventListener('scroll', resizeHandler);
      window?.removeEventListener('touchmove', resizeHandler);
    };
  }, [debouncedScroll]);

  return (
    
      
I am fixed
> ); };

अंतिम परिणाम

मुझे कुछ एनिमेशन जोड़ने और स्क्रॉल पर अपना ब्लॉक छिपाने की भी आवश्यकता थी, लेकिन आपको ऐसा करने की ज़रूरत नहीं है, और यह हमेशा दिखाई देगा।

How to keep an element fixed at the bottom, even when the keyboard is open

विज्ञप्ति वक्तव्य यह आलेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/rita/how-to-keep-an-element-fixed-at-the-bottom-even-when-the-keyboard-is-open-n0m?1 कोई भी उल्लंघन, हटाने के लिए कृपया [email protected] से संपर्क करें
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3