2012-10-27 14 views
7

मैंने फ़ोनगैप और jQuery मोबाइल का उपयोग करके एक ऐप डिज़ाइन किया है। फिक्स्ड फ़ूटर ठीक से काम करता है जब तक कि मैं ड्रॉपडाउन या टेक्स्ट फ़ील्ड पर क्लिक नहीं करता, जिससे पाद लेख या तो दृश्य (एंड्रॉइड 4.0) से गायब हो जाता है या दृश्य के बीच में जाता है (एंड्रॉइड 2.2 गैलेक्सी टैब)। कोई सुझाव?कीबोर्ड मोबाइल फिक्स्ड फ़ूटर चल रहा है जब कीबोर्ड दिखाई देता है

Phonegap संस्करण: Cordova 2.1.0
jQuery मोबाइल संस्करण: 1.2.0

यहाँ मेरी कोड है:

<div data-role="footer" class="nav-mobilyzer" data-tap-toggle="false" data-position="fixed"> 
    <div data-role="navbar" class="nav-mobilyzer" data-grid="d"> 
    <h1>footer</h1>   
    </div> 
</div> 
+0

क्या आपने यहां एक समान प्रश्न के उत्तर देखे हैं: http://stackoverflow.com/questions/6861764/jquery-mobile-stick-footer-to-bottom-of-page – Taifun

+0

यहां मेरा समाधान है समस्या http://stackoverflow.com/questions/13097663/jquery-mobile-fixed-footer-is-moving-when-the-keyboard-appears/29415239#29415239 – eliprodigy

उत्तर

14

मैं कुछ उपकरणों पाद लेख प्रदर्शित समस्या थी और अन्य लोगों में यह ऐसा नहीं किया। मैंने पाया यह मेरे लिए काम किया:

var initialScreenSize = window.innerHeight; 
window.addEventListener("resize", function() { 
    if(window.innerHeight < initialScreenSize){ 
     $("[data-role=footer]").hide(); 
    } 
    else{ 
     $("[data-role=footer]").show(); 
    } 
}); 

संपादित करें:

लेकिन क्या बारे में उन्मुखीकरण परिवर्तन?

var portraitScreenHeight; 
var landscapeScreenHeight; 

if(window.orientation === 0 || window.orientation === 180){ 
    portraitScreenHeight = $(window).height(); 
    landscapeScreenHeight = $(window).width(); 
} 
else{ 
    portraitScreenHeight = $(window).width(); 
    landscapeScreenHeight = $(window).height(); 
} 

var tolerance = 25; 
$(window).bind('resize', function(){ 
    if((window.orientation === 0 || window.orientation === 180) && 
     ((window.innerHeight + tolerance) < portraitScreenHeight)){ 
     // keyboard visible in portrait 
    } 
    else if((window.innerHeight + tolerance) < landscapeScreenHeight){ 
     // keyboard visible in landscape 
    } 
    else{ 
     // keyboard NOT visible 
    } 
}); 

सहिष्णुता पोर्ट्रेट चौड़ाई और इसके विपरीत के साथ परिदृश्य ऊंचाई की अयोग्य गणना के लिए सहिष्णुता का खाता है।

+0

आईओएस के लिए देखने के लिए http: // stackoverflow। कॉम/प्रश्न/11600040/jquery-js-html5-change-page-content-when-keyboard-is-visible-on-mobile-devices – gmh04

+0

यह मेरे लिए काम करता है ... धन्यवाद! –

+0

मैं इस कोड का उपयोग करने के लिए आयनिक के लिए नया हूँ? मुझे एक ही समस्या का सामना करना पड़ रहा है @ gmh04 – Erum

4

ठीक है, इस धागे को इस बिंदु पर इंटरनेट के रूप में पुराना है, लेकिन उपर्युक्त उत्तर मेरे लिए नौकरी नहीं लग रहा था।

सबसे अच्छा तरीका मैंने पाया jQuery .blur() घटना के लिए एक विधि के लिए बाध्य है, और फिर एक बहुत ही विशेष क्रम का निर्धारण fixedtoolbar() पद्धतियों के लिए गया था, यानी

var that = this; 
    $(':input').blur(function(){ 
     that.onFocusLoss(); 
    }); 

......

onFocusLoss : function() { 
    try { 
     $("[data-position='fixed']").fixedtoolbar(); 
     $("[data-position='fixed']").fixedtoolbar('destroy'); 
     $("[data-position='fixed']").fixedtoolbar(); 
     console.log('bam'); 
    } catch(e) { 
     console.log(e); 
    } 
}, 
3

जब हम तो एक इनपुट पर ध्यान केंद्रित किया कुंजीपटल खोला जाता है:

// hide the footer when input is active 
$("input").blur(function() { 
    $("[data-role=footer]").show(); 
}); 

$("input").focus(function() { 
    $("[data-role=footer]").hide(); 
}); 
0

कोशिश डेटा-छुपा दौरान फोकस = "" और एक के लिए सेट खाली स्ट्रिंग।

+0

हाय मोहन, आपका जवाब स्टैक ओवरफ्लो मानक से मेल खाने के लिए बहुत छोटा लगता है, यह अच्छा होगा अगर आपके उत्तर हमेशा उपयोगी हो (कोड पर) कोड के साथ आप सहायक होने की उम्मीद करते हैं। – Vasim

1

तुम भी जब कुंजीपटल शो और जब गुप्त रखता है और शो का पता लगाने या उसके अनुसार अपनी पाद लेख छिपा सकते हैं:

document.addEventListener("showkeyboard", function(){ $("[data-role=footer]").hide();}, false); 
document.addEventListener("hidekeyboard", function(){ $("[data-role=footer]").show();}, false); 
0

मेरे समाधान div पाद लेख पर एक और jQuery विशेषता का उपयोग करता। उस div को डेटा-पूर्णस्क्रीन = "सत्य" जोड़ना मुझे बस चाहिए था। मुझे पता है कि यह फिक्स हाल ही में उपलब्ध नहीं हो सकता है, लेकिन मैं jqm 1.3.2 और jq 1.9 का उपयोग कर रहा हूं। मैंने सोचा कि अगर मैं किसी की मदद करता हूं तो मैं इस समाधान को पोस्ट करूंगा। सौभाग्य। :)

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