« Input box con lista di elementi facebook-stile »

29 settembre 2010 @ 21:37

L’altro giorno pensavo che mi sarebbe stato utile un input box che permettesse di inserire una lista di elementi, più o meno come quello che usa facebook per i destinatari dei messaggi privati:

All’inizio pensavo sarebbe stato un macello immane programmare una cosa del genere, ma ho avuto un’illuminazione  improvvisa che mi ha fatto capire come in realtà sia discretamente facile.

Non capivo come facesse FB a fare una input box  che contenesse elementi complessi. La risposta è semplice: la casella A: non è un input box ma un div mascherato da input box, invece la casella Oggetto: è una vera input box.
Per ottenere l’effetto è sufficiente settare bordi e dimensioni in modo che siano uguali per i due tipi di elementi, così da farli diventare indistinguibili.

L’unico mistero rimanente è come far si che la finta input box  mantenga la possibilità di accettare testo in ingresso. La risposta è abbastanza facile: l’ultimo elemento all’interno del div è una vera input box, fatta “scomparire alla vista” togliendogli i bordi.
Detta così sembra complicata, ma  basta dare un occhiata allo schema per capire che in realtà è molto semplice:

La textbox finale c’è ma non si vede, perché non ha i bordi. Ho fatto un concept-proof in poco meno di un’ora.

5 commenti a “Input box con lista di elementi facebook-stile”

  1. Gilthas ha detto:
    30 settembre 2010 alle 08:23

    vuoi candidarti come miglior blog tecnico ai prossimi Macchianera Blog Awards? ;-P
    (bella spiega, magari prima o poi la metterò in pratica)

  2. Krapp ha detto:
    30 settembre 2010 alle 14:48

    Gerry, vuoi farti assumere nel team di sviluppo di Oracle Webcenter? Magari prima o poi avrà un’interfaccia ajax decente 😀

  3. Krapp ha detto:
    30 settembre 2010 alle 14:49

    Ma dimmi una cosa, l’illuminazione ti è venuta cercando di decodificare l’html/javascript o solo pensandoci su?
    Nel secondo caso, massimo rispetto!

  4. Gerry ha detto:
    30 settembre 2010 alle 16:42

    Pensandoci su, ma in questo momento sono molto “sul pezzo” per quanto riguarda ajax e jQuery.

  5. Draga mail (nella nuvola) - Gerry's blog - Tech, Trips, Anime & clouds ha detto:
    14 giugno 2011 alle 23:26

    […] Ho già detto di quell’idea, se vi interessa potete leggere l’articolo. […]

Lascia un commento