Προς το περιεχόμενο

Jquery .hide() vs CSS display:none;


Προτεινόμενες αναρτήσεις

Δημοσ. (επεξεργασμένο)

Εφτιαξα ενα test case εδώ: https://jsfiddle.net/#&togetherjs=OJ7c0T7BIT

Αυτο που κανει η jQuery και άλλες library και το βρίσκει ειναι να το κανει καπου visible να παρει τα height-width και να το ξανα κρυψει. Υπαρχουν αρκετα topics στο internet σχετικα με το visibility hidden & height - width.

Επεξ/σία από lionheart82
Δημοσ.

Αυτό είναι καινούργιο? γιατί θυμάμαι ότι πολλές φορές που ήθελα να μετρήσω διαστάσεις κρυμμένων div ότι έπρεπε να εμφανίσω να μετρήσω και μετά να κρύψω πάλι.

Δημοσ.

Αυτό είναι καινούργιο? γιατί θυμάμαι ότι πολλές φορές που ήθελα να μετρήσω διαστάσεις κρυμμένων div ότι έπρεπε να εμφανίσω να μετρήσω και μετά να κρύψω πάλι.

 

Ενα div οτι και να εχει σαν εμφανιση display, visible, opacity, αν εχει width/height τοτε θα περασει τις τιμες αυτες κανονικα. Ολα αυτα ειναι values οποτε ασχετα με το αν εμφανιζεται στο browser υπαρχει μεσα στο DOM και ετσι μπορεις να "τραβηξεις" το width/height τους. 

 

Κανω λαθος;

Δημοσ.

Ενα div οτι και να εχει σαν εμφανιση display, visible, opacity, αν εχει width/height τοτε θα περασει τις τιμες αυτες κανονικα. Ολα αυτα ειναι values οποτε ασχετα με το αν εμφανιζεται στο browser υπαρχει μεσα στο DOM και ετσι μπορεις να "τραβηξεις" το width/height τους. 

 

Κανω λαθος;

Μάλλον μπερδέψαμε το display:none; με το visibility:hidden;

Προσωπικά ξέρω πως αν κάτι είναι display:none; δεν έχει ύψος και πλάτος μέχρι να εμφανιστεί.

Αντίθετα το visibility:hidden κρατάει τις διαστάσεις του div απλά δεν φαίνεται(σαν το opacity:0;)

 

Αυτό που λέω εγώ είναι για το display:none;

Δημοσ.

Εξαρταται. Αν τραβηξεις την τιμη μεσα απο CSS και οχι με calculation τοτε θα σου την εμφανισει, μιας και το div εχει την τιμη width ειτε το εχεις visibility:hidden ειτε το εχεις display none.

 

Αν παρεις με αλλο τροπο το πλατος του div τοτε ναι δε θα σου επιστρεψει τιμη.

Δημοσ.

Αυτό είναι καινούργιο? γιατί θυμάμαι ότι πολλές φορές που ήθελα να μετρήσω διαστάσεις κρυμμένων div ότι έπρεπε να εμφανίσω να μετρήσω και μετά να κρύψω πάλι.

 

Ισχύει αυτό που λες, τουλάχιστον με vanilla js αλλά το jquery αν είναι  hidden, το κάνει inline και το μετράει, από ότι φαίνεται τουλάχιστον.

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...