2010-12-21 5 views

उत्तर

0

इस प्रयास करें: जहाँ तक मुझे पता के रूप में

<meta name="viewport" content="width=device-width; initial-scale=1.0; user-scalable:no;"> 

Source

+0

लेकिन क्या आप इसे जावास्क्रिप्ट में कर सकते हैं? –

+0

कोई जवाब नहीं बल्कि चिंता का विषय है, यदि उपयोगकर्ता अपने मोबाइल डिवाइस पर जावास्क्रिप्ट अक्षम करता है तो क्या होगा? क्या आप केवल सफारी का उपयोग कर मोबाइल ब्राउज़र को लक्षित कर रहे हैं? – ngen

1

, आप ज़ूम कारक शैली बदलकर पाठ का आकार बदल सकते हैं शरीर के '-webkit-पाठ आकार समायोजित' तत्व।

चेक में अधिक जानकारी के लिए इस लिंक:

http://developer.apple.com/library/safari/#documentation/AppleApplications/Reference/SafariCSSRef/Articles/StandardCSSProperties.html%23//apple_ref/doc/uid/TP30001266--webkit-text-size-adjust

+0

मुझे जावास्क्रिप्ट के माध्यम से पूरे ब्राउज़र के ज़ूम स्तर को सेट करने में सक्षम होना चाहिए। विशेष रूप से, मुझे डबल-टैप कैप्चर करने और ज़ूम स्तर को उस राशि तक सेट करने की आवश्यकता है जो मुझे उचित लगता है। मैं इसे प्राप्त करने के लिए डीओएम तत्वों के आकार को बदलना नहीं चाहता हूं। उपयोगकर्ता को चुपके ज़ूम से स्विच करने में सक्षम होना जरूरी ज़ूम को दोबारा ज़ूम करने की आवश्यकता है। – JoshNaro

+0

तो सफारी के लिए मूल डबल-टैप/चुटकी इशारों से आप अलग-अलग क्या करना चाहते हैं? –

10

[UPDATED] ऐसा लगता है कि आप मोबाइल सफारी में डबल नल पर कब्जा करना चाहते हैं। आप touchend ईवेंट को संभालने के द्वारा ऐसा कर सकते हैं, या उपलब्ध ढांचे का उपयोग कर सकते हैं, जैसे this site में प्रदान किया गया।

संशोधित डेमो पर एक नज़र डालें: http://jsbin.com/atayo4/20

<p id="tap">double tap to zoom</p> 
    <input id="zoomWidth" type="text" value="400" /> 
    <p id="feedback"></p> 

$(document).ready(function(){ 
    $('#tap').doubletap(
    // double tap handler 
    function(e) { 
     $('#feedback').addClass('red').html('double tap! Zoom width: ' + $('#zoomWidth').val()); 

     var zoomWidth = $('#zoomWidth').val(); 

     // zoom with the new width 
     $('meta[name="viewport"]').attr('content', 'width=' + zoomWidth + ', user-scalable:no'); 

     $('#zoomWidth').val(parseInt(zoomWidth, 10) - 25); 
    }, 

    // single tap handler 
    function(e) { 
     $('#feedback').removeClass('red').html('single tap! Zoom width: ' + $('#zoomWidth').val()); 
    }, 

    // double tap delay, default 500 
    400 
    ); 
}); 
1

मैं कोई लाभ नहीं हुआ जावास्क्रिप्ट के साथ मेटा टैग में न्यूनतम/अधिकतम तराजू और चौड़ाई से छेड़छाड़ की कोशिश की। कोड के साथ ज़ूम स्तर सेट करने की कोशिश करने के बजाय (मुझे लगता है कि यह संभव नहीं है), मैं अपनी अपेक्षाकृत बड़ी छवि के शीर्ष पर छोटे अदृश्य बॉक्स बनाने जा रहा हूं। यह उपयोगकर्ताओं को छवि के दिलचस्प वर्गों पर देशी डबल-टैप के माध्यम से ज़ूम इन (और आउट) करने की अनुमति देगा।

+0

मैंने 'document.createEvent (" TouchEvent ") का उपयोग करके एक डबल टैप ईवेंट अनुकरण करने की भी कोशिश की;', '.initTouchEvent (...)', 'document.createTouch (...) 'और सभी जैज़, हालांकि, सफलता के बिना। घटनाएं जावास्क्रिप्ट इंजन द्वारा पहचानी जाती हैं, लेकिन सफारी के व्यूपोर्ट नियंत्रक द्वारा नहीं। –

+0

यह थोड़ी देर पहले था, लेकिन मुझे लगता है कि हम केवल चौड़ाई और ऊंचाई बदल रहे हैं और आसपास के काम के रूप में उच्च गुणवत्ता वाली इमेजरी लोड कर रहे हैं। यही है, हम कृत्रिम रूप से ज़ूम किया। – JoshNaro

+0

दिलचस्प समाधान, फॉलो-अप के लिए धन्यवाद। मुझे बस पता चला कि कोई भी मेटा [name = viewport] टैग में हेरफेर करके ज़ूम स्तर को सॉर्ट कर सकता है। यह एक चिकनी संक्रमण नहीं है, लेकिन शायद कोई विंडो आयाम और स्क्रॉलिंग स्थिति को पढ़ सकता है और फिर चौड़ाई और अधिकतम/न्यूनतम पैमाने पैरामीटर को क्रमशः समायोजित कर सकता है। –

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

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