JSFiddle - React, Tailwind, and code Playground

by Luis Felipe Morais

HTML

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Slideshow JS</title>
</head>

<body>
     <!-- Parte total do slideshow-->
    <div class="slideshow">
        <!-- Coluna 1 - Nome das Notícias -->
        <div class="slideshow-bar">
            <ul class="sb-list">
                <li class="sb-item" data-slide="foto1">
                    <h3>Teste de Título 1</h3>
                    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. In eget augue purus, at interdum turpis.</p>
                </li>
                <li class="sb-item" data-slide="foto2">
                    <h3>Teste de Título 2</h3>
                    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. In eget augue purus, at interdum turpis.</p>
                </li>
                <li class="sb-item" data-slide="foto3">
                    <h3>Teste de Título 3</h3>
                    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. In eget augue purus, at interdum turpis.</p>
                </li>
                <li class="sb-item" data-slide="foto4">
                    <h3>Teste de Título 4</h3>
                    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. In eget augue purus, at interdum turpis.</p>
                </li>
            </ul>
        </div>
        <!-- Coluna 2 - Foto das Notícias -->
        <div class="slideshow-content">
            <ul class="sc-list">
                <li id="foto1" class="sc-item sc-item-selected">
                    1
                    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
                    tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
                    quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
                    consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
                    cillum dolore eu...

CSS

.slideshow{width:1000px;height:400px;border:1px solid #333333;}
.slideshow-bar{width:30%;background:#F8F7F7;float:left;height:100%;}
.sb-list{list-style:none;margin:0;padding:0;}
.sb-item{padding:5px;border-bottom:1px solid #CCC;cursor:pointer;}
.sb-item:hover{background:#ccc;}
.slideshow-content{overflow:hidden;height:400px;position:relative;}
.sc-list{position:relative;height:100%;}
.sc-item{position:absolute;left:0;top:0;right:0;bottom:0;visibility:hidden}
.sc-item-selected{visibility:visible;}
#foto1{background:#00CC33;}
#foto2{background:#66FF99;}
#foto3{background:#CC6699;}
#foto4{background:#FFCC00;}

JavaScript

window.addEventListener("DOMContentLoaded", function(){
    var nodeList = document.querySelectorAll(".sb-item"),
        i = nodeList.length, j = i, k;

    while(i--) {
        nodeList[i].addEventListener("mouseover", function(){
            k = j;
            while(k--) {
                document.getElementById(nodeList[k].getAttribute('data-slide')).className="sc-item";
            }
            document.getElementById(this.getAttribute('data-slide')).className="sc-item sc-item-selected";        
        });
    }
}, true);