Wie es der Auftragsteller schon schreibt: Es gibt bereits ein paar Fertigsysteme, mit denen es relativ leicht fallen sollte, einen Online-Shop zu erstellen. Ein paar Beispiele dafür wären Prestashop, Shopify oder WordPress mit WooCommerce. Du kannst aber bei eigener Recherche noch etliche andere Alternativen finden.

Wähle am besten einen Hosted Service (SaaS). D.h. ein/der Dienstleister übernimmt für dich das technische Setup der Webanwendung mitsamt des darunterliegenden Systems (Hardware, etc.) und auch deren hauptsächliche Wartung. Du brauchst dich wiederum nur noch mit dem Erstellen deiner Inhalte befassen und eine passende Domain mieten.

Schau für Letztgenanntes zuerst, was der von dir gewählte Dienstleister so alles bietet. Manchmal gehört das Reservieren einer eigenen Domain ebenso zum Repertoire. Ansonsten sind Provider wie Gandi, GoDaddy, IONOS, OVHcloud eine passende Anlaufstelle. Wie man anschließend die gebuchte Domain an die Webanwendung bindet, kannst du in der Regel im FAQ/der Dokumentation des Hosters nachlesen.

Bevor du mit alldem beginnst, würde ich dir allerdings empfehlen, erst deine Produktidee / das Konzept deiner Dienstleistung auszuarbeiten.

Des Weiteren solltest du folgende Punkte berücksichtigen:

  • Du solltest bei so einer öffentlich zugänglichen Testseite eindeutig kennzeichnen, dass die von dir angepreisten Dienstleistungen/Produkte nicht wirklich kaufbar sind.
  • Du brauchst ein Impressum, ein AGB und (beim Erfassen von Nutzerdaten) eine Datenschutzerklärung.
  • Mit großer Wahrscheinlichkeit nutzt die Webanwendung Cookies. Also brauchst du auch einen Hinweis für den Nutzer, dass die Anwendung Cookies anlegt und es muss ihm möglich sein, dem vorzeitig zu widerrufen. Schau auch hier erst wieder in das FAQ/die Dokumentation des von dir gewählten Anbieters, denn es kann sein, dass er hierfür schon Lösungen anbietet. Ansonsten müsstest du schauen, wie du einen externen Anbieter (Consent Manager, OneTrust, TinyCookie, u.ä. - er muss DSVGO-konform sein) in die Webanwendung integrieren kannst.
  • Ab dem 28. Juni gilt das BFSG. B2C-Produkte/Dienstleistungen müssen Barrierefreiheit nach WCAG Level AA garantieren. Solltest du also vorhaben, einen Shop nach diesem Datum betreiben zu wollen, solltest du besser von Anfang an klären, ob der von dir gewählte Dienstleister von seiner Seite aus die Vorgaben bereits erfüllt oder spätestens dann erfüllen kann. Ebenso musst du selbst die Richtlinien beim Anlegen deiner Inhalte berücksichtigen. Die Umsetzung von Barrierefreiheit erfolgt nicht nur auf technischer Ebene.
...zur Antwort

Für deinen Anwendungsfall würde wohl ein Toast ausreichen. Den kannst du auch direkt in der onCreate-Methode deiner Start-Activity aufrufen.

Toast.makeText(this, "Hello world!", Toast.LENGTH_LONG).show()

Die Nachricht wird dann für ungefähr drei Sekunden angezeigt.

Ansonsten kannst du ebenso einen AlertDialog.Builder verwenden. Der erfordert eine explizite Nutzeraktion, um wieder geschlossen zu werden.

AlertDialog
  .Builder(this)
  .setTitle("Some message")
  .setMessage("Hello world!")
  .setPositiveButton("OK") { dialog, _ -> dialog.dismiss() }
  .show()
...zur Antwort

Das ist eine Funktion aus dem Minecraft Development-Plugin für IntelliJ IDEA. Es bietet dir expliziten Support zu den Mixins, wie sie vom Mixin-Framework implementiert werden. Das heißt, wenn du solche Mixins nutzt, kann das Programm dir Codevorschläge, Fehlerprüfungen, u.ä. dazu anbieten.

Unter Mixins selbst versteht man einen Mechanismus (bzw. ein Pattern), der es/welches dir erlaubt, bestehenden Code während der Laufzeit zu modifizieren. So könnte man beispielsweise noch nachträglich Klassen um neue Verhaltensweisen erweitern.

