फ्लेक्स संक्रमण: सामग्री को फिट करने के लिए खिंचाव (या सिकुड़ना)


9

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

और यहाँ एक तस्वीर है जिसे मैं प्राप्त करना चाहता हूँ:

यहां छवि विवरण दर्ज करें

उसके लिए मैं फ्लेक्स और संक्रमण का उपयोग करता हूं।

यह अच्छी तरह से काम करता है, लेकिन jQuery स्क्रिप्ट एक "400%" खिंचाव मूल्य (जो परीक्षण के लिए बहुत अच्छा है) को निर्दिष्ट करता है।

अब मैं चयनित div को "400%" निश्चित मूल्य के बजाय सामग्री को पूरी तरह से फिट / सिकोड़ना चाहूंगा।

मुझे नहीं पता कि मैं ऐसा कैसे कर सकता हूं।

क्या यह संभव है ?

मैंने div को क्लोन करने, उसे सामग्री में फिट करने, उसका मूल्य प्राप्त करने और उसके बाद इस मान का उपयोग करने के लिए प्रयास किया, लेकिन इसका अर्थ यह है कि मेरे पास प्रतिशत में प्रारंभिक चौड़ाई है, लेकिन पिक्सेल में लक्ष्य मान है। यह काम नहीं करता है।

और अगर मैं पिक्सेल मान को प्रतिशत में परिवर्तित करता हूं, तो परिणाम बिल्कुल भी किसी भी कारण से सामग्री के लायक नहीं है।

सभी मामलों में, यह एक जटिल तरीका है जो मैं वैसे भी प्राप्त करना चाहता हूं।

क्या कोई फ्लेक्स प्रॉपर्टी नहीं है जिसे किसी चयनित डिव की सामग्री को फिट करने के लिए परिवर्तित किया जा सकता है?

यहाँ कोड है ( बेहतर पढ़ने के लिए संपादित / सरलीकृत )

var expanded = '';

$(document).on("click", ".div:not(:first-child)", function(e) {

  var thisInd =$(this).index();
  
  if(expanded != thisInd) {
    //fit clicked fluid div to its content and reset the other fluid divs 
    $(this).css("width", "400%");
    $('.div').not(':first').not(this).css("width", "100%");
    expanded = thisInd;
  } else {
    //reset all fluid divs
    $('.div').not(':first').css("width", "100%");
    expanded = '';
  }
});
.wrapper {
  overflow: hidden;
  width: 100%;
  margin-top: 20px;
  border: 1px solid black;
  display: flex;
  justify-content: flex-start;
}

.div {
  overflow: hidden;
  white-space: nowrap;
  border-right: 1px solid black;
  text-align:center;
}

.div:first-child {
  min-width: 36px;
  background: #999;
}

.div:not(:first-child) {
  width: 100%;
  transition: width 1s;
}

.div:not(:first-child) span {
  background: #ddd;
}

