2010-07-21 3 views

Répondre

1

La façon dont cela se fait habituellement est de rendre l'élément d'entrée de fichier 100% transparent avec la propriété css opacity et de placer un joli bouton derrière. De cette façon, le champ de fichier reçoit toujours le clic, mais l'aspect de l'élément sous-jacent peut être stylé et scripté comme vous le souhaitez.

+0

Est-il nécessaire pour moi d'utiliser JavaScript ou HTML et CSS serait suffisant? – vlevsha

+0

Tout fonctionne. Je vous remercie! – vlevsha

0

Les boutons de fichier sont un mal de tête majeur. J'utiliserais personnellement http://swfupload.org/

+0

Flash est impliqué avec SWFUpload. Cela ne va-t-il pas empêcher le bouton d'être vu sur l'iPhone/iPad? – vlevsha

+0

Comment allez-vous rechercher et sélectionner les fichiers à télécharger à partir de votre iPhone/iPad? – Casey

+0

Juste question. :) – vlevsha

0

J'aime cette approche KISS, comme d'habitude. Cela a fonctionné pour moi en chrome et Firefox.

HTML:

<div class="form-group"> 
    <label>Cover Image:</label> 
    <div id="uploadLabelDiv" class="fade"> 
     <p>Change cover image</p> 
     <label for="upload"> 
       <img [src]="project.cover" class="img-responsive" id="coverImage" /> 
      </label> 
     </div> 
</div> 
<input type="file" id="upload" (change)="fileuploaded($event)" style="visibility:hidden;" /> 

CSS:

#uploadLabelDiv { 
    position: relative; 
    max-width: 400px; 
    background: transparent; 
    color: #fff; 
    transition: all 0.3s; 
} 

.fade { 
    opacity: 1; 
} 

.fade:hover > label { 
    opacity: 0.4; 
} 

.fade > p { 
    opacity: 0; 
    transition: none; 
} 

.fade:hover > p { 
    opacity: 1; 
    transition: all 0.3s; 
} 

p { 
    position: absolute; 
    top: calc(50% - 30px); 
    left: calc(50% - 60px); 
    color: black; 
    font: bold; 
} 

les classes manquantes sont bootstrap.

Questions connexes