In Java würde man so etwas mit Annotationen und Reflection lösen. Das oben erwähnte Mixin-Framework implementiert den Grundmechanismus bereits vor, sodass du nur noch vorgegebene Annotationen benutzen musst.

Bei einer einfachen Klasse wie dieser:

public class Disco {
  private List<Person> guests = new ArrayList<>();

  public void letIn(Person person) {
    guests.add(person);
  }
}

könnte eine Erweiterung, die noch eine zusätzliche Prüfung ergänzen soll, in etwa so aussehen:

@Mixin(Disco.class)
public class DiscoMixin {
  @Inject(method = "letIn", at = @At("HEAD"), cancellable = true)
  public void onLetIn(Person person, CallbackInfo info) {
    if (person.getAge() <= 18) {
      info.cancel();
    }
  }
}

Die hier definierte Methode wird vor den Aufruf von letIn aus dem Originalprogramm angehängt. Wenn die Prüfung fehlschlägt (also eine eintrudelnde Person jünger als 18 Jahre ist), wird die letIn-Methode erst gar nicht aufgerufen.

Mixins können zwar ein paar Vorteile liefern (z.B. mehr Flexibilität beim Arbeiten mit externen Programmbibliotheken, modulare Entwicklung), aber bergen ebenso Fehlerrisiken (bspw. Konfliktpotenzial, wenn sich mehrere Mixins aus verschiedenen Programmteilen an die gleichen Methoden hängen oder Codefehler, die sich anders als gewohnt erst zur Laufzeit bemerkbar machen). Umso mehr Mixins man in einem Projekt nutzt, umso schwieriger kann es später werden, bestimmte Programmabläufe noch leicht nachvollziehen zu können.

...zur Antwort

Du kannst selbst frei entscheiden, ob du nur eines von beiden oder beides zusammen in deinen Projekten verwenden möchtest. Wobei man dazusagen muss, dass sich ein Blueprints-only-Projekt nur dann lohnt, wenn das Projekt recht klein und einfach in seiner Komplexität ist (z.B. Walking Simulators, Endless Runners, Arcade-Games). Mit zunehmender Größe werden Blueprints unübersichtlich und außerdem hat man nicht so viele Optimierungsmöglichkeiten/Freiheiten, wie mit C++.

Bei komplexeren Projekten kann es vorteilhaft sein, einen Mix zu verwenden, wobei C++ vorrangig für die Basisentwicklung wiederverwendbarer Kernfunktionalitäten genutzt werden würde (z.B. Entwicklung eines Kampfsystems, eines Fähigkeitssystems, eines Inventars und Itemsystems, eines prozedualen Algorithmus zur Erstellung einer Map, o.ä.) und Blueprints für die Formulierung einfacherer, spezifischer Spiellogiken, die auf den C++-Implementationen aufbauen. So nutzt man C++ schlussendlich nur da, wo es wirklich notwendig ist.

...zur Antwort

Ich würde dir aus mehreren Gründen Laravel empfehlen.

  1. Zu diesem Framework findest du deutlich besseren Support. Die Community hinter Laravel ist größer. Es gibt dementsprechend mehr Lernquellen (Tutorials, Onlinekurse, Bücher, u.ä.) und mehr Erweiterungen.
  2. Laravel verfolgt mehr das convention-over-configuration-Prinzip, was es unter anderem auch einfacher macht, Webprojekte zu verwalten. Yii hingegen setzt viel auf Konfigurationsdateien (und zusätzlich Konventionen) und macht die Entwicklung somit komplexer.
  3. Laravel wird (bzgl. seiner Major-Versionen) aktiver bzw. schneller weiterentwickelt als Yii. Der derzeitige Release-Zyklus liegt bei einem Jahr und zusätzlich gibt es Versionen mit Langzeitsupport. Im Vergleich dazu wird an Yii3 nun schon seit ungefähr sieben Jahren gearbeitet. Die Subreleases von Yii2 beinhalten vorwiegend Bugfixes.
  4. Laravel bietet mehr Features (DI, Event Broadcasting, integrierte Template-Engine, Eloquent ORM) und eine modernere Architektur, die besser auf neue PHP-Versionen abgestimmt ist. Bei Yii2 findet man noch einige alte, ungünstige Ansätze/Technologien (z.B. viele statische Aufrufe, Magic Arrays, Vererbung statt Komposition, Standardkonfiguration für Bower und jQuery).
  5. In der Geschäftswelt wirst du öfter auf Laravel stoßen. Yii kann man zwar ebenso noch antreffen, doch das ist tendentiell eher bei Legacy-Projekten der Fall.