.div:last-child {
  border-right: 0px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

Click on the div you want to fit/reset (except the first div)

<div class="wrapper">

  <div class="div"><span>Fixed</span></div>
  <div class="div"><span>Fluid (long long long long long text)</span></div>
  <div class="div"><span>Fluid</span></div>
  <div class="div"><span>Fluid</span></div>

</div>

यहाँ jsfiddle है:

https://jsfiddle.net/zajsLrxp/1/

संपादित करें: यहाँ आप सभी की मदद से मेरा काम कर रहा समाधान है (आकार विंडो में अद्यतन किया गया है + divs की संख्या और पहले कॉलम की चौड़ाई गतिशील रूप से गणना की गई है):

var tableWidth;
var expanded	   = '';
var fixedDivWidth  = 0;
var flexPercentage = 100/($('.column').length-1);

$(document).ready(function() {

    // Set width of first fixed column
    $('.column:first-child .cell .fit').each(function() {
        var tempFixedDivWidth = $(this)[0].getBoundingClientRect().width;
        if( tempFixedDivWidth > fixedDivWidth ){fixedDivWidth = tempFixedDivWidth;}
    });
    $('.column:first-child'  ).css('min-width',fixedDivWidth+'px')
	
    //Reset all fluid columns
    $('.column').not(':first').css('flex','1 1 '+flexPercentage+'%')
})

$(window).resize( function() {

    //Reset all fluid columns
    $('.column').not(':first').css('flex','1 1 '+flexPercentage+'%')	
    expanded   = '';
})

$(document).on("click", ".column:not(:first-child)", function(e) {
	
    var thisInd =$(this).index();	
	
    // if first click on a fluid column
    if(expanded != thisInd) 
    {
        var fitDivWidth=0;
    
        // Set width of selected fluid column
        $(this).find('.fit').each(function() {
            var c = $(this)[0].getBoundingClientRect().width;
            if( c > fitDivWidth ){fitDivWidth = c;}
        });
        tableWidth = $('.mainTable')[0].getBoundingClientRect().width; 
        $(this).css('flex','0 0 '+ 100/(tableWidth/fitDivWidth) +'%')
		
        // Use remaining space equally for all other fluid column
        $('.column').not(':first').not(this).css('flex','1 1 '+flexPercentage+'%')
		
        expanded = thisInd;
    }

    // if second click on a fluid column
    else
    {
        //Reset all fluid columns
        $('.column').not(':first').css('flex','1 1 '+flexPercentage+'%')

        expanded = '';
    }
  
});
body{
    font-family: 'Arial';
    font-size: 12px;
    padding: 20px;
}

.mainTable {
    overflow: hidden;
    width: 100%;
    border: 1px solid black;
    display: flex;
    margin-top : 20px;
}

.cell{
    height: 32px;
    border-top: 1px solid black;
    white-space: nowrap;
}

.cell:first-child{
    background: #ccc;
    border-top: none;
}

.column {
    border-right: 1px solid black;
    transition: flex 0.4s;
    overflow: hidden;
    line-height: 32px;
    text-align: center;
}

.column:first-child {
    background: #ccc;
}

.column:last-child {
  border-right: 0px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<span class="text">Click on the header div you want to fit/reset (except the first one which is fixed)</span>

<div class="mainTable">
    <div class="column">
        <div class="cell"><span class="fit">Propriété</span></div>
        <div class="cell"><span class="fit">Artisan 45</span></div>
        <div class="cell"><span class="fit">Waterloo 528</span></div>	    
    </div>
		  
    <div class="column">	    
        <div class="cell"><span class="fit">Adresse</span></div>
        <div class="cell"><span class="fit">Rue du puit n° 45 (E2)</span></div>
        <div class="cell"><span class="fit">Chaussée de Waterloo n° 528 (E1)</span></div>	    
    </div>
		
    <div class="column">	    
        <div class="cell"><span class="fit">Commune</span></div>
        <div class="cell"><span class="fit">Ixelles</span></div>
        <div class="cell"><span class="fit">Watermael-Boitsfort</span></div>	    
    </div>
		    
    <div class="column">	    
        <div class="cell"><span class="fit">Ville</span></div>
        <div class="cell"><span class="fit">Marche-en-Famenne</span></div>
        <div class="cell"><span class="fit">Bruxelles</span></div>	    
    </div>
		  
    <div class="column">
        <div class="cell"><span class="fit">Surface</span></div>
        <div class="cell"><span class="fit">120 m<sup>2</sup></span></div>
        <div class="cell"><span class="fit">350 m<sup>2</sup></span></div>	    
    </div>
</div>

और यहाँ काम पर एक पूरी तरह से उदाहरण है (शैलियों + गद्दी + अधिक डेटा):

https://jsfiddle.net/zrqLowx0/2/

आप सभी को धन्यवाद !


1
कृपया अपने प्रश्न में अंतिम परिणाम जोड़ने के लिए पर्याप्त रूप से बताएं कि आपने यह सब क्या बनाया है। मैं वास्तव में रुचि रखता हूं कि यह कैसा दिखता है। धन्यवाद! (... हो सकता है कि इसके लिए क्या उपयोग किया जाता है पर कुछ अंतर्दृष्टि? ...)
रेने वैन डेर लेंडे

ठीक है, मैं ऐसा करूंगा कि जैसे ही मैंने सभी अनावश्यक तत्वों से अपनी स्क्रिप्ट को साफ किया (कुछ ही मिनटों में मुझे लगता है)। उसने कहा, मैं ऐसा कैसे करूं? क्या मैं सिर्फ मूल पोस्ट को संपादित करता हूं और इस पर अपना ले लेता हूं, भले ही एज़ामेटज़िन का जवाब पूरी तरह से ठीक है? मैं कुछ चीजों को बदलता हूं, लेकिन यह 90% समान है (हालांकि मुझे यह दिखाने में खुशी होगी) ..
बशीर मेसौरी

यहाँ बिंदु है: मैं एक प्रकार की एक्सेल स्प्रेडशीट का अनुकरण करता हूं और मैं चाहता हूं कि लोग सामग्री को फिट करने के लिए किसी विशेष कॉलम पर क्लिक करने में सक्षम हों। आम तौर पर एक तालिका होती है, लेकिन कॉलम सही ढंग से व्यवहार नहीं कर रहे हैं जब यह उन्हें मेरे द्वारा इच्छित तरीके से आकार देने के लिए आता है (एक समय में एक कॉलम का विस्तार करना आसान है, लेकिन शेष स्थान पर कब्जा करने के लिए दूसरों को वास्तविक समय में व्यवहार करना कठिन है फ्लेक्स divs के लिए करना होगा। वे बस अनियमित रूप से विस्तार करते हैं। मैंने कुछ शोध किए और जो मैं चाहता हूं वह तालिकाओं के साथ असंभव है)। ऐसे अन्य कारण हैं जो मैं तालिका या डेटाटेबल का उपयोग नहीं करता हूं, लेकिन यह इस पोस्ट के दायरे से बाहर है।
बशीर मेसौरी

1
काफी आसान है, बस 'संपादित करें' हिट करें, सवाल के अंत में जाएं और एक नए स्निपेट (यह सब सहित) के साथ कुछ प्रोजेसिक पॉन्डरिंग्स जोड़ना शुरू करें। डिफ़ॉल्ट रूप से 'स्निपेट छिपाएं' (नीचे बाएं चेकबॉक्स), 'नए पाठकों' के लिए कम घुसपैठ / विचलित करना सुनिश्चित करें। मेरा पहला विचार यह था कि आप इसे कुछ फैंसी 'हारमोनिका' जैसे विजेट, आइकन और सभी के लिए उपयोग करने जा रहे थे। स्प्रेडशीट हुह, मेरे पास कुछ पूर्ण स्क्रीन है, यहाँ चर्चा किए गए (यदि आप रुचि रखते हैं) समान सिद्धांतों का उपयोग करते हुए चारों ओर ऊपर / नीचे / बाएं / दाएं बिछाने पर फैला हुआ है।
रेने वैन डेर लेंडे

2
महान आप अंतिम परिणाम पोस्ट करने वाले अतिरिक्त मील गए। इतना अधिक पुरस्कृत पर सवालों के जवाब देता है! कुडोस ...
रेने वैन डेर लेंडे

जवाबों:


4

इसका उपयोग करके हल करना संभव है max-widthऔर calc()

सबसे पहले, की जगह width: 100%के साथ flex: 1, सीएसएस में divs के लिए तो वे, बढ़ेगा जो इस मामले में बेहतर है। इसके अलावा, के लिए संक्रमण का उपयोग करें max-width

अब, हमें कुछ प्रासंगिक मूल्यों को संग्रहीत करना होगा:

  • divsLengthइस मामले में divs की मात्रा एनिमेटेड ( परिवर्तनीय) - 3 होगी।
  • extraSpaceइस मामले में निश्चित div और सीमाओं ( चर) के लिए उपयोग की जाने वाली कुल चौड़ाई - 39px।

उन 2 चर के साथ, हम सभी डिव के लिए एक डिफ़ॉल्ट max-width( defaultMaxWidthवैरिएबल) सेट कर सकते हैं , साथ ही बाद में उनका उपयोग कर सकते हैं। यही कारण है कि उन्हें विश्व स्तर पर संग्रहीत किया जा रहा है।

defaultMaxWidthहै calc((100% - extraSpace)/divsLength)

अब, क्लिक फ़ंक्शन दर्ज करें:

Div का विस्तार करने के लिए, लक्ष्य पाठ की चौड़ाई को एक चर में संग्रहित किया जाएगा, जिसे बुलाया जाता है textWidthऔर इसे div पर लागू किया जाएगा क्योंकि max-width.यह उपयोग करता है .getBoundingClientRect().width(क्योंकि यह फ्लोटिंग-पॉइंट मान लौटाता है)।

शेष divs के लिए, यह एक के calc()लिए बनाया गया है max-widthकि उन पर लागू किया जाएगा।
यह है: calc(100% - textWidth - extraScape)/(divsLength - 1)
गणना किए गए परिणाम की चौड़ाई है कि प्रत्येक शेष div होना चाहिए।

विस्तारित div पर क्लिक करते समय, अर्थात, सामान्य पर लौटने के लिए, डिफ़ॉल्ट max-widthको सभी .divतत्वों पर फिर से लागू किया जाता है ।

var expanded = false,
    divs = $(".div:not(:first-child)"),
    divsLength = divs.length,
    extraSpace = 39, //fixed width + border-right widths 
    defaultMaxWidth = "calc((100% - " + extraSpace + "px)/" + divsLength + ")";

    divs.css("max-width", defaultMaxWidth);

$(document).on("click", ".div:not(:first-child)", function (e) {
  var thisInd = $(this).index();

  if (expanded !== thisInd) {
    
    var textWidth = $(this).find('span')[0].getBoundingClientRect().width;  
    var restWidth = "calc((100% - " + textWidth + "px - " + extraSpace + "px)/" + (divsLength - 1) + ")";
    
    //fit clicked fluid div to its content and reset the other fluid divs 
    $(this).css({ "max-width": textWidth });
    $('.div').not(':first').not(this).css({ "max-width": restWidth });
    expanded = thisInd;
  } else {
    //reset all fluid divs
    $('.div').not(':first').css("max-width", defaultMaxWidth);
    expanded = false;
  }
});
.wrapper {
  overflow: hidden;
  width: 100%;
  margin-top: 20px;
  border: 1px solid black;
  display: flex;
  justify-content: flex-start;
}

.div {
  overflow: hidden;
  white-space: nowrap;
  border-right: 1px solid black;
  text-align:center;
}

.div:first-child {
  min-width: 36px;
  background: #999;
}

.div:not(:first-child) {
  flex: 1;
  transition: max-width 1s;
}

.div:not(:first-child) span {
  background: #ddd;
}

.div:last-child {
  border-right: 0;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>

Click on the div you want to fit/reset (except the first div)

<div class="wrapper">

  <div class="div"><span>Fixed</span></div>
  <div class="div"><span>Fluid (long long long long text)</span></div>
  <div class="div"><span>Fluid</span></div>
  <div class="div"><span>Fluid</span></div>

</div>

यह दृष्टिकोण गतिशील रूप से व्यवहार करता है और किसी भी संकल्प पर काम करना चाहिए।
केवल कठिन कोड के लिए आपको आवश्यक मान extraSpaceचर है।


1
हां, यह एक ऐसी समस्या है जिसके लिए सटीक गणना और फ्लेक्सबॉक्स सिकुड़ने के प्रभाव की अधिक समझ की आवश्यकता होती है। मेरे पास अभी तक एक "सही" समाधान नहीं है, लेकिन मैं भविष्य में फिर से कोशिश करना चाहूंगा, इसलिए मैंने आपके प्रश्न को दूसरी बार बुकमार्क करने का प्रयास किया ताकि यह पता चले कि यह कैसे करना है। यह एक अच्छी चुनौती है।
अज़मातज़ीन

1
सिर्फ FYI करें, मैंने कोड को संपादित किया क्योंकि यह पढ़ने और परीक्षण के लिए सरल है। मैंने स्पैन को जोड़ा जो एक अच्छा जोड़ है। मैंने अभी तक अधिकतम-चौड़ाई के बदलावों को नहीं जोड़ा है, लेकिन उन्होंने बहुत अच्छा काम नहीं किया।
बाचिर मेसौरी

1
ठंडा। मैंने अभी इसे हल किया है। मैं जवाब का संपादन कर रहा हूं।
अज़मातज़ीन

1
अच्छा! वैसे भी मैं कुछ घंटों के लिए बाहर हूँ, अपना समय ले लो ;-)
बाचिर मेसौरी

1
ऊह, मैंने अभी आपकी संपादित टिप्पणी देखी है (एक अद्यतन टिप्पणी की उम्मीद कर रहा था)। GetBoundingClientRect () का उपयोग बहुत ही चालाक है और यह मेरे लिए नहीं हुआ है (39 px निश्चित चौड़ाई को ध्यान में रखते हुए)। मैं यह देखने के लिए थोड़ा और परीक्षण करूंगा कि क्या यह किसी भी विंडोज साइज और किसी भी फ्लुइड डिव के लिए काम करता है। मैं तुम्हारे पास वापस मिलने आऊँगा। आपका बहुत बहुत धन्यवाद! पुनश्च: आपका समाधान jQuery 3.3.1 के साथ काम करता है, लेकिन 3.4.1 के साथ जो भी कारण हो।
बाचिर मेसौरी

3

आपको चौड़ाई या कैल्क कार्यों से निपटने की आवश्यकता है। Flexbox एक समाधान होगा।

सभी divs को समान बनाने के लिए (पहले एक नहीं) हम उपयोग करते हैं flex: 1 1 auto

<div class="wrapper">
  <div class="div"><span>Fixed</span></div>
  <div class="div"><span>Fluid (long long long long text)</span></div>
  <div class="div"><span>Fluid</span></div>
  <div class="div"><span>Fluid</span></div>
</div>

अपने सामान्य डिव और चयनित डिव के लिए फ्लेक्स नियमों को परिभाषित करें। transition: flex 1s;आपका दोस्त है। चयनित एक के लिए हमें फ्लेक्स बढ़ने की आवश्यकता नहीं है इसलिए हम उपयोग करते हैं flex: 0 0 auto;

.wrapper {
  width: 100%;
  margin-top: 20px;
  border: 1px solid black;
  display: flex;
}

.div {
  white-space: nowrap;
  border-right: 1px solid black;
  transition: flex 1s;
  flex: 1 1 auto;
}

.div.selected{
  flex: 0 0 auto;
}

.div:first-child {
  min-width: 50px;
  background: #999;
  text-align: center;
}

.div:not(:first-child) {
  text-align: center;
}

.div:last-child {
  border-right: 0px;
}

div:not(:first-child) span {
  background: #ddd;
}

जब उपयोगकर्ता किसी div पर क्लिक करता है तो हर बार चयनित वर्ग जोड़ें। आप दूसरे क्लिक के लिए टॉगल का भी उपयोग कर सकते हैं ताकि आप चयनित वस्तुओं को एक मानचित्र में सहेज सकें और आप कई चयनित आइटम दिखा सकें (इस कोड उदाहरण के साथ नहीं)।

$(document).on("click", ".div:not(:first-child)", function(e) {
  const expanded = $('.selected');
  $(this).addClass("selected");
  if (expanded) {
    expanded.removeClass("selected");
  }
});

https://jsfiddle.net/f3ao8xcj/


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

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

1
@ बच्चिरसौरी फिर से काफी सरल। कृपया अद्यतन संस्करण देखें।
तूफान

मुझे आपकी स्क्रिप्ट की लालित्य बहुत पसंद है लेकिन आपके समाधान केवल मेरे अनुरोध के कुछ हिस्सों पर विचार करते हैं। मेरा अनुरोध केवल सामग्री को फिट करने के बारे में नहीं है, यह तरल विभाजन पर क्लिक करने के दौरान और बाद में शेष स्थान को समान रूप से साझा करने के बारे में है। आपकी स्क्रिप्ट बहुत अच्छी तरह से संबोधित नहीं करती है, यदि बिल्कुल नहीं। और वह वही है जो पूरी चीज को ब्रेन बर्नर बनाता है। मैंने अपनी आवश्यकताओं को बहुत स्पष्ट करने के लिए मूल पोस्ट में एक चित्र जोड़ा। ऊपर की दूसरी स्क्रिप्ट ठीक उसी जगह शुरू होती है, जहां आपका उद्धार करने में विफल रहता है। यह अजीब लगता है कि आपकी दोनों लिपियों का मिश्रण काम कर सकता है। मैं परीक्षण कर रहा हूं और एक बार जब मैं आपके पास वापस आऊंगा
बाचिर मेसौरी

@BachirMessaouri आप यहां क्या याद कर रहे हैं, किसी को भी आपके मामले के लिए एक सही समाधान प्रदान करने की आवश्यकता नहीं है। Flex transition: Stretch (or shrink) to fit contentआपका प्रश्न शीर्षक है और यह उत्तर इसका सरल उदाहरण है कि इसे कैसे किया जाए। अपने मामले का हल ढूंढना आपकी जिम्मेदारी है।
तूफान

2

कुछ परीक्षण संस्करणों के बाद, यह मेरा सबसे छोटा और सबसे कठिन समाधान है।

सभी कि अनिवार्य रूप से की जरूरत है flexbox खिंचाव है किया जाना <div>डिफ़ॉल्ट रूप से अपनी सीमाओं को तत्व है, लेकिन जब <span>क्लिक किया, के खिंचाव में रोके <div>करने के लिए <span>चौड़ाई ...

छद्म कोड:

when <span> clicked and already toggled then <div> max-width = 100%, reset <span> toggle state

otherwise <div> max-width = <span> width, set <span> toggle state

मैंने सीएसएस को एक 'संबंधित तंत्र' और 'आई-कैंडी केवल' को आसान पढ़ने (और कोड पुनरावृत्ति) के लिए विभाजित किया है।

कोड पर भारी टिप्पणी की गई है, इसलिए यहां अधिक पाठ नहीं ...

क्वर्की किसी भी तरह से करने के लिए transitionस्विचन में एक अतिरिक्त देरी है । मैंने क्रोम, एज, IE11 और फ़ायरफ़ॉक्स (सभी W10) में इस व्यवहार की जाँच की है और सभी को यह विचित्र लगता है। या तो कुछ ब्राउज़र आंतरिक पुनर्गणना चल रही है, या शायद समय दो बार उपयोग किया जाता है ('ऐसा लगता है')। वाइस वर्सा, विचित्र रूप से पर्याप्त है, कोई अतिरिक्त देरी नहीं है।divmax-width: 100%max-width = span widthtransition

हालाँकि, थोड़े संक्रमण के समय के साथ (जैसे 150ms, जैसा कि मैं अभी उपयोग कर रहा हूं) यह अतिरिक्त देरी नहीं है / शायद ही ध्यान देने योग्य है। (एक और SO प्रश्न के लिए अच्छा ...)

अपडेट करें

नया संस्करण जो अन्य सभी को रीसेट करता है <div>। मैं वास्तव में छलांग से नफरत करता हूं, लेकिन यह फ्लेक्सबॉक्स स्ट्रेचिंग और transitionमूल्य के कारण है। बिना transitionजंप के दिखाई नहीं देता। आपको यह कोशिश करने की आवश्यकता है कि आपके लिए क्या काम करता है।

मैंने केवल document.querySelectorAll()जावास्क्रिप्ट कोड में जोड़ा ।


आपके प्रस्ताव के लिए बहुत-बहुत धन्यवाद। यह मेरी ज़रूरतों पर खरा नहीं उतरता (लेकिन यह एक बहुत ही अच्छा शुरुआती बिंदु है) जब हम एक द्रव div पर क्लिक करते हैं, तो यह ठीक बैठता है, लेकिन दो अन्य div शेष स्थान पर कब्जा करने के लिए समान रूप से विस्तार नहीं करते हैं। जो कि इश्यू का 50% है। और हाँ, यह विचित्रता भी है। अज़मेतज़िन की स्क्रिप्ट 100% काम करती है, जिसमें कोई क्विकनेस नहीं है। मैंने उसकी स्क्रिप्ट और फ्लेक्स ट्रांस्फ़ॉर्म दोनों को अधिकतम-चौड़ाई के बजाय मिलाना समाप्त कर दिया और यह एक आकर्षण की तरह काम करता है। मदद के लिए आपका बहुत बहुत धन्यवाद !
बशीर मेसौरी

@Azametzin की टिप्पणी को सुरक्षित करते हुए: इस गाथा में बहुत मजेदार दिन थे। :)। शायद अगली बार छवि से शुरू करें?
रेने वैन डेर लेंडे

ठीक है। मुझे लगा कि स्पष्टीकरण पर्याप्त था लेकिन जाहिर है, मैं गलत था। छवि हालांकि कल से है। लेकिन मुझे आपकी बात समझ आ गयी है। मैं मिनटों के मामले में अपनी कस्टम स्क्रिप्ट दिखाने के लिए अपने मूल संदेश को संपादित करूँगा। आपका बहुत बहुत धन्यवाद !
बशीर मेसौरी

कस्टम समाधान के साथ मूल पोस्ट अपडेट की गई!
बाचिर मेसौरी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.