JSFiddle - React, Tailwind, and code Playground

HTML

<div id="testDiv">
    <div class="inner">
        <p>testing</p>
    </div>
</div>

CSS

body {
    position: relative;
}
#testDiv {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: red;
    color: #fff;
    text-align: center;
    content: "";
    opacity: 0;
    visibility: hidden;
}
#testDiv.showIt {
    opacity: 1;
    visibility: visible;
}
.inner {
    position: absolute;
    background: #000;
    width: 50%;
    height: 100%;
    content: "";
    top: 0;
    right: 0;
    opacity: 0;
}
#testDiv.showIt .inner {
    transform: rotate(0deg) scale(1);
    opacity: 1;
}
p {
    position: absolute;
    top: 49%;
    right: 0;
    bottom: 0;
    left: 0;
    margin: auto;
    color: #fff;
}
#testDiv.showIt .left {
    transform: translateX(20%);
}
.ease {
    transition-timing-function: ease;
}
.fast {
    transition-duration: 0.2s;
}

JavaScript

(function ($) {
    $.fn.testPlugin = function (options) {

        var settings = $.extend({
			showDiv: false,
            delayIt: null,
            trans: null,
            timing: null,
            speed: null,

        }, options);

        return this.each(function () {
            var self = this;
            
            // Show main
            if (settings.showDiv == true) {
                setTimeout(function () {
					$(self).addClass("showIt");
                }, settings.delayIt);
            };
            
            // Show inner
            $(".inner").addClass(settings.trans + " " + settings.timing + " " + settings.speed).css({
            	"transition-delay" : settings.delayIt / 1000 + 0.2 + "s", // if i delete this delay then inner div slides fine
            });
        
        });
    }
}(jQuery));

$(document).ready(function () {
    $("#testDiv").testPlugin({
		showDiv: true,
        delayIt: 500,
        trans: "left",
        timing: "ease",
        speed: "fast",
    });
});