...zur Antwort

Du kannst dir Panda3D oder die FLAX Engine anschauen. Die erstgenannte Engine hat im ungefähren Vergleich eine etwas größere Community und meines Erachtens auch eine deutlich bessere (C++-)Dokumentation. FLAX hingegen ist technisch moderner angelegt (sie wurde halt auch 2020 erstmals veröffentlicht) und enthält auch einen eingebauten Scene-Editor.

...zur Antwort

Schau einmal unter Windows > Preferences > Oomph > Setup Tasks > Preference Recorder, ob du irgendwann versehentlich ein ständiges Zurücksetzen der Einstellung aktiviert hast. Ebenso findest du unter Navigate > Open Setup > User noch einmal die aktuell eingestellten Tasks bezüglich der automatischen Änderung deiner Einstellungen.

...zur Antwort

Lade das Bild erst in eine BufferedImage-Instanz. Danach kannst du es mit der drawImage-Methode zeichnen.

Beispiel:

class SomeComponent extends JPanel {
  private BufferedImage image;
  private AffineTransform transform;

  public SomeComponent() {
    try {
      image = ImageIO.read(getClass().getClassLoader().getResourceAsStream("resource path to image"));
    }
    catch (IOException ex) {
      // handle exception ...
    }

    transform = new AffineTransform();
    transform.translate(0, 0); // location where to draw
    // set transformations, if necessary ...
  }

  @Override
  public void paintComponent(Graphics graphics) {
    var graphics2d = (Graphics2D) graphics;

    if (image != null) {
      graphics2d.drawImage(image, transform, null);
    }
  }
}

Falls dir getResourceAsStream noch unbekannt sein sollte, lies diesen Artikel von Mkyong.

...zur Antwort

Nein, als explizit schwer würde ich es nicht bezeichnen.

Es setzt bezogen auf das Skripting allerdings voraus, dass du mit den C#-Grundlagen (wozu auch die OOP gehört) wenigstens schon halbwegs sicher zugange bist.

Des Weiteren sind Englischkenntnisse von Vorteil, da die meisten empfehlenswerten Lernquellen englischsprachig sind.

Je nachdem, was du dir später als Projekt vornimmst, ist es außerdem günstig, wenn man schon ein paar Algorithmen oder Datenstrukturen kennt (z.B. verschiedene Tree-Arten, Binary Heap, Hashtables, Suchalgorithmen wie A*, Alpha-Beta-Suche; Dijkstra, ...).

Bezüglich eines Einstiegs in Unity sollte die offizielle Webseite die erste Anlaufstelle sein. Im Hauptmenü findest du unter anderem Verweise auf die Dokumentation und Lernplattform.

Auf YouTube kannst du zudem auf die Kanäle von Brackeys, Code Monkey und Dapper Dino schauen.

Ist Unity (...) für (...) software mit GUI (...)

Unity ist eine Game Engine, also auch explizit für die Spieleentwicklung konzipiert. Wenn du eine Anwendung mit grafischer Oberfläche, aber kein Spiel entwickeln möchtest, wäre es auch ratsam, stattdessen ein dafür passendes GUI-Toolkit zu verwenden. Zum einen erspart es dem späteren Produkt an Overhead, der durch die Engine kommt und zum anderen hast du es in der Entwicklung leichter, wenn das Tool, mit dem du arbeitest, für deinen Anwendungsfall besser ausgerichtet ist.

Seitens C#/.NET könntest du mit WPF, MAUI oder Avalonia UI arbeiten.

...zur Antwort

Zu allen drei Sprachen gibt es gute Literatur:

  • C: Programmieren von Anfang an - H. Erlenkötter (das Buch ist zwar schon recht alt, aber dafür sehr gut für Einsteiger geschrieben)
  • C++: Schau nach Büchern von Breymann, Theis oder Will, die mindestens Version 17 behandelt und bestenfalls eine neuere (die letzte Version ist die 23)
  • C#: Schau nach Büchern von Kühnel oder Theis. Empfehlenswert ist auch Schrödinger programmiert C# von Wurm oder Head First C# von Stellman & Greene.

