Like Button in html, java script inklusive Counter?

3 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

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>
Woher ich das weiß:Hobby
BenBerg186 
Fragesteller
 20.08.2022, 18:35

Vielen Dank, das war ausführlicher als ich dachte. Echt lieb. Werde das gleich mal ausprobieren. 🙏🙏🙏

0
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.