2012-04-30 20 views
18

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

बातें मैं पहले से ही पता:

  1. आप केवल आकार बदल सकते हैं और स्थिति खिड़कियों जावास्क्रिप्ट के माध्यम से खोला, उपयोगकर्ता द्वारा नहीं। (जब तक कि वे अपनी सुरक्षा सेटिंग्स को समायोजित नहीं करते हैं, जो एक विकल्प नहीं है)
  2. जब आप विंडो के आकार बदलने के लिए() विधि का उपयोग करते हैं, तो ब्राउज़र निर्दिष्ट आयामों में बदल जाता है। व्यूपोर्ट अक्सर काफी छोटा होता है (औसत पर 30 से 100 पिक्सल छोटे होते हैं) हालांकि, मैं व्यूपोर्ट को एक विशिष्ट आकार में बदलना चाहता हूं।
  3. ब्राउज़र, ब्राउज़र संस्करण, प्लेटफ़ॉर्म, कुछ प्लगइन्स, और विभिन्न मेनू और टूल बार व्यूपोर्ट के आयामों को बदल देंगे। अधिक मेनू और टूल बार का अर्थ है कि व्यूपोर्ट चौड़ाई छोटा है।

संभव समाधान:

  1. ब्राउज़र की चौड़ाई और ऊंचाई का पता लगाएं
  2. व्यूपोर्ट की चौड़ाई और ऊंचाई
  3. दोनों के बीच अंतर का निर्धारण का पता लगाएं।
  4. resizeTo करने के लिए अपने कॉल() में मान को समायोजित तदनुसार

मैं के साथ चरण 1 बाकी सब कुछ मैं पता लगा सकते हैं मदद की जरूरत है। अगर मैं मदद करता हूं तो मैं jQuery और आधुनिकीकरण का भी उपयोग कर रहा हूं।

आपकी मदद के लिए अग्रिम धन्यवाद!

+1

http://www.quirksmode.org/dom/w3c_cssom.html – AlienWebguy

+0

ठीक है, आप वहां जाते हैं। – mrbinky3000

+0

केवल समस्या 4 के साथ आपके पास समस्या होगी यह सुनिश्चित कर रहा है कि ब्राउज़र में सेटिंग को एक नई विंडो में पॉप अप करने के लिए सक्षम किया गया है और आप इसे आकार देने में सक्षम हैं। – epascarello

उत्तर

17

पद काफी पुराना है, लेकिन यहाँ भविष्य पाठकों के लिए एक ठोस कार्यान्वयन है:

var resizeViewPort = function(width, height) { 
    if (window.outerWidth) { 
     window.resizeTo(
      width + (window.outerWidth - window.innerWidth), 
      height + (window.outerHeight - window.innerHeight) 
     ); 
    } else { 
     window.resizeTo(500, 500); 
     window.resizeTo(
      width + (500 - document.body.offsetWidth), 
      height + (500 - document.body.offsetHeight) 
     ); 
    } 
}; 

और अगर आप खाते में स्क्रॉलबार ले जाना चाहते हैं:

var resizeViewPort = function(width, height) { 
    var tmp = document.documentElement.style.overflow; 
    document.documentElement.style.overflow = "scroll"; 

    if (window.outerWidth) { 
     window.resizeTo(
      width + (window.outerWidth - document.documentElement.clientWidth), 
      height + (window.outerHeight - document.documentElement.clientHeight) 
     ); 
    } else { 
     window.resizeTo(500, 500); 
     window.resizeTo(
      width + (500 - document.documentElement.clientWidth), 
      height + (500 - document.documentElement.clientHeight) 
     ); 
    } 

    document.documentElement.style.overflow = tmp; 
}; 

मज़े ...

+2

आईई 11, एफएफ, और क्रोम (विंडोज़ पर सभी) के साथ इस काम की पुष्टि की – mlhDev

+2

उत्कृष्ट समाधान, हालांकि मैंने इसे window.resize ईवेंट में उपयोग किया। पहला व्यक्ति सफारी के कम से कम दो डेस्कटॉप संस्करणों में उस मामले में अच्छी तरह से काम नहीं करता है: खिड़की आकार बदलती है और आकार बदलती है, कई बार, जब तक कि यह सही आकार को हिट न करे, या यह आकार बदलने वाले लूप में फंस जाता है। क्या हल हुआ मेरे लिए, 'window.outerWidth - window.innerWidth' की गणना कर रहा है, जब एक बार डीओएम लोड हो गया था, और हर बार उन मानों का उपयोग करके, प्रत्येक आकार बदलने पर उन्हें कंप्यूटिंग करने की बजाय। मैंने ऊंचाई के लिए एक ही काम किया। – toon81

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