Generieren Sie ein dynamisches Bildraster: vue.js-Nutzungshandbuch
<p><pre class="brush:php;toolbar:false;"><template>
<q-page class="page bg-brown-2 q-pa-lg">
<div v-for="x in 15" :key="x" class="line flex flex-center row">
<div v-for="y in 24" :key="y"
<q-img :src="require('../assets/Pictures/' + getImageId(x,y) + '.png')"></q-img>
</div>
</div>
</q-page>
</template>
<script>
Standard exportieren ({
Name: 'BigPicturePage',
Methoden: {
getImageId(row, col) {
let picture_id = 359 - ((row - 1) * 24) + (col - 1)
Bild_ID zurückgeben
},
}
})
</script></pre>
<p>Ich möchte also in vue.js ein Bildraster eines großen Bildes erstellen, das aus vielen kleinen Bildern derselben Größe besteht. Zuerst verwende ich eine V-for-Schleife, um die Zeilen zu durchlaufen und 15 davon zu erstellen (das gesamte Bild besteht aus 15 x 24 Bildern), während ich zum Durchlaufen einen x-Zähler verwende. Intern verwende ich ein weiteres V-for, um die 24 Spalten jeder Zeile zu füllen. Wenn ich in der URL nur y als Zahl eingebe, wird dieselbe Zeile 15 Mal gerendert, aber es funktioniert. Wenn ich versuche, eine einfache Funktion getImageId(rows, columns) zu verwenden, wird nichts gerendert und die gesamte Website ist leer. Die Berechnung der Bild-ID basiert auf einer Zählung von 0-359, aber um die richtige Anordnung der Bilder zu erhalten, habe ich die umgekehrte Berechnung durchgeführt. Ich habe die Anzahl der Zeilen von 359 minus 1 subtrahiert, da ich festgestellt habe, dass der Bereich bei 1 beginnt, und mit 24 multipliziert, um den Startindex jeder Zeile zu erhalten. Danach füge ich den aktuellen Spaltenindex zum Zähler hinzu und verringere ihn von Zeile zu Spalte von 359 auf 0. Ich schätze, das Problem liegt in meiner Verwendung der Vue-Syntax und -Struktur, da ich damit nicht sehr vertraut bin. Jede Hilfe ist willkommen. </p>