1. GrundprinzipienTeilen Sie zunächst den Live-Übertragungsbereich in zehn Teile auf (ich persönlich teile ihn der Einfachheit halber in zehn Teile auf), platzieren Sie den Eingabeinhalt zufällig in den zehn unterteilten Bereichen, fügen Sie ihn außerhalb der Ansicht auf der rechten Seite der zehn unterteilten Bereiche ein und rufen Sie dann die Animation auf, um sich mit zufälliger Geschwindigkeit von rechts nach links zu bewegen. Wenn sie sich außerhalb der Ansicht des linken Bereichs bewegt, entfernen Sie dieses Scroll-Element. 2. Spezifischer Code<div Klasse="Videoinhalt verschieben"> <div Klasse="Videoinhalt"> <div Klasse="video_div" id="video_view"></div> <div Klasse="Scrollinhalt"> <ul Klasse="scroll_ul" id="scroll_ul_id"></ul> </div> </div> <div Klasse="Eingabeinhalt"> <input type="text" class="input_text" maxlength="30" placeholder="Bitte geben Sie das Sperrfeuer ein, das Sie senden möchten" id="input_text_id"> <button type="button" class="button_btn" id="send_btn">Senden</button> </div> </div> Die konkreten Auswirkungen sind wie folgt: Der js-Code lautet wie folgt let inputText = document.getElementById("input_text_id");//Eingabeeingabefeldlet scrollContent = document.getElementById("scroll_ul_id");//Nebenchatleistelet videoView = document.getElementById("video_view");//Videobereichlet videoWidth = videoView.offsetWidth;//Gesamtbreite des Liveübertragungsbereichslet listHeight = videoView.offsetHeight/10;//Höhe jeder Ebene des Liveübertragungsbereichslet listTopNum = [0,1,2,3,4,5,6,7,8,9];//Die Höhe des Liveübertragungsbereichs in 10 Ebenen aufteilendocument.getElementById("send_btn").addEventListener("click",function(){//Auf die Schaltfläche „Senden“ wartenlet value = inputText.value;//Wert des Eingabefelds abrufenif(!value) return; appendDom(value); //Den Wert des Eingabefelds in den Scroll-Chat einfügen createVideoBulletChatDom(value); //Den Wert des Eingabefelds in den Bullet-Bildschirm einfügen inputText.value = ''; //Eingabefeld löschen scrollContent.scrollTop = scrollContent.scrollHeight; //Automatisch nach unten scrollen }) function appendDom(value){//Füge den Wert des Eingabefelds in den Scroll-Chat ein let li = document.createElement("li"); li.setAttribute("Klasse","scroll_li"); li.innerHTML = Wert; scrollContent.appendChild(li); } let speedArr = ['normal','schnell','schneller']; Funktion createVideoBulletChatDom(Wert){//Fügen Sie den Wert des Eingabefelds in den Bullet-Bildschirm ein let num = listTopNum[Math.floor((Math.random()*listTopNum.length))]; let p = document.createElement("p"); p.setAttribute("Klasse","video_p"); p.style.top = (Zahl * 60) + "px"; p.style.left = Videobreite + "px"; p.innerHTML = Wert; videoView.appendChild(p); lass Geschwindigkeit = GeschwindigkeitArr[Math.floor((Math.random()*GeschwindigkeitArr.Länge))]; Animate(p,speed); //Scrolling-Animation} lass animateType = { 'normal':5, 'schnell':10, 'schneller':15 } Funktion Animate(dom,speed){//Scrolling-Animation let domWidth = dom.offsetWidth;//Die Breite des aktuellen Bullet-Bildschirmelements let distance = videoWidth;//Die Gesamtbreite des Live-Übertragungsbereichs Geschwindigkeit? Geschwindigkeit: „normal“; let Intervall = Animationstyp[Geschwindigkeit] let timer = setzeIntervall(Funktion(){ Entfernung -= Intervall; dom.style.left = Abstand + "px"; wenn(Abstand <= -domWidth){ Intervall löschen(Timer); videoView.removeChild(dom); //Lösche das Label, das aus dem Bildschirm gescrollt ist} },50) } Ermitteln Sie entsprechend den zehn Teilen (listTopNum), in die der Live-Übertragungsbereich unterteilt ist, die Höhe jeder Ebene (listHeight) und ändern Sie dann die Oberseite der Bildlaufbeschriftung, um sie in verschiedene Bereiche der zehn Teile einzufügen. Wenn Sie ein Scroll-Label erstellen, erstellen Sie eine Scroll-Animation (Funktion Animieren). Die Standardgeschwindigkeit ist normal. Jedes Mal, wenn Sie eine Animation erstellen, wird ein zufälliger Geschwindigkeitstyp (normal, schnell, schneller) übergeben. Die für jeden Bildlauf abgezogene Distanz wird entsprechend dem übergebenen Geschwindigkeitstyp geändert, um unterschiedliche Bildlaufgeschwindigkeiten zu erreichen. Zusammenfassen Dies ist eine Live-Scrolling-Animation, die ich aus Langeweile geschrieben habe. Wenn WebSocket hinzugefügt wird, ist eine synchrone Kommunikation zwischen mehreren Personen möglich. Ich werde es später verbessern, wenn ich nichts zu tun habe. Den spezifischen Code finden Sie unter [:github.com/liqc-wwl/bu…] und können dort auch gleich herunterladen, um die Wirkung direkt zu sehen. Dies ist das Ende dieses Artikels über die Verwendung von nativem JS zur Simulation des Scroll-Effekts von Live Barrage. Weitere relevante JS-Simulationen von Live Barrage-Scrolling-Inhalten finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: So erstellen Sie mit Docker ein Basisimage der Python-Laufzeitumgebung
>>: Spezifische Implementierungsmethoden für MySQL-Tabellen-Sharding und -Partitionierung
Inhaltsverzeichnis Installieren Softwareverwaltun...
Inhaltsverzeichnis Hintergrund Kompilieren Sie gl...
Nginx kann seine Reverse-Proxy-Funktion zum Imple...
Als ich mir in letzter Zeit einige CSS3-Animation...
Inhaltsverzeichnis TOKEN Timer-Aktualisierung 2. ...
1. Reverse-Proxy-Beispiel 1 1. Erzielen Sie den E...
Dieser Artikel beschreibt anhand eines Beispiels ...
Der folgende Inhalt stellt den Prozess und die Lö...
(?i) bedeutet, dass die Groß-/Kleinschreibung nich...
Für gleichmäßig verteilte Layouts verwenden wir i...
Mit DOSBox können Sie DOS unter Windows simuliere...
Inhaltsverzeichnis Vorwort Virtueller DOM Was ist...
1. Eine statische Seite bedeutet, dass die Webseit...
Inhaltsverzeichnis 1. HttpGET 2. HTTP POST WebSoc...
Strukturierte Tabelle (nur IExplore) 1) Gruppieren...