Online kannst du

  • für C++ auf Learn C++ schauen.
  • für C# gibt es Microsoft Learn.
  • Lernkurse auf Codecademy oder Hyperskill finden. Videokurse gibt es bei PluralSight oder Udemy. Auf dem YouTube-Account von Microsoft Developer ist außerdem noch ein Tutorial von Bob Tabor (C# Fundamentals for Beginners).

Entscheide dich für eine von den drei Sprachen und richte dir frühzeitig eine Entwicklungsumgebung ein, mit der du das, was du dir anliest, direkt ausprobieren kannst.

  • Für C/C++ würde ich dir den QtCreator empfehlen. Andernfalls eignen sich ebenso CLion, Visual Studio (vorrangig für C++) oder Eclipse CDT.
  • Für C# ist Visual Studio die beste Wahl oder Rider.

Nimm dir bei alldem Zeit und hetze nicht durch Themen. Generell wird allein das Lernen der ersten Grundlagen (Kontrollstrukturen, Arrays, ...) mehr als nur ein paar Wochen beanspruchen. Suche dir dementsprechend einfache Übungen für die Konsole heraus und plane nicht sofort große Projekte. Auf Seiten wie Edabit, Exercism oder w3resource sind ziemlich viele Übungsideen kategorisch aufgeführt.

...zur Antwort

Das ist ein bekanntes Problem, welches ab Version 2024.1.5 behoben sein sollte.

Andernfalls gibt es den Workaround, die asiatischen Sprachpakete zu deaktivieren. Öffne dafür erst die Einstellungen (Ctrl + Alt + S oder CMD + , bei macOS), suche nach plugins, wechsel dann oben auf den zweiten Tab (es gibt Marketplace und Installed) und schau dann in der Liste nach den Plugins für Chinesisch, Japanisch und Koreanisch. Sobald die Plugins deaktiviert sind, sollte die Anwendung einmal neugestartet werden.

...zur Antwort

Du brauchst eine Programmiersprache, mit der du die Backendanwendung schreiben kannst, die die Daten aus der Datenbank holt und dann in deine Webseite einsetzt. Da du PHP in den Tags hinzugefügt hast, gehe ich davon aus, dass du dich bereits für PHP entschieden hast. Es wäre andernfalls auch eine einfache Wahl, für die man zudem leicht einen passenden Webhoster findet. Ein erstes einfaches Tutorial findest du im Manual.

PHP bietet mehrere Schnittstellen für verschiedene DBMS (siehe hier). Für die Kommunikation mit einer MySQL-Datenbank kannst du beispielsweise die MySQLi-Schnittstelle von PHP nutzen. Sofern du dich noch nicht mit SQL befasst hast, findest du auf W3Schools ein Tutorial.

Bezüglich Webhosting-Dienstleistern kannst du bei lima-city oder freehostia schauen. Andernfalls gibt es verschiedene Provider, die eine kostenlose Probezeit bieten, was für dich wohl ebenso ausreichen dürfte.

...zur Antwort

Bei InnoDB handelt es sich um ein Speichersubsystem von MariaDB bzw. die eigentliche Speicher-/Datenbank-Engine, die für das Erstellen, Lesen, Löschen und Aktualisieren der Daten zuständig ist.

MariaDB bietet generell mehrere verschiedene Speichersubsysteme an (z.B. Aria, CSV, MERGE, MyISAM, Spider) und du kannst ebenso eigene Engines oder die externer Hersteller einsetzen.

Diese vorhandenen Engines unterscheiden sich darin, dass sie für verschiedene Anwendungsfälle/Szenarien ausgelegt sind. Dementsprechend speichern sie Daten auf jeweils andere Weise, sind bei Lese- oder Schreiboperationen unterschiedlich schnell und stellen unterschiedliche zusätzliche Funktionalitäten zur Verfügung. Letzeres unterscheidet die MariaDB-Engines übrigens von klassischen Datenbanksubspeichersystemen.

Um dazu einmal ein paar Beispiele anzuführen:

  • MyISAM ist vor allem für viele, schnelle Lesezugriffe konzipiert.
  • Die CSV-Engine speichert ihre Daten im CSV-Format.
  • InnoDB ermöglicht eine konfigurierbare Transaktionssicherheit beim Lesen und Schreiben. Das heißt, diese Operationen gewähren mehr Datensicherheit / Konsistenz.

MariaDB ist ein DBMS (Datenbankmanagementsystem) und als solches im Prinzip ein Wrapper für die tatsächliche Datenbank-Engine. Es stellt somit erst einmal die Schnittstelle, über die ein Anwender mit der inneren Engine kommunizieren kann. Dafür gibt es unter anderem implementiere Nutzerrollen, integrierte Zwischenspeicher, eine vorgesetzte Datenbanksprache (wie SQL), usw.. Konfigurationen gehören ebenso dazu.

...zur Antwort

Die Greenfoot API Referenz findest du hier.

Mit den Mathebefehlen beziehst du dich sicherlich auf die, die aus dem JDK kommen (Math-Klasse). Die Referenz zu der Version 21, die von der aktuellen Greenfoot-Version (3.9) genutzt wird, findest du hier.

...zur Antwort

Deine Dateien kannst du mit einem FTP-Client wie FileZilla hochladen. Im Hilfecenter von IONOS findest du mehrere Artikel, die erklären, wie es funktioniert.

Auch zum Verbinden einer Domain gibt es einen Leitfaden.

...zur Antwort

Ich denke nicht, dass du die Unterseite Forum brauchst, denn sie hat doch genau denselben Inhalt, wie die Startseite, was Nutzer verwirren dürfte. Oder gibt es da doch eine Relevanz?

Setze andernfalls einen canonical tag.

...zur Antwort

Ich würde für die Kommunikation die Methoden nutzen, die Fabric dir bietet.

Die RegistryByteBuf-Klasse hat eine writeMap- und eine readMap-Methode. Für den Wert eines jeden Eintrags würde ich an deiner Stelle schauen, ob eine AbstractPatternGenerator-Instanz zu einem JSON-String serialisiert werden kann.

Dafür kannst du beispielsweise GSON nutzen. Achte darauf, möglichst nur die wichtigsten Informationen zu inkludieren, die sich die Gegenseite nicht selbst zusammenstellen kann.

Das Schreiben könnte dann ungefähr so aussehen:

val baseBuffer = PacketByteBuf(Unpooled.buffer())
val payload = RegistryByteBuf(baseBuffer, player.world.registryManager)
val data = // get map as Map<Int, String> ...
payload.writeMap(data, PacketByteBuf::writeInt, PacketByteBuf::writeString) 

Und das Lesen so:

val receivedData = RegistryByteBuf(payload, client.world!!.registryManager)
val data = receivedData.readMap({ iterator.readInt() }, { iterator.readString(32767) })
...zur Antwort

1) Hier:

