2015-02-02 5 views
13

मैं वेब बेस मोबाइल (एचटीएमएल) एप्लिकेशन पर काम कर रहा हूं। क्या
पर कोई भी तरीका कीबोर्ड कुंजीपटल का पता लगाने जैसे कुंजीपटल दिखाई देता है और कीबोर्ड छुपाता है, आधार उस पर मैं अन्य स्क्रीन लेआउट को नियंत्रित कर सकता हूं। मैंने फोकस, ब्लर, ब्राउज़र का आकार बदलने की कोशिश की लेकिन मेरी समस्या ने 100% का समाधान नहीं किया है, इसलिए मैं हूँ केवल कीबोर्ड ईवेंट की तलाश में हूं, वास्तव में कीबोर्ड पर दिखाई देने पर कीबोर्ड पर पाद लेख छिपाना चाहता है क्योंकि यह (पाद लेख) दिखाई देता है कुंजीपटल, इसलिए जब मैं कीबोर्ड छुपाता हूं तो के रूप में कीबोर्ड दृश्यमान और पाद लेख स्थिति के रूप में पाद लेख स्थिति को सेट करने का प्रयास कर रहा हूं। मैंने इसे नीचे काम करने की कोशिश की लेकिन यह मेरी समस्या के
का 100% संकल्प नहीं हो सका। $ (document) .ready (function() {मोबाइल वेब एप्लिकेशन के लिए jquery में कीबोर्ड शो/छुपाएं ईवेंट का पता लगाने के लिए

$("input").focus(function() { 
$(".copyright_link").css("position","relative"); 

});  

$("input").blur(function() { 

$(".copyright_link").css("position","fixed"); 
});  

});

किसी को भी कैसे पाद समस्या को हल करने या मुझे पता है मेरी मदद कर सकते अगर वहाँ jQuery में कुंजीपटल घटना है

+0

न्यायाधीश बनाम हार्डवेयर कीबोर्ड वर्चुअल कीबोर्ड का पता लगाने === 'text''। संदर्भित http://stackoverflow.com/questions/14902321/how-to-determine-if-a-resize-event-was-triggered-by-soft-keyboard-in-mobile-brow –

उत्तर

6

यदि कुंजीपटल प्रदर्शित होने या नहीं

$(document).ready(function(){ 
    var _originalSize = $(window).width() + $(window).height() 
    $(window).resize(function(){ 
    if($(window).width() + $(window).height() != _originalSize){ 
     console.log("keyboard show up"); 
     $(".copyright_link").css("position","relative"); 
    }else{ 
     console.log("keyboard closed"); 
     $(".copyright_link").css("position","fixed"); 
    } 
    }); 
}); 
+0

धन्यवाद इसका काम :) –

+1

यह केवल तभी काम करता है जब मैंने डिवाइस पोर्ट्रेट को परिदृश्य में घुमाया नहीं है या इसके विपरीत। क्योंकि var _originalSize = $ (विंडो)। विड्थ() + $ (विंडो) .height(); लैंडस्केप और पोर्टेट मोड में भिन्न है, इसलिए यह उपरोक्त कोड के अनुसार पाद लेख की अनावश्यक स्थिति को ट्रिगर करता है। तदनुसार अब मुझे लगता है कि कीबोर्ड कार्यक्रम की तलाश है .. क्या कोई है ?? –

+0

$ (विंडो) .width() + $ (विंडो) .height() <_originalSize - 50 से बचने के लिए कुछ कोशिश करें। जो लैंडस्केप मोड और पोर्ट्रेट मोड और कीबोर्ड ऊंचाई से छोटे के बीच अंतर से बड़ा है। – suish

8
if($(document.activeElement).attr('type') == "text"){ 
    console.log("Keyboard is visible"); 
}else{ 
    console.log("Keyboard is not visible"); 
} 
है आप घटना का आकार बदलने के प्राप्त करने के लिए उपयोग कर सकते हैं
+6

एंड्रॉइड पर आप त्रिभुज टैप करके कीबोर्ड को छुपा सकते हैं ('कीबोर्ड बटन छुपाएं')। इनपुट सक्रिय रहेगा। – Lambder

4

jQuery का उपयोग करना:

var lastWindowWidth = $(window).width(), 
    lastWindowHeight = $(window).height(); 

$(window).resize(function() { 

    var newWindowWidth = $(window).width(), 
     newWindowHeight = $(window).height(); 

    if(newWindowHeight > lastWindowHeight && newWindowWidth == lastWindowWidth) { 

     // Keyboard closed 
     // ... 

    } 

    lastWindowWidth = newWindowWidth; 
    lastWindowHeight = newWindowHeight; 

}); 

ध्यान दें कि खिड़की resiz ई इवेंट (और इस तरह "कीबोर्ड बंद" टिप्पणी ब्लॉक) कुंजीपटल एनिमेट बंद होने के रूप में कई बार बुलाया जा सकता है। अपनी जरूरतों के अनुरूप संपादित करें।

0

हाय यहाँ एक समाधान है जो यह जांचने के लिए काम करता है कि मोबाइल डिवाइस में कीबोर्ड सक्रिय है या नहीं।

नीचे दिए गए कोड में "# ईमेल" इनपुट क्षेत्र का आईडी है जिसका मैं उपयोग कर रहा हूं।

$(window).resize(function() { //checking for window resize event 

    if($(window).width() < 414){ //checking for window width 
     if($("#Email").is(":focus")){ 
      $('.content').css({'margin-top': -15 + 'px'}); 
      $('.footer').css({'margin-bottom': -100 + 'px'}); 
     } 
    }}); 
0

सबसे गोली प्रोफेसर समाधान है कि क्रोम/सफारी आदि में काम करता है .. और 20 Nov-2017 के रूप में Android और iOS दोनों पर एक VH है कि एक div की ऊंचाई में एक परिवर्तन का पता लगाने के लिए किया जाएगा ऊंचाई इकाइयों (व्यूपोर्ट ऊंचाई)

फिर इनपुट/टेक्स्टरेरा के किसी भी धुंध/फोकस परिवर्तन पर जांच करें कि क्या उस div में अब 30% कम (पिक्सेल में) की ऊंचाई है जो उस धुंध/फोकस ईवेंट से पहले होती है।

यहाँ कोड देखें: Detect virtual keyboard vs. hardware keyboard (अपनी नहीं जाहिरा तौर पर पेस्ट कोड को कॉपी करने की अनुमति दी) `$ (document.activeElement) .attr ('प्रकार') के साथ

संबंधित मुद्दे