JSFiddle - React, Tailwind, and code Playground

HTML

<div id="container">
	<ul>
        <li>
            <span>..Scrolling Text..</span>
        </li>
	</ul>
</div>

CSS

#container {
	background-color: red;
	height: 30px;
	overflow: hidden;
	position: relative;
	white-space: nowrap;
	width: 300px;
}

ul {
	float: left;
	list-style: none;
	margin: 0;
	padding: 0;
	position: absolute;
	right: 0;
	top: 5px;
	white-space: nowrap;
	
	-webkit-transition: right 0ms linear 0;
	-moz-transition: right 0ms linear 0;
	-o-transition: right 0ms linear 0;
	transition: right 0ms linear 0;
	
	/* Make Firefox happy */
	-moz-transition-timing-function: linear;
	transition-timing-function: linear;
}

li {
	float: left;
}

li span {
	display: inline-block;
	padding: 0 10px;
}

JavaScript

var $inner, $originalContent,
    contentWidth,
    resize = true,
    duration;
	
$(document).ready(init);

function init() {
    
    var $container = $("#container");
    $inner = $("ul", $container);
    $originalContent = $("li", $inner);
    
    contentWidth = $originalContent.outerWidth();
    duration = Math.floor(contentWidth / 100) * 1000;
    
    $inner.on("webkitTransitionEnd oTransitionEnd otransitionend transitionend", scroll);
    scroll();
}

function scroll() {
    if (resize) {
        resize = false;
        
        var c = ["green", "blue", "yellow"];
        for (var i = 0; i < 3; i++) {
            $inner.prepend($originalContent.clone().css("background-color", c[i]));
        }
        
        var totalWidth = $("li", $inner).length * contentWidth;
        $inner.width(totalWidth + 1); // Make Firefox happy
    }
    
    // IE 10 won't set this after transition ends. Remains 0 after .css() call
    $inner.css({ "right": "-" + contentWidth + "px" }); 
    $inner.css("transitionDuration", "0ms");
    
    setTimeout(function(){
        $inner.css({ "transitionDuration": duration + "ms", "right": 0 });
    }, 0);
}