Like Button in html, java script inklusive Counter?
Ich bin ein fortgeschrittener html Autor und eigne mir gerade Java script an.
Als Übung wollte ich ein kleines eigenes Youtube(ohne Datenbank) programmieren. Ich bin nun fast fertig mit meinem kleinen Projekt, doch mir fehlt noch ein Like Button für Videos inklusive Counter der neben dem Button angezeigt werden soll. Zunächst dachte ich an den input type: "radio".
Wäre toll wenn mir einer einen Tipp geben könnte wie ich meine Website vervollständigen könnte.
Danke in Voraus
3 Antworten
Also ich würde dafür ein button oder ein input type button nehmen.
Vom JS her würde ich das in etwa so machen. Aber theoretisch könnte man das ganze auch nur css machen.
<style>
button {
border: none;
background-color: transparent;
cursor: pointer;
}
</style>
<button onclick="like()" id="like">
<svg id="unliked" viewBox="0 0 24 24" preserveAspectRatio="xMidYMid meet" focusable="false" style="display: block; width: 100%; height: 100%;"><g><path d="M18.77,11h-4.23l1.52-4.94C16.38,5.03,15.54,4,14.38,4c-0.58,0-1.14,0.24-1.52,0.65L7,11H3v10h4h1h9.43 c1.06,0,1.98-0.67,2.19-1.61l1.34-6C21.23,12.15,20.18,11,18.77,11z M7,20H4v-8h3V20z M19.98,13.17l-1.34,6 C18.54,19.65,18.03,20,17.43,20H8v-8.61l5.6-6.06C13.79,5.12,14.08,5,14.38,5c0.26,0,0.5,0.11,0.63,0.3 c0.07,0.1,0.15,0.26,0.09,0.47l-1.52,4.94L13.18,12h1.35h4.23c0.41,0,0.8,0.17,1.03,0.46C19.92,12.61,20.05,12.86,19.98,13.17z"></path></g></svg>
<svg id="liked" viewBox="0 0 24 24" preserveAspectRatio="xMidYMid meet" focusable="false" style="display: none; width: 100%; height: 100%;"><g><path d="M3,11h3v10H3V11z M18.77,11h-4.23l1.52-4.94C16.38,5.03,15.54,4,14.38,4c-0.58,0-1.14,0.24-1.52,0.65L7,11v10h10.43 c1.06,0,1.98-0.67,2.19-1.61l1.34-6C21.23,12.15,20.18,11,18.77,11z"></path></g></svg>
</button>
<button onclick="dislike()" id="dislike">
<svg id="undisliked" viewBox="0 0 24 24" preserveAspectRatio="xMidYMid meet" focusable="false" style="display: block; width: 100%; height: 100%;"><g><path d="M17,4h-1H6.57C5.5,4,4.59,4.67,4.38,5.61l-1.34,6C2.77,12.85,3.82,14,5.23,14h4.23l-1.52,4.94C7.62,19.97,8.46,21,9.62,21 c0.58,0,1.14-0.24,1.52-0.65L17,14h4V4H17z M10.4,19.67C10.21,19.88,9.92,20,9.62,20c-0.26,0-0.5-0.11-0.63-0.3 c-0.07-0.1-0.15-0.26-0.09-0.47l1.52-4.94l0.4-1.29H9.46H5.23c-0.41,0-0.8-0.17-1.03-0.46c-0.12-0.15-0.25-0.4-0.18-0.72l1.34-6 C5.46,5.35,5.97,5,6.57,5H16v8.61L10.4,19.67z M20,13h-3V5h3V13z"></path></g></svg>
<svg id="disliked" viewBox="0 0 24 24" preserveAspectRatio="xMidYMid meet" focusable="false" style="display: none; width: 100%; height: 100%;"><g><path d="M18,4h3v10h-3V4z M5.23,14h4.23l-1.52,4.94C7.62,19.97,8.46,21,9.62,21c0.58,0,1.14-0.24,1.52-0.65L17,14V4H6.57 C5.5,4,4.59,4.67,4.38,5.61l-1.34,6C2.77,12.85,3.82,14,5.23,14z"></path></g></svg>
</button>
<script>
var like_button = document.getElementById("liked");
var dislike_button = document.getElementById("dislike");
var unliked = document.getElementById("unliked");
var liked = document.getElementById("liked");
var undisliked = document.getElementById("undisliked");
var disliked = document.getElementById("disliked");
var is_liked = false;
var is_disliked = false;
function like() {
if (!is_liked) {
toggleLike(liked, unliked);
toggleLike(undisliked, disliked);
is_liked = true;
is_disliked = false;
}
else {
toggleLike(unliked, liked);
is_liked = false;
}
}
function dislike() {
if (!is_disliked) {
toggleLike(disliked, undisliked);
toggleLike(unliked, liked);
is_disliked = true;
is_liked = false;
}
else {
toggleLike(undisliked, disliked);
is_disliked = false;
}
}
function toggleLike(el, disel) {
el.style.display = "block";
disel.style.display = "none";
}
</script>
Vielen Dank, das war ausführlicher als ich dachte. Echt lieb. Werde das gleich mal ausprobieren. 🙏🙏🙏
fortgeschrittener html Programmierer
dann wüstest du auch das malen anch zahlen kein künstler darseinist. HTML kann man schreiben und man ist dann ein HTML Autor . Mit Programmeiren hat das rein gar nichts zu tun .
mti eine Datenbank wird das doch einfach . Du machst irgendein element das beim onclick ein httprequest an den server sendet , dort etwas hochzählt und erhälst als ergebnis die aktuelle zahl und trägst die ganz normal als zahl ein .
Daumen Icons gibts wie sand am mehr im internet . Kannste als graphishen Button machen oder einfach so ein click event auf das element legen .
z.b. https://www.codegrepper.com/code-examples/javascript/onclick+w3schools
Wie wärs mit nem input type Button?
Oder ein Bild und onClick ein Javascript-Aufruf.
Für's Protokoll: Deine Fragestellung klingt ziemlich großkotzig und ist falsch, da HTML keine Programmiersprache ist, sondern eine (wie der Name schon sagt) Markup-Language.