Javascript – Flashing Table Row

javascript

I have a dynamic table, and set conditions to make the table row background color changed based on time comparison. I want to add a second logic that will make the table row flash/blink every 2 seconds if cells are not matching. I understand that I need to create the "Flash/Blink" function but how do I integrate that function into my logic below?

for (i = 0; i < rows.length; i++) {
    cells = rows[i].getElementsByTagName('td');
    if (cells[10].innerText != cells[11].innterText) {
        rows[i].className = "blink/Flash";
    }
}

Best Answer

Look ma, no JavaScript!

HTML

<table>
    <tr>
        <td>true</td>
        <td class="invalid">false</td>
        <td>true</td>
        <td>true</td>
    </tr>
</table>

CSS

@-webkit-keyframes invalid {
  from { background-color: red; }
  to { background-color: inherit; }
}
@-moz-keyframes invalid {
  from { background-color: red; }
  to { background-color: inherit; }
}
@-o-keyframes invalid {
  from { background-color: red; }
  to { background-color: inherit; }
}
@keyframes invalid {
  from { background-color: red; }
  to { background-color: inherit; }
}
.invalid {
  -webkit-animation: invalid 1s infinite; /* Safari 4+ */
  -moz-animation:    invalid 1s infinite; /* Fx 5+ */
  -o-animation:      invalid 1s infinite; /* Opera 12+ */
  animation:         invalid 1s infinite; /* IE 10+ */
}

Live demo

http://jsfiddle.net/bikeshedder/essxz/


For those poor souls who are forced to use an outdated browser

CSS

.invalid-blink {
    background-color: red;
}

JavaScript

$(function() {
    var on = false;
    window.setInterval(function() {
        on = !on;
        if (on) {
            $('.invalid').addClass('invalid-blink')
        } else {
            $('.invalid-blink').removeClass('invalid-blink')
        }
    }, 2000);
});

Live demo

http://jsfiddle.net/bikeshedder/SMwAn/

Related Topic