Sto usando Dropzone.js per consentire agli utenti di caricare file sul server, in base alle specifiche è possibile modificare la larghezza dell'anteprima come mostrato di seguito, tuttavia voglio cambiare la larghezza al 100% invece di usare px, è possibile?
Perché se lo faccio
thumbnailWidth: 100%
non riconoscerà% char.
dzImageOptions = Dropzone.options.myDropzone = {
thumbnailWidth: 314, //I want to change width to 100% instead
thumbnailHeight: 314,
init: function (file) {
}
}
//Also have to change css or thumbnail won"t resize properly
.dropzone.song-image .dz-preview .dz-image {
border-radius: 1px;
width: 314px;
height: 314px;
}
<div class="dropzone song-image"></div>
risposte:
9 per risposta № 1Non è possibile specificare una percentuale su thumbnailWidth
e thumbnailHeight
. Dropzone usa questi valori per creare l'origine dell'immagine per mostrarla come anteprima.
Ma puoi lasciare la miniatura alla larghezza e all'altezza originale, impostando questi valori su null
(Si noti che questo può causare un po 'di ritardo con le immagini ad alta risoluzione) e quindi utilizzare il <img>
attributi di larghezza e altezza per visualizzare l'immagine con la dimensione desiderata e regolando la .dz-image
contenitore con css.
html:
<div class="dropzone" id="myDropzone"></div>
js:
Dropzone.autoDiscover = false;
Dropzone.options.myDropzone = {
url: "yourUrl",
thumbnailWidth: null,
thumbnailHeight: null,
init: function() {
this.on("thumbnail", function(file, dataUrl) {
$(".dz-image").last().find("img").attr({width: "100%", height: "100%"});
}),
this.on("success", function(file) {
$(".dz-image").css({"width":"100%", "height":"auto"});
})
}
};
var myDropzone = new Dropzone("div#myDropzone");
0 per risposta № 2
Avevo bisogno di realizzare miniature reattive condropzone e questo post hanno aiutato molto. Avevo anche bisogno di farlo senza jquery, quindi ecco cosa mi è venuto in mente. Ho pensato di condividere se aiuta qualcun altro.
La mia funzione di avvio di dropzone si presenta così:
init: function () {
this.on("thumbnail", function(file, dataUrl) {
var thumbs = document.querySelectorAll(".dz-image");
[].forEach.call(thumbs, function (thumb) {
var img = thumb.querySelector("img");
if (img) {
img.setAttribute("width", "100%");
img.setAttribute("height", "100%");
}
});
}),
this.on("success", function(file) {
var thumbs = document.querySelectorAll(".dz-image");
[].forEach.call(thumbs, function (thumb) {
thumb.style = "width: 100%; height: auto;";
});
})
}
Non sono un wizard javascript quindi probabilmente c'è un modo più efficiente o migliore per farlo. Per favore condividi!
-1 per risposta № 3
var myDropZone = jQuery("#file128_dropzone").get(0).dropzone;
myDropZone.options.thumbnailWidth = 250;
myDropZone.options.thumbnailHeight = 250;