Heim > Artikel > Web-Frontend > Native JS realisiert verschiedene Effekte von Tab Tab
Vor einiger Zeit habe ich mehrere Artikel über das Verständnis und die Verwendung von CSS-Attributen geschrieben. Heute werde ich Ihnen einen Effekt mitteilen, den wir in der tatsächlichen Arbeit häufiger verwenden – den Tab-Karteneffekt. Schauen wir uns zunächst an, wie der Tab-Tab-Effekt am Beispiel von QQ News aussieht:
Wann Wenn der entsprechende Titel aktiviert ist, wird der Inhalt angezeigt, der dem Titel entspricht. Dies ist der gleitende Wechsel des Tab-Tab-Effekts. Der Tab-Tab-Effekt umfasst auch den verzögerten Wechsel und automatische Umschaltung. Lassen Sie uns heute mit Ihnen diese drei Effekte des Tab-Tabs kennenlernen.
2. Gemeinsame Codes für die drei Effekte Die drei Effekte basieren auf der folgenden gemeinsamen HTML-Struktur und dem folgenden CSS-Stil:
HTML-Code
<p id="notice" class="notice"> <p id="notice-title" class="notice-title"> <ul> <li class="select"><a href="#">公告</a></li> <li><a href="#">规则</a></li> <li><a href="#">论坛</a></li> <li><a href="#">安全</a></li> <li><a href="#">公益</a></li> </ul> </p> <p id="notice-content" class="notice-content"> <p class="mod" style="display: block"> <ul> <li> <a href="#">张勇:要玩快乐足球</a> </li> <li> <a href="#">阿里2000万驰援灾区</a> </li> <li> <a href="#">旅游宝让你边玩边赚钱</a> </li> <li> <a href="#">多行跟进阿里信用贷款</a> </li> </ul> </p> <p class="mod" style="display: none"> <ul> <li> <span> [ <a href="">通知</a> ] </span> <a href="#">“滥发”即将换新</a> </li> <li> <span> [ <a href="">通知</a> ] </span> <a href="#">比特币严管啦</a> </li> <li> <span> [ <a href="">通知</a> ] </span> <a href="#">禁发商品名录</a> </li> <li> <span> [ <a href="">通知</a> ] </span> <a href="#">商品熟悉限制</a> </li> </ul> </p> <p class="mod" style="display: none"> <ul> <li> <span> [ <a href="">聚焦</a> ] </span> <a href="#">金牌卖家再启航</a> </li> <li> <span> [ <a href="">功能</a> ] </span> <a href="#">橱窗规则升级啦</a> </li> <li> <span> [ <a href="">话题</a> ] </span> <a href="#">又爱又恨优惠券</a> </li> <li> <span> [ <a href="">工具</a> ] </span> <a href="#">购后送店铺红包</a> </li> </ul> </p> <p class="mod" style="display: none"> <ul> <li> <span> [ <a href="">要闻</a> ] </span> <a href="#">年轻干部要摒弃盲目求快的人生哲学</a> </li> <li> <span> [ <a href="">近来好</a> ] </span> <a href="#">都说实体店不行了,可便利店为啥越开越多?</a> </li> <li> <span> [ <a href="">冬奥会</a> ] </span> <a href="#">永远有杯咖啡留给您</a> </li> <li> <span> [ <a href="">总书记</a> ] </span> <a href="#">从高空视角看习总书记的春节足迹 奋进新时代</a> </li> </ul> </p> <p class="mod" style="display: none"> <ul> <li> <a href="#">走近无声课堂</a> </li> <li> <a href="#">淘宝之行大众评审赢公益</a> </li> <li> <a href="#">爱心品牌联合征集</a> </li> <li> <a href="#">名公益机构淘宝开店攻略</a> </li> </ul> </p> </p> </p>
CSS-Code
*{ margin: 0; padding: 0; list-style: none; font-size: 12px; box-sizing: border-box; } .notice{ width: 302px; height: 100px; margin: 10px; border: 1px solid #eee; overflow: hidden; } .notice-title{ height: 26px; background: #f7f7f7; } .notice-title li{ float: left; width: 60px; line-height: 26px; text-align: center; overflow: hidden; background: #fff; border-bottom: 1px solid #eee; background: #f7f7f7; } .notice li a:link, .notice li a:visited{ text-decoration: none; color: #000; } .notice li a:hover{ color: #f90; } .notice-title li.select{ background: #fff; border-bottom-color: #fff; border-left: 1px solid #eee; border-right: 1px solid #eee; font-weight: bold; } .notice-title li:first-child.select{ border-left: none; } .notice-title li:last-child.select{ border-right: none; } .notice-content .mod{ padding: 12px 5px; } .notice-content .mod ul{ width: 300px; font-size: 0; } .notice-content .mod ul li{ display: inline-block; width: 145px; height: 25px; line-height: 25px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }3. Analyse des Prinzips des Sliding-Switching-Effekts
Sliding-Switching-Effekt besteht, wie der Name schon sagt, darin, den Inhalt unter dem Titel anzuzeigen, wenn die Maus darüber gleitet. Es ist notwendig, den Stil des aktuellen Titels auf den ausgewählten Status zu setzen (fügen Sie den vom Titel ausgewählten CSS-Stil hinzu, in diesem Fall fügen Sie die Stilklasse hinzu) und legen Sie gleichzeitig den Inhalt unter dem Titel auf fest angezeigt werden, d. h. den Stil festlegen select
und andere Der Inhalt unter dem Titel ist so eingestellt, dass er ausgeblendet wird, d. h. der Stil wird festgelegt display:block
. Der detaillierte display:none
-Code lautet wie folgt: javascript
function $(id) { return typeof id==='string'? document.getElementById(id):id; }
//获取鼠标滑过或点击的标签和要切换内容的元素 var titles = $('notice-title').getElementsByTagName('li'), ps = $('notice-content').getElementsByTagName('p'); if(titles.length != ps.length){ return; } // 遍历titles下的所有li for(var i = 0; i < titles.length; i++) { // 添加索引 titles[i].id = i; titles[i].onmouseover = function () { //清除所有title上的class,将所有的p设置为隐藏 for(var j=0; j<titles.length; j++) { titles[j].className = ''; ps[j].style.display = 'none'; } //设置当前li为高亮显示 this.className = 'select'; ps[this.id].style.display = 'block'; } }Wenn Sie den Effekt von
durch Klicken zum Umschalten von erzielen möchten, müssen Sie nur in < ändern 🎜>. Die Wirkung von onmouseover
onclick
im Browser ist wie folgt:
Wenn die Maus über den entsprechenden Titel fährt, wird der entsprechende Inhalt angezeigt Der Titel wird angezeigt.
4. Analyse des Prinzips des verzögerten Schalteffekts
Verzögerter Schalteffekt bedeutet, wie der Name schon sagt, dass der relevante Inhalt unter dem Titel danach angezeigt wird Die Maus bewegt sich für einen bestimmten Zeitraum über den Titel. Es ist bekannt, dass wir die Funktion verwenden können, um einen bestimmten Zeitraum zu verzögern und dann die zugehörigen Titel und Inhalte zu ändern oder verstecken. Der -Code unterscheidet sich nicht wesentlich vom javascript
Schiebeschalteffekt setTimeout
. Was wir ändern müssen, ist zunächst festzustellen, ob der Timer javascript
vorhanden ist, wir müssen den Timer löschen , andernfalls gibt es mehrere. Ein Timer führt dazu, dass der Umschalteffekt gestört wird, und fügt dann den Code, der den Titelstil und den Titelinhalt ändert, in die Funktion ein. Die Wirkung von timer
timer
setTimout
im Browser ist wie folgt:
var timer = null; var list = $('notice-title').getElementsByTagName('li'), ps = $('notice-content').getElementsByTagName('p'); if(list.length != ps.length){ return; } for(var i = 0; i < list.length; i++) { list[i].id = i; list[i].onmouseover = function () { var self = this; //如果存在准备执行的定时器,立刻清除,只有当前停留时间大于500ms时才开始执行 if(timer) { clearTimeout(timer); timer = null; } //延迟半秒执行 timer = setTimeout(function () { for(var j = 0; j < list.length; j++) { list[j].className = ''; ps[j].style.display = 'none'; } list[self.id].className = 'select'; ps[self.id].style.display = 'block'; }, 500) } }
Wenn die Maus über den Titel gleitet, gibt es Folgendes immer ein bestimmtes Intervall Der Titelinhalt wird nach einer bestimmten Zeit angezeigt.
5. Analyse des Prinzips des automatischen Wechseleffekts können wir verwenden, um diesen Effekt zu erzielen. Die spezifischen Schritte sind wie folgt: javascript
setInterval
Stellen Sie fest, ob der Timer vorhanden ist. Löschen Sie den Timer.
Verwenden Sie die Funktion
, um die Funktion „AutoPlay“ auszuführen . Ändern Sie in der AutoPlay-Funktion den Index auf 0 gesetzt ; setInterval
index
index
index
Fügen Sie den Index des Titels gleich dem Wert des Anzeigeindex
), und der Rest des Titelinhalts wird so geändert, dass er ausgeblendet wird (index
); die Wirkung von selected
index
display:block
display:none
//当前高亮显示的页签索引 var index = 0; var timer = null; //获取所有的页签和要切换的内容 var list = $('notice-title').getElementsByTagName('li'), ps = $('notice-content').getElementsByTagName('p'); //遍历每一个页签并且给他们绑定事件 for(var i = 0; i < list.length; i++) { list[i].id = i; } //添加定时器前做一次清除,避免多个定时器导致页面卡顿 if(timer){ clearInterval(timer); timer = null; } //添加定时器,改变当前高亮的索引 timer = setInterval(autoPlay, 2000); function autoPlay() { index++; if(index >= list.length) { index = 0; } changeOption(index); } function changeOption(curIndex) { // console.log(curIndex); for(var j = 0; j < list.length; j++) { list[j].className = ''; ps[j].style.display = 'none'; } //高亮显示当前页签 list[curIndex].className = 'select'; ps[curIndex].style.display = 'block'; index = curIndex; }
Sie können feststellen, dass Tabs in bestimmten Abständen automatisch gewechselt werden können. 6. Schreiben Sie es am Ende
Okay, heute werde ich die drei Wechseleffekte des Tabs mit Ihnen teilen. Ich hoffe, es dient als Aufwärmübung für alle Sie beherrschen das Prinzip des Tab-Tabs. Seine gleitenden Umschalt-, verzögerten Umschalt- und automatischen Umschalteffekte sind relativ einfach zu erreichen.
So implementieren Sie den Tab-Tab-Effekt von jQuery Mobile
Detaillierte Erläuterung des JavaScript-Plug-in-Tabs
Über die gemeinsame Nutzung der Wirkung des JavaScript-Plug-in-Tabs
Das obige ist der detaillierte Inhalt vonNative JS realisiert verschiedene Effekte von Tab Tab. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!