来自腾讯的一个不固定高度得消息的滚动特效_javascript技巧
[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]
看关键的js code:
var $ = function (d){
typeof d == "string" &&(d = document.getElementById(d));
return $.fn.call(d);
};
$.fn = function (){
this.addEvent = function (sEventType,fnHandler){
if (this.addEventListener) {this.addEventListener(sEventType, fnHandler, false);}
else if (this.attachEvent) {this.attachEvent("on" + sEventType, fnHandler);}
else {this["on" + sEventType] = fnHandler;}
}
this.removeEvent = function (sEventType,fnHandler){
if (this.removeEventListener) {this.removeEventListener(sEventType, fnHandler, false);}
else if (this.detachEvent) {this.detachEvent("on" + sEventType, fnHandler);}
else { this["on" + sEventType] = null;}
}
return this;
};
var Class = {create: function() {return function() { this.initialize.apply(this, arguments); }}};
var Bind = function (obj,fun,arr){return function() {return fun.apply(obj,arr);}}
var Marquee = Class.create();
Marquee.prototype = {
initialize: function(id,name,out,speed) {
this.name = name;
this.box = $(id);
this.out = 3;//滚动间隔时间,单位秒
this.speed = speed;
this.d = 1;
this.box.style.position = "relative";
this.box.scrollTop = 0;
var _li = this.box.firstChild;
while(typeof(_li.tagName)=="undefined")_li = _li.nextSibling;
this.lis = this.box.getElementsByTagName(_li.tagName);
this.len = this.lis.length;
for(var i=0;i
__li.innerHTML = this.lis[i].innerHTML;
this.box.appendChild(__li);//cloneNode
if(this.lis[i].offsetTop>=this.box.offsetHeight)break;
}
this.Start();
this.box.addEvent("mouseover",Bind(this,function(){clearTimeout(this.timeout);},[]));
this.box.addEvent("mouseout",Bind(this,this.Start,[]));
},
Start:function (){
clearTimeout(this.timeout);
this.timeout = setTimeout(this.name+".Up()",this.out*1000)
},
Up:function(){
clearInterval(this.interval);
this.interval = setInterval(this.name+".Fun()",10);
},
Fun:function (){
this.box.scrollTop+=this.speed;
if(this.lis[this.d].offsetTop clearInterval(this.interval);
this.box.scrollTop = this.lis[this.d].offsetTop;
this.Start();
this.d++;
}
if(this.d >= this.len + 1){
this.d = 1;
this.box.scrollTop = 0;
}
}
};
$(window).addEvent("load",function (){
marquee = new Marquee("msg_weibo","marquee",1,2);
});
实现思路与以前的文字滚动是一样的,都是先充满当前容器,再通过scrollTop++往上滚的,只不过他是每次滚动的距离不是固定的,是取当前滚动消息的高度。由于scrollTop(滚出当前可视区域的高度)和offsetTop(距离父节点顶部的距离,常用于取某元素在页面的坐标位置)的区别,所以通过 if(this.lis[this.d].offsetTop
我觉得亮点之处在于$的写法。通常Prototype里也就取下obj||document.getElementById('objId'),他这里除此外还帮obj绑定了一些方法。他的作用是不是类似于原型扩展String、Array等对象的方法呢。这个可以借鉴。
另外,他初始化时填充容器时用document.createElement->赋innerHTML->appendChild来做,我觉的不如直接cloneNode(true)->appendChild好,如不对,欢迎指正。
主要还是填下这个月的坑,哈哈。

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Die Nachricht wurde gesendet, aber von der anderen Partei abgelehnt. Dies bedeutet, dass die gesendeten Informationen erfolgreich vom Gerät gesendet wurden, die andere Partei die Nachricht jedoch aus irgendeinem Grund nicht erhalten hat. Genauer gesagt liegt dies in der Regel daran, dass die andere Partei bestimmte Berechtigungen festgelegt oder bestimmte Maßnahmen ergriffen hat, was den normalen Empfang Ihrer Informationen verhindert.

In iOS17 hat Apple seiner Nachrichten-App mehrere neue Funktionen hinzugefügt, um die Kommunikation mit anderen Apple-Benutzern kreativer und unterhaltsamer zu gestalten. Eines der Features ist die Möglichkeit, Emojis als Aufkleber zu verwenden. Sticker gibt es schon seit Jahren in der Nachrichten-App, aber bisher hat sich daran nicht viel geändert. Dies liegt daran, dass Apple in iOS17 alle Standard-Emojis als Aufkleber behandelt, sodass sie auf die gleiche Weise wie echte Aufkleber verwendet werden können. Das bedeutet im Wesentlichen, dass Sie nicht mehr darauf beschränkt sind, sie in Gespräche einzufügen. Jetzt können Sie sie auch an eine beliebige Stelle in der Nachrichtenblase ziehen. Sie können sie sogar übereinander stapeln, um kleine Emoji-Szenen zu erstellen. Die folgenden Schritte zeigen Ihnen, wie es in iOS17 funktioniert

So verwenden Sie Wischen zum Antworten in iMessages auf dem iPhone Hinweis: Die Funktion „Wischen zum Antworten“ funktioniert nur bei iMessage-Konversationen in iOS 17, nicht bei regulären SMS-Konversationen in der Nachrichten-App. Öffnen Sie die Nachrichten-App auf Ihrem iPhone. Gehen Sie dann zur iMessage-Konversation und wischen Sie einfach nach rechts über die iMessage, auf die Sie antworten möchten. Sobald dies erledigt ist, wird die ausgewählte iMessage im Fokus sein, während alle anderen Nachrichten im Hintergrund verschwimmen. Sie sehen ein Textfeld zum Eingeben einer Antwort und ein „+“-Symbol für den Zugriff auf iMessage-Apps wie Check-ins, Orte, Aufkleber, Fotos und mehr. Geben Sie einfach Ihre Nachricht ein,

Mit der nativen Nachrichten-App auf dem iPhone können Sie gesendete Texte ganz einfach bearbeiten. Auf diese Weise können Sie Ihre Fehler und Zeichensetzung korrigieren und sogar falsche Phrasen/Wörter, die möglicherweise in Ihren Text übernommen wurden, automatisch korrigieren. In diesem Artikel erfahren Sie, wie Sie Nachrichten auf dem iPhone bearbeiten. So bearbeiten Sie Nachrichten auf dem iPhone. Erforderlich: iPhone mit iOS16 oder höher. Sie können iMessage-Text nur in der Nachrichten-App bearbeiten, und zwar nur innerhalb von 15 Minuten nach dem Senden des Originaltexts. Nicht-iMessage-Text wird nicht unterstützt und kann daher nicht abgerufen oder bearbeitet werden. Starten Sie die Nachrichten-App auf Ihrem iPhone. Wählen Sie unter „Nachrichten“ die Konversation aus, deren Nachricht Sie bearbeiten möchten

1. Zur schwarzen Liste hinzugefügt: Die Nachricht wurde gesendet, aber von der anderen Partei abgelehnt. Im Allgemeinen können Sie zu diesem Zeitpunkt keine Nachrichten an die andere Partei senden in der Lage sein, Ihre Nachrichten zu empfangen. 2. Netzwerkprobleme: Wenn der Netzwerkzustand des Empfängers schlecht ist oder ein Netzwerkfehler vorliegt, kann die Nachricht möglicherweise nicht erfolgreich empfangen werden. An dieser Stelle können Sie versuchen, zu warten, bis das Netzwerk wieder normal ist, bevor Sie die Nachricht erneut senden. 3. Die andere Partei hat „Bitte nicht stören“ eingerichtet: Wenn der Empfänger „Bitte nicht stören“ in WeChat eingerichtet hat, werden die Nachrichten des Absenders innerhalb eines bestimmten Zeitraums nicht erinnert oder angezeigt.

Erscheinungsdatum des Vivox100 bestätigt! Die neuesten Nachrichten wurden kürzlich in der Technologiewelt vorgestellt. Dieses mit Spannung erwartete Produkt hat endlich seinen Veröffentlichungstermin bestätigt, was viele Verbraucher und Technologiebegeisterte begeistert. Es wird berichtet, dass Vivox100s Ende dieses Monats offiziell veröffentlicht wird. Was sind die Highlights des mit Spannung erwarteten neuen Produkts? Vivox100s, das neueste Meisterwerk der Vivox-Serie, hat seit seiner Veröffentlichung viel Aufmerksamkeit erregt.

Mit der Veröffentlichung von iOS 17 hat Apple seinem mobilen Betriebssystem eine Fülle neuer Features, Funktionen und Verbesserungen hinzugefügt. Eine davon ist, dass Sie jetzt FaceTime iPhone-Videonachrichten und Audio hinterlassen können, wenn jemand Ihren Anruf verpasst. Nachdem Sie eine Nachricht hinterlassen haben, können Ihre Freunde und Familie Ihre Nachricht sogar auf ihrer Apple Watch abspielen, sodass Sie einfacher in Verbindung bleiben können. Der erste Schritt zum Hinterlassen einer Videonachricht während eines FaceTime-Anrufs besteht darin, den Anruf einzuleiten. Wenn die Person am anderen Ende den Anruf nicht entgegennimmt, wird auf dem Bildschirm die Option zum Aufzeichnen eines Videos angezeigt. Nachdem Sie auf diese Option geklickt haben, beginnt der Countdown von 5 auf 1, danach können Sie mit der Aufzeichnung der Nachricht beginnen. Die Benutzeroberfläche ist benutzerfreundlich und verfügt über eine Schaltfläche „Erneut anrufen“ und eine Schaltfläche „Video aufnehmen“.

Xiaomi 14Pro ist ein Flaggschiffmodell mit hervorragender Leistung und Konfiguration. Es hat seit seiner offiziellen Veröffentlichung hohe Verkaufszahlen erzielt. Viele kleine Funktionen von Xiaomi 14Pro werden jedoch von allen ignoriert Die Funktion ist klein, aber sehr praktisch. Bei der Nutzung des Mobiltelefons wird jeder auf verschiedene Probleme stoßen. Wie richtet man das Xiaomi 14Pro so ein, dass der Bildschirm für Nachrichten beleuchtet wird? Wie richte ich das Xiaomi Mi 14 Pro so ein, dass der Bildschirm für Nachrichten beleuchtet wird? Schritt 1: Öffnen Sie die Einstellungen-App Ihres Telefons. Schritt 2: Wischen Sie nach unten, bis Sie die Option „Bildschirm und Passwort sperren“ finden, und klicken Sie zur Eingabe. Schritt 3: Suchen Sie im Menü „Bildschirm sperren und Passcode“ nach der Option „Bildschirm für Benachrichtigungen einschalten“ und klicken Sie darauf. Schritt 4: Schalten Sie auf der Seite „Bildschirm beim Empfang von Benachrichtigungen einschalten“ den Schalter ein, um ihn zu aktivieren