if (geschlecht == 1) {
  double r = verteilungsfaktorM;
}

legst du eine neue lokale Variable r an, die nur innerhalb des if-Körpers existiert. Nachdem der Programmfluss diesen Körper durchlaufen hat, wird die Variable schon wieder gelöscht.

Du wolltest sicherlich das Feld r definieren.

r = verteilungsfaktorM;

2) Wenn der Nutzer exakt 13 Jahre alt ist, wird für ihn der gleiche Verteilungsfaktor verwendet, wie für alle Nutzer über 18.

3) Du solltest bessere, aussagekräftigere Namen für deine Variablen finden und auf magic numbers verzichten. Es ist zum Beispiel nicht sofort ersichtlich, wieso du mit Zahlen wie 0.05 oder 0.8 multiplizierst. Verwende an der Stelle dann doch Konstanten oder benenne wenigstens die Variable, die das Ergebnis erhält, entsprechend (z.B. alkoholmengeInGramm).

4) Deine Berechnung ist unvollständig, denn du subtrahierst nicht das Produkt aus vergangener Zeit (seit Trinkbeginn) und stündlichen Abbaus (~0.1) von deinem.

5) Ich würde das Ergebnis nicht durch eine Rundung verfälschen. Nutze doch einfach einen Formatter, um den Wert auf beispielsweise zwei Nachkommastellen zu kürzen.

System.out.printf("Ihr Alkoholwert beträgt %.2f%n", promille);
...zur Antwort
Custom Cursor wird nicht angezeigt?

Die Programmierung von meiner Bildergalerie (Slider) hat mir ein paar Schwiergkeiten bereitet...schlussendlich habe ich chatgpt gefragt und der hat mir direkt einen Code ausgespuckt- der funktioniert auch soweit so gut allerdings werden die Mouse-Cursor immer noch nicht richtig angezeigt. Eigentlich sollten diese eigene Bilder anzeigen, je nachdem über welche seite des Bildes man sich bewegt. Weiß jemand wie/ob man so etwas programmieren kann bzw. wo mein Fehler liegen könnte?

- Die Bilder liegen aufjeden Fall im selben Ordner wie index2.html

Hier der vollständige Code:

<!DOCTYPE html>

<html lang="de">

<head>

 <meta charset="UTF-8">

 <meta name="viewport" content="width=device-width, initial-scale=1.0">

 <title>Bild-Slider mit benutzerdefiniertem Cursor</title>

 <style>

  body {

   font-family: Arial, sans-serif;

   display: flex;

   justify-content: center;

   align-items: center;

   height: 100vh;

   margin: 0;

   background-color: #f0f0f0;

  }

  .slider-container {

   position: relative;

   width: 500px;

   height: 300px;

   overflow: hidden;

   border: 2px solid #ccc;

   border-radius: 10px;

  }

  .slider-images {

   display: flex;

   transition: transform 0.5s ease-in-out;

  }

  .slider-images img {

   width: 100%;

   height: 100%;

   object-fit: cover;

  }

  /* Unsichtbare, transparente Boxen für Cursorsteuerung */

  .slider-nav {

   position: absolute;

   top: 0;

   width: 20%; /* Nur ein schmaler Bereich am linken und rechten Rand */

   height: 100%;

   background-color: transparent;

   z-index: 2;

  }

  /* Linke Box: Cursor ändert sich beim Hover */

  .slider-nav.left {

   left: 0;

   cursor: url('pfeillinks.png') 22 22, auto; /* Benutzerdefinierter Cursor (Hotspot bei 22px, 22px) */

  }

  /* Rechte Box: Cursor ändert sich beim Hover */

  .slider-nav.right {

   right: 0;

   cursor: url('pfeilrechts.png') 22 22, auto; /* Benutzerdefinierter Cursor (Hotspot bei 22px, 22px) */

  }

  /* Hover-Effekt: Cursor als Pointer, wenn er über den Boxen schwebt */

  .slider-nav.left:hover {

   cursor: url('pfeillinks.png') 22 22, pointer; /* Benutzerdefinierter Cursor (Hotspot bei 22px, 22px) */

  }

  .slider-nav.right:hover {

   cursor: url('pfeilrechts.png') 22 22, pointer; /* Benutzerdefinierter Cursor (Hotspot bei 22px, 22px) */

  }

 </style>

</head>

<body>

<div class="slider-container">

 <div class="slider-images">

  <img src="https://via.placeholder.com/500x300/FF5733" alt="Bild 1">

  <img src="https://via.placeholder.com/500x300/33C4FF" alt="Bild 2">

  <img src="https://via.placeholder.com/500x300/75FF33" alt="Bild 3">

 </div>

 <!-- Unsichtbare Boxen für die Linke und Rechte Navigation -->

 <div class="slider-nav left" onclick="changeSlide('prev')"></div>

 <div class="slider-nav right" onclick="changeSlide('next')"></div>

</div>

<script>

 let currentIndex = 0;

 const images = document.querySelectorAll('.slider-images img');

 const totalImages = images.length;

 function changeSlide(direction) {

  if (direction === 'next') {

   currentIndex = (currentIndex + 1) % totalImages;

  } else if (direction === 'prev') {

   currentIndex = (currentIndex - 1 + totalImages) % totalImages;

  }

  const sliderImages = document.querySelector('.slider-images');

  sliderImages.style.transform = `translateX(-${currentIndex * 100}%)`;

 }

</script>

</body>

</html>

Ich bin jedem der sich mit dem Problem beschäftigt dankbar! (:

...zum Beitrag
Weiß jemand wie/ob man so etwas programmieren kann bzw. wo mein Fehler liegen könnte?

Prüfe deine Cursor-Bilder nochmal auf bestimmte Kriterien:

  • Die Bildgröße sollte je Dimension nicht über 32px gehen, andernfalls kann es sein, dass der User Agent das Bild von sich aus blockt
  • Die angegebene Pfadangabe; ob das Bild generell vom Browser geladen werden kann, solltest du in den Entwicklertools deines Browsers sehen. Schau im Konsolentab, nach entsprechenden Fehlermeldungen oder über den Netzwerktab, welche Bildanfragen nicht erfolgreich sind
  • Den Bildtyp; Lade das Bild am besten noch einmal in ein Bildbearbeitungsprogramm wie Gimp und speichere/exportiere es nochmal neu als PNG
Die Programmierung von meiner Bildergalerie (Slider) hat mir ein paar Schwiergkeiten bereitet (...)

Statt das Rad neu zu erfinden, kannst du auf vorgefertigte Bibliotheken zurückgreifen. Zum Beispiel Flickity, slick, Splide oder Tiny Slider.

...zur Antwort