• Hallo liebe Userinnen und User,

    nach bereits längeren Planungen und Vorbereitungen sind wir nun von vBulletin auf Xenforo umgestiegen. Die Umstellung musste leider aufgrund der Serverprobleme der letzten Tage notgedrungen vorverlegt werden. Das neue Forum ist soweit voll funktionsfähig, allerdings sind noch nicht alle der gewohnten Funktionen vorhanden. Nach Möglichkeit werden wir sie in den nächsten Wochen nachrüsten. Dafür sollte es nun einige der Probleme lösen, die wir in den letzten Tagen, Wochen und Monaten hatten. Auch der Server ist nun potenter als bei unserem alten Hoster, wodurch wir nun langfristig den Tank mit Bytes vollgetankt haben.

    Anfangs mag die neue Boardsoftware etwas ungewohnt sein, aber man findet sich recht schnell ein. Wir wissen, dass ihr alle Gewohnheitstiere seid, aber gebt dem neuen Board eine Chance.
    Sollte etwas der neuen oder auch gewohnten Funktionen unklar sein, könnt ihr den "Wo issn da der Button zu"-Thread im Feedback nutzen. Bugs meldet ihr bitte im Bugtracker, es wird sicher welche geben die uns noch nicht aufgefallen sind. Ich werde das dann versuchen, halbwegs im Startbeitrag übersichtlich zu halten, was an Arbeit noch aussteht.

    Neu ist, dass die Boardsoftware deutlich besser für Mobiltelefone und diverse Endgeräte geeignet ist und nun auch im mobilen Style alle Funktionen verfügbar sind. Am Desktop findet ihr oben rechts sowohl den Umschalter zwischen hellem und dunklem Style. Am Handy ist der Hell-/Dunkelschalter am Ende der Seite. Damit sollte zukünftig jeder sein Board so konfigurieren können, wie es ihm am liebsten ist.


    Die restlichen Funktionen sollten eigentlich soweit wie gewohnt funktionieren. Einfach mal ein wenig damit spielen oder bei Unklarheiten im Thread nachfragen. Viel Spaß im ngb 2.0.

[JS] Contenteditable = true

Fluffy_Unicorn

Met-Brauer

Registriert
8 Aug. 2013
Beiträge
1.026
Ort
47.07°N / 7.85°O
Hallo Leute,

Ich habe ein Div-Element, wo ich das Attribut contenteditable auf true gesetzt habe.
So habe ich auf meiner Seite einen kleinen, simplen Editor gebaut.

Nun kann ich natürlich auch Bilder(gallerien) einfügen und diese beliebig skalieren. Das Problem dabei ist, dass sich das Bild strecken lässt, und dies möchte ich verhindern.
Ich möchte also eine Funktion bauen, die die Bildverhältnisse bei einer Skalierung beibehält. Dabei fehlt mir aber der komplette Ansatz dafür.

Vielleicht hat jemand von euch schon einmal so etwas gemacht oder hat einen Lösungsvorschlag dafür?

Solltet ihr Codeausschnitte benötigen, stelle ich diese gerne zur Verfügung. Wird aber wohl nicht nötig sein.

Gruss,
Fluffy_Unicorn



Edit: Falscher Bereich, danke fürs verschieben ;)
 
Zuletzt bearbeitet:

theSplit

1998
Veteran Barkeeper

Registriert
3 Aug. 2014
Beiträge
28.627
Hallo!

Ich würde es spontan lösen:
Gehen wir mal von einem Bild in 1024 x 768 Pixeln aus.

Breite durch Höhe teilen:
1024/768 = 1.333

Höhe durch Breite teilen:
768/1024 = 0.75

Nun diese Proportionen in je einer Variable speichern.

Jetzt beim ersten MouseDown(nicht "clicked") eine Variable setzen "mouseIsPressed = true".
Mit MouseUp Listener dann die Variable "mouseIsPressed = false" setzen.

Dazu einen "MouseMove" Event Listener setzen der überwacht ob "mouseIsPressed" wahr ist und dann wie folgt an dem Bild operierten.

Wie das Bild nun skalieren, vielleicht so:
Sagen wir die Maus wird auf 110 x 190 bewegt, jetzt können wir die Bildproportionen so berechnen:

Wenn die Höhe bevorzugt wird:
Neue Breite: 190 * 1.333 = Math.round(253.27) = 253;
Höhe = 190;

Wenn die Breite bevorzugt wird (liegt näher):
Breite = 110;
Neue Höhe: 110 * 0.75 = Math.round(82.5) = 83;


Was natürlich nicht ideal ist, die Skalierungen wird nicht dem Maus-Cursor folgen.
 

Fluffy_Unicorn

Met-Brauer

Registriert
8 Aug. 2013
Beiträge
1.026
Ort
47.07°N / 7.85°O
  • Thread Starter Thread Starter
  • #3
Danke für deine Antwort, werde dies bei Gelegenheit ausprobieren. Klingt aber schonmal plausibel für mich.

Wäre schon gut wenn die Skalierung dem Cursor folgt, aber dies werde ich ausprobieren.
 

Jester

★★★★☆ (Kasparski)

Registriert
1 Dez. 2014
Beiträge
6.066
Ort
Code Azure
Ein kleiner Tipp dazu: sobald das Resizen losgeht, solltest Du eventuell vorhandene Inline-Styles (height, width) der Bilder per JS entfernen :)

J.
 
Oben