2017-08-11 18 views
0

我有一個7行和2個選項卡的表格,用於星期日和星期一。它會根據當前時間以紅色突出顯示特定行。 我想知道是否有可能添加選框效果到表中有紅色背景的行

<marquee>My first Row</marquee> 

效果添加到其被突出顯示與紅色背景和當第二行被高亮顯示,然後自動選取框效果移動到該行的特定行。

這裏是我的表的代碼

function openCity(evt, cityName, today) { 
 
    var i, tabcontent, tablinks; 
 
    tabcontent = 
 
    document.getElementsByClassName("tabcontent"); 
 
    for (i = 0; i < tabcontent.length; i++) { 
 
    tabcontent[i].style.display = "none"; 
 
    } 
 
    tablinks = document.getElementsByClassName("tablinks"); 
 
    for (i = 0; i < tablinks.length; i++) { 
 
    tablinks[i].className = tablinks[i].className.replace(" active", ""); 
 
    } 
 
    document.getElementById(cityName).style.display = "block"; 
 
    if (typeof today == 'undefined') { 
 
    evt.currentTarget.className += " active"; 
 
    } else { 
 
    tablinks[today].className += " active"; 
 
    } 
 
} 
 

 
let now = new Date().getHours() * 100 + new 
 
Date().getMinutes(); 
 
let times = [900, 1000, 1015]; 
 
let classes = ['ra1', 'ra3', ]; 
 
let selected = classes[times.reduce((acc, curr, idx) => now >= 
 
    curr ? idx : acc)]; 
 
if (selected){ 
 
    var elements = document.getElementsByClassName(selected); 
 
    for(var i=0;i<elements.length; i++){ 
 
     elements[i].style.background = 'red'; 
 
     elements[i].innerHTML = "<marquee>" + elements[i].innerHTML + "</marquee>"; 
 
} 
 
}
.tabcontent { display: none }
<div class="tab" style="margin-top: 1.6%; "> 
 
    <button class="tablinks" onclick="openCity(event, 'Sun0') ">Sun</button> 
 
    <button class="tablinks" onclick="openCity(event, 'Mon0')">Mon</button> 
 

 
</div> 
 

 
<div id="Sun0" class="tabcontent" id="np"> 
 

 

 
    <div style="overflow-x:auto;"> 
 
    <table> 
 
     <col width="65%"> 
 
     <col width="35%"> 
 
     <tr> 
 
     <th>Class</th> 
 
     <th>Time</th> 
 
     </tr> 
 

 
     <tr> 
 
     <td class="ra1">10:15-11:00AM</td> 
 
     <td style="background:black; color:Yellow;">It is Sunday </td> 
 

 
     </tr> 
 
     <tr> 
 
     <td class="ra3">11:00-11:45AM</td> 
 
     <td style="background:black; color:Yellow;">It is Sunday</td> 
 

 
     </tr> 
 
    </table> 
 
    </div> 
 
</div> 
 

 

 
<div id="Mon0" class="tabcontent"> 
 

 
    <!--Monnday--> 
 
    <div style="overflow-x:auto;"> 
 
    <table> 
 
     <col width="65%"> 
 
     <col width="35%"> 
 
     <tr> 
 
     <th>Class</th> 
 
     <th>Time</th> 
 
     </tr> 
 

 
     <tr> 
 
     <td class="ra1">10:15-11:00AM</td> 
 
     <td style="background:black; color:Yellow;">It is Monday</td> 
 

 
     </tr> 
 
     <tr> 
 
     <td class="ra3">11:00-11:45AM</td> 
 
     <td style="background:black; color:Yellow;">It is Monday</td> 
 

 
     </tr> 
 
    </table> 
 
    </div> 
 
</div>

+0

的[''(https://developer.mozilla.org/en/docs/Web/HTML/Element/marquee)元素已經過時了,你確定你想用它? – Gerardo

+0

好,如果有新的選擇,我會很樂意使用那個。 –

+0

沒有新的選擇,你可以使用jQuery和一個選取框插件 – Gerardo

回答

1

由於字幕元素已經過時了,你將不得不依賴於CSS動畫或第三方插件才達到的是,

使用css你可以指定css類(例如:選取框),在那裏你將紅色背景分配給行,並且可以在該類中寫入以下css:

.marquee { 
 
    width: 750px; 
 
    margin: 0 auto; 
 
    white-space: nowrap; 
 
    overflow: hidden; 
 
    box-sizing: border-box; 
 
} 
 

 
.marquee td { 
 
    display: inline-block; 
 
    padding-left: 100%; /* show the marquee just outside the paragraph */ 
 
    animation: marquee 15s linear infinite; 
 
} 
 

 
.marquee td:hover { 
 
    animation-play-state: paused 
 
} 
 

 
/* Make it move */ 
 
@keyframes marquee { 
 
    0% { transform: translate(0, 0); } 
 
    100% { transform: translate(-100%, 0); } 
 
}
<table> 
 
    <tr> 
 
    <td>test 1</td> 
 
    <td>test 2</td> 
 
    </tr> 
 
    <tr class="marquee"> 
 
    <td>test 4</td> 
 
    <td>test 5</td> 
 
    </tr> 
 
</table>

+0

好,確實是半場戰鬥。正如我已經說過,我有7行和紅色背景從45分鐘間隔從一排到另一排......所以我想在有紅色背景的行中獲得選框效果。我認爲任何JavaScript或jQuery都會有幫助,但我不知道如何繼續。 –