2011-05-30 14 views
19

मैं समझता हूं कि <frameset> और <frame> टैग बहिष्कृत हो रहे हैं। क्या आकार बदलने योग्य फ्रेम का अनुकरण करने का कोई तरीका है? मैं जो चाहता हूं वह एक संकीर्ण विभाजक है जो क्षेत्र को क्षैतिज या लंबवत से अलग करता है, जो उपयोगकर्ता द्वारा चलने योग्य है ताकि जब इसका एक तरफ छोटा हो जाए, दूसरी तरफ बड़ा हो जाए, और इसके विपरीत। मैं प्रत्येक फ्रेम को एचटीएमएल पेज के साथ पारंपरिक फ्रेम की तरह भरना नहीं चाहता, बल्कि कुछ डीओएम सामग्री के साथ।आकार बदलने योग्य फ्रेम इम्यूलेशन

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

मैं विशेष रूप से जावास्क्रिप्ट का उपयोग करना पसंद नहीं करता, लेकिन यदि आवश्यक हो तो मैं इसका उपयोग करने की संभावना को शामिल नहीं कर रहा हूं।

+0

[यह सबसे अच्छा है जिसके साथ मैं आ सकता हूं] (http://jsfiddle.net/ysangkok/2YBWb/1/)।जावास्क्रिप्ट और कोई वर्टिकल बार (CSS3 के आकार में निर्भर करता है)। वेनिला जेएस के लिए आसानी से पोर्टेबल होना चाहिए। –

+1

नहीं, 'फ्रेम' को बहिष्कृत नहीं किया जा रहा है ** अगर ** आप सही HTML4.01 सिद्धांत का उपयोग करते हैं (HTML4.01/XHTML1.0 बनाम एचटीएमएल 5 बीटीडब्ल्यू में 'संक्षिप्त नाम' तत्व के लिए)। अब मैं स्पष्ट रूप से उस क्लाइंट के प्रोजेक्ट के लिए उपयोग नहीं करूँगा लेकिन शायद तकनीकी दस्तावेज के लिए (या शायद नहीं, क्योंकि मुझे इस मामले में आईई 6/7 की परवाह नहीं है और आईई 8 में * स्थिति * की तरह * ओके * समर्थन है: एक साइडबार के लिए निश्चित ') – FelipeAls

+1

क्या आप इस तरह की कुछ चीज़ ढूंढ रहे हैं http://jsbin.com/ – Champ

उत्तर

15

फ़्रेमसेट का उपयोग न करें, कृपया। मुझे नहीं लगता कि jQuery का आकार आपको या तो बहुत मदद करेगा।

ऐसा करने का सबसे अच्छा तरीका "स्प्लिटर" का उपयोग करना है। Jquery के लिए कई प्लगइन्स हैं जो इसे कई अलग-अलग तरीकों से करेंगे और वे सभी वास्तव में काफी सरल हैं।

मैं पहले इस एक का इस्तेमाल किया है: http://methvin.com/splitter/3psplitter.html

+0

यह बहुत अच्छा है। आखिरकार मुझे जो चाहिए वह मिला। धन्यवाद। – sawa

+0

स्पष्ट रूप से यह प्लगइन अब बनाए रखा नहीं गया है (2017) सभी नमूने क्रोम संस्करण 60.0.3112.113 पर काम नहीं करते हैं, कम से कम वे फ्रेम प्रकार के दृश्य या आकार बदलने की क्षमता नहीं दिखाते हैं। – raphie

0

मैं जावास्क्रिप्ट को देखता हूं और समर्थन खींचता हूं और छोड़ देता हूं।

वास्तव में, एक नकली फ़्रेमसेट केवल दो divs और उनके बीच एक हैंडल हो सकता है जिसे आकार बदलने के लिए पकड़ा जा सकता है। JQuery के नमूने का आकार बदलने के लिए नमूने हैं: http://jqueryui.com/demos/resizable/ मुझे नहीं लगता कि उस अवधारणा को फिट करने के लिए बहुत मुश्किल होगा।

फिर मैं AJAX के माध्यम से दस्तावेज़ लोड करूंगा, और यह शायद फ्रेम को पूरी तरह से बदल सकता है।

4

दृश्य jQuery Resizable या इस तरह के js चीजों की मेरी बात से अपने समाधान है। इसके demos के लिए जाएं।
jQuery का उपयोग करने के मामले में आप होगा अतिरिक्त संभावनाओं:

  • अधिकतम/न्यूनतम आकार
  • विवश आकार बदलने के क्षेत्र
  • देरी ग्रिड से शुरू
  • स्नैप

यहाँ एक है jQuery के लिए नमूना कोड आकार बदलने योग्य डिफ़ॉल्ट कार्यक्षमता:

<style> 
    #resizable { 
     width: 150px; 
     height: 150px; 
     display: block; 
     border: 1px solid gray; 
     text-align: center; 
    } 
</style> 

<script> 
    $(function() { 
     $("#resizable").resizable(); 
    }); 
</script> 

<div id="resizable"> 
    <h3>Resizable</h3> 
</div> 
1

जानूस Troelsen के समाधान के ऊपर अगर आप तालिकाओं कोई आपत्ति नहीं है महान है: http://methvin.com/splitter/

आप यहाँ एक अच्छा प्रदर्शन पा सकते हैं। मुझे बिना समाधान के SoonDead द्वारा यह समाधान भी मिला, जो क्रोम और एफएफ के साथ बहुत अच्छा काम करता था, लेकिन आईई 8 के लिए एक बुरा समय खर्च करना पड़ा। यह StackOverflow पर "Emulate Frameset Separator Behavior"

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

  • कोई संबंधित समस्या नहीं^_^