Gut gemacht, JR!
Beiträge von Sempervivum
-
-
-
Gebaut nicht, aber das von CSS-Tricks läuft bei mir. Ich vermute, dieses Skript ist deshalb so kompliziert, weil nicht jeder Browser Drag&Drop unterstützt und man deshalb eine Rückfallebene eingebaut hat.
-
Ich bevorzuge ja das Flexlayout:
HTML
Alles anzeigen<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Test</title> </head> <body> <style> main { display: flex; flex-direction: row; width: 100vw; } .container.left { display: flex; flex: 1 1 33%; flex-direction: column; align-items: center; background-color: yellow; } .container.right { display: flex; flex: 1 1 66%; flex-direction: row; flex-wrap: wrap; align-content: flex-start; justify-content: center; background-color: lightgrey; } .box.left, .box.right { flex: 1 1 50%; display: flex; flex-direction: column; align-items: center; } .header1 { width: 80%; height: 30px; background-color: black; text-align: center; margin-left: 1.5%; border-radius: 15px; margin-top: 5px; font-size: 20px; color: white; } .button { width: 150px; height: 100px; background-color: white; margin-left: 5px; margin-top: 0px; margin-bottom: 5px; border-radius: 20px; text-align: center; font-size: 18px; opacity: 0.8; } @media only screen and (max-width: 550px) { .container.right, .container.left { flex: 1 1 50%; } .box.left, .box.right { flex: 1 1 100%; } } </style> <header class="allgemein">Intranet <a href="Intranet.html"> <div class="logo"></div> </a> <a href="Intranet.html"> <div class="exe"></div> </a> </header> <main> <div class="container left"> <div class="box left"> <p class="header1">Links</p> <div class="button"> <div class="header2">Konstruktions- richtlinien </div> <div class="datei-word"></div> </div> <div class="button">hallo</div> <div class="button">hallo</div> <div class="button">hallo</div> <div class="button">hallo</div> </div> <div class="box left"> <p class="header1">Links</p> <div class="button">hallo</div> <div class="button">hallo</div> <div class="button">hallo</div> </div> </div> <div class="container right"> <div class="box right"> <p class="header1">Links</p> <div class="button"> <div class="header2">Konstruktions- richtlinien </div> <div class="datei-ordner"></div> </div> <div class="button">hallo</div> <div class="button">hallo</div> </div> <div class="box right"> <p class="header1">Links</p> <div class="button"> <div class="header2">Konstruktions- richtlinien </div> <div class="datei-ordner"></div> </div> <div class="button">hallo</div> <div class="button">hallo</div> </div> <div class="box right"> <p class="header1">Links</p> <div class="button"> <div class="header2">Konstruktions- richtlinien </div> <div class="datei-ordner"></div> </div> <div class="button">hallo</div> <div class="button">hallo</div> </div> <div class="box right"> <p class="header1">Links</p> <div class="button"> <div class="header2">Konstruktions- richtlinien </div> <div class="datei-ordner"></div> </div> <div class="button">hallo</div> <div class="button">hallo</div> </div> </div> </main> </body> </html>
-
Zitat
nur dass ich einen bestimmten Ordner angebe
Das erlaubt Javascript nicht. Du musst jedes Mal die Bilder interaktiv auswählen.
-
Dafür würdest Du einen lokalen Webserver und PHP benötigen. Die Bilder kannst Du dann mit glob() einlesen. Dabei werden sie gleich sortiert, so dass Du das neueste anzeigen kannst.
-
Die PHP-Seite wird auch hier beschrieben:
-
Dafür gibt es ein mächtiges Plugin:
https://datatables.net/examples/api/multi_filter_select.html
Features, die man nicht braucht, kann man abschalten, z. B. das Sortieren:
-
Ich habe es mal im Opera getestet und kann die Anzeige im HTML-Inspektor nicht finden. Deshalb denke ich, dass hier Handarbeit angesagt ist.
Ich habe mal in meinen Testdateien gesucht und dies gefunden:
Code
Alles anzeigen<div class="wrtt tooltips"> <input class="tooltips" pattern="^[0-9]*$" /> <span>Falsche Eingabe</span> </div> <div class="wrtt tooltips"> <input class="tooltips" pattern="^[0-9]*$" /> <span>Falsche Eingabe</span> </div> <style> .wrtt.tooltips { margin-top: 20px; position: relative; display: inline-block; } .wrtt.tooltips span { position: absolute; width: 140px; color: #FFFFFF; background: salmon; height: 30px; line-height: 30px; text-align: center; border-radius: 6px; } .wrtt.tooltips span:after { content: ''; position: absolute; bottom: 100%; left: 50%; margin-left: -8px; width: 0; height: 0; border-bottom: 8px solid salmon; border-right: 8px solid transparent; border-left: 8px solid transparent; } input.tooltips + span { visibility: visible; opacity: 0.8; top: 34px; left: 50%; margin-left: -76px; z-index: 999; } input.tooltips:valid + span { visibility: hidden; } </style>
Nur CSS, zeigt den Fehler sofort bei der Eingabe an. Will man ihn erst beim Submit anzeigen, muss man wahrscheinlich noch etwa Javascript hinzu fügen. Das kann man dann beliebig gestalten und positionieren.
-
Dann versuchen wir es mit onchange und einer for-Schleife:
Code
Alles anzeigenrelselect.onchange = function() { var dataselect = document.listForm.data; dataselect.innerHTML = ''; var cdata = data[this.options[this.selectedIndex].innerHTML] for (var i = 0; i < cdata.length; i++) { var item = cdata[i]; var opt = new Option(item.Name); opt.setAttribute("data-telefon", item.Telefon); dataselect.appendChild(opt); }; };
-
Ich habe mal einen Vorschlag ohne jQuery ausgearbeitet:
Code
Alles anzeigen<form name="listForm"> <select name="relation"> </select> <select name="data"> </select> </form> <script> var data = { '100': [ {Name:'Bernd', Telefon: '00011'}, {Name:'Frank', Telefon: '00014'} ], 101: [ {Name:'Klaus', Telefon: '00012'} ], 102: [ {Name:'Dieter', Telefon: '00013'} ] }; document.listForm.relation.options[document.listForm.relation.length] = new Option('100'); document.listForm.relation.options[document.listForm.relation.length] = new Option('101'); document.listForm.relation.options[document.listForm.relation.length] = new Option('102'); var relselect = document.listForm.relation; relselect.addEventListener("change", function() { var dataselect = document.listForm.data; dataselect.innerHTML = ''; data[this.options[this.selectedIndex].innerHTML].forEach(function (item, idx) { var opt = new Option(item.Name); opt.setAttribute("data-telefon", item.Telefon); dataselect.appendChild(opt); }); }); var e = document.createEvent('HTMLEvents'); e.initEvent("change", false, true); relselect.dispatchEvent(e); </script>
Prüfe, ob es das ist, was Du brauchst. Die Definition der Daten habe ich so geändert, dass der Zugriff möglichst einfach ist.
-
Zitat
lasse ich in einer Selectbox nun eine vereinfachte Auswahl durchführen ...
in der Selectbox sollte nun - wenn man z.B. Relation 100 auswählt
Zwei Fragen:
1. Ich nehme an, die erste Selectbox soll ebenfalls automatisch aufgebaut werden?
2. Soll die Auswahl in der ersten Selectbox nur die Felder 'Relation' enthalten?
-
-
Wenn Du wenig Zeit hast, kannst Du die Bilder ganz schnell etwas hübscher machen, indem Du sie rund machst:
-
Hier ist etwas für den Upload:
-
Das geht mit border-collapse: collapse;
-
vertical-align funktioniert außerhalb einer Tabellenzelle nur für Bilder. Zuverlässiger ist Flexbox und align-items:center.
-
Zitat
Fragen wir mal Sempervivum .vieleicht weiss er das was ich falsch mache
Dein Vertrauen ehrt mich, Basti, aber ich möchte in dieses Thema nicht einsteigen:
1. Wenn ich dies machen müsste, würde ich Fancybox verwenden.
2. Ich bin bisher nicht in Bootstrap eingestiegen und habe es auch nicht vor.
-
Mit jQuery-UI-draggable war es eine Kleinigkeit:
http://webentwicklung.ulrichba…arte-hunde-draggable.html
Einen der Köpfe mit der Maus ziehen und das Ausgabefeld links unter der Karte beobachten.
-
Gute Nacht!