<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/animejs/3.2.0/anime.min.js"></script>
<div class="lang-select">
<ul class="flex flex-column-nowrap">
<li><a class="flex flex-ai-c"><span>KOR</span><span>▼</span></a></li>
<li class="flex-order-m1"><a class="flex flex-ai-c"><span>ENG</span><span>▼</span></a></li>
</ul>
</div>
<div class="top-bar flex flex">
<nav class="menu-box-1">
<ul class="flex height-100p">
<li><a href="#" class="height-100p flex flex-ai-c relative">Bada Platform</a></li>
<li><a href="#" class="height-100p flex flex-ai-c relative">Developers</a></li>
<li><a href="#" class="height-100p flex flex-ai-c relative">Notice</a></li>
<li>
<a href="#" class="height-100p flex flex-ai-c relative">About Us</a>
<ul></ul>
</li>
</ul>
</nav>
</div>
<div style="margin-top:500px;"></div>
<div class="ship-ani-box active-on-visible" data-active-on-visible-callback-func-name="ShipAniBox__init">
<div class="follow-path"><img src="http://www.badaplatform.org/images/main/icon_ship.png" alt=""></div>
<div class="outerWrapper">
<svg version="1.1" id="Isolation_Mode" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px"
y="0px" width="476px" height="267px" viewBox="1.75 0.375 476 267" enable-background="new 1.75 0.375 476 267"
xml:space="preserve">
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="-8.4348" y1="7.8242" x2="339.801" y2="7.8242" gradientTransform="matrix(1.36 0 0 1.36 16.4391 122.2301)">
<stop offset="0" style="stop-color:#6A9AF0"/>
<stop offset="1" style="stop-color:#EEF4FE"/>
</linearGradient>
<path fill="#FFFFFF" stroke="url(#SVGID_1_)" stroke-width="10" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" d="M11.768,8c0,0,24.444,139.932,229.214,153.464c207.453,13.712,230.786,96.28,230.786,96.28"/>
</svg>
</div>
</div>
<!-- //ship_road -->
<div class="img-box-1 active-on-visible">
<div class="img-box">
<img src="http://www.badaplatform.org/images/main/img_infra01.png" alt="">
</div>
</div>
/* no */
body, ul, li {
margin:0;
padding:0;
list-style:none;
}
/* lib */
.flex {
display:flex;
}
.flex-column-nowrap {
flex-flow:column nowrap;
}
.flex-order-m1 {
order:-1;
}
.flex-ai-c {
align-items:center;
}
.height-100p {
height:100%;
}
.relative {
position:relative;
}
/* cus */
.top-bar {
height:100px;
}
.top-bar .menu-box-1 > ul > li > a::before {
content:"";
display:block;
width:5px;
height:5px;
background-color:black;
position:absolute;
top:calc(50% - 20px);
left:calc(50% - 2.5px);
border-radius:50%;
visibility:hidden;
opacity:0;
transition: opacity .4s, visibility .4s;
}
.top-bar .menu-box-1 > ul > li:hover > a::before {
opacity:1;
visibility:visible;
}
.top-bar .menu-box-1 > ul > li {
position:relative;
}
.top-bar .menu-box-1 > ul > li > ul {
background-color:red;
top:100%;
left:0;
width:100%;
height:100px;
position:absolute;
border:2px solid blue;
}
.top-bar .menu-box-1 > ul > li > ul::before {
content:"";
position:absolute;
top:-7px;
left:calc(50%);
transform:translateX(-50%) rotate(45deg);
width:10px;
height:10px;
background-color:red;
border:2px solid blue;
border-bottom-color:transparent;
border-right-color:transparent;
}
.lang-select > ul > li > a > span:last-child {
transition:transform 1s;
font-size:5px;
}
.lang-select > ul > li:not(.flex-order-m1) > a > span:last-child {
visibility:hidden;
}
.lang-select.active > ul > li > a > span:last-child {
transform:rotate(180deg);
}
.lang-select {
border:10px solid red;
display:inline-block;
border-radius:10px;
height:22px;
overflow:hidden;
transition:height 1s;
}
.lang-select.active {
height:42px;
}
.ship-ani-box {
position: relative;
width: 476px;
height: 267px;
border:20px solid red;
margin:0 auto;
}
.ship-ani-box > .outerWrapper {
width:100%;
height:100%;
position: relative;
}
.ship-ani-box > .follow-path {
position: absolute;
width: 51px;
height: 20px;
top: -12px;
left: -23px;
z-index: 99;
}
.img-box-1 {
opacity:0;
transform:translateY(-500px);
transition:opacity 3s, transform 3s 1s;
}
.img-box-1.active {
opacity:1;
transform:translateY(0);
}
/* 발견되면 활성화시키는 라이브러리 시작 */
function ActiveOnVisible__init() {
$(window).resize(ActiveOnVisible__initOffset);
ActiveOnVisible__initOffset();
$(window).scroll(ActiveOnVisible__checkAndActive);
ActiveOnVisible__checkAndActive();
}
function ActiveOnVisible__initOffset() {
$('.active-on-visible').each(function(index, node) {
var $node = $(node);
var offsetTop = $node.offset().top;
$node.attr('data-active-on-visible-offsetTop', offsetTop);
if ( !$node.attr('data-active-on-visible-diff-y') ) {
$node.attr('data-active-on-visible-diff-y', '0');
}
if ( !$node.attr('data-active-on-visible-delay') ) {
$node.attr('data-active-on-visible-delay', '0');
}
});
ActiveOnVisible__checkAndActive();
}
function ActiveOnVisible__checkAndActive() {
$('.active-on-visible:not(.actived)').each(function(index, node) {
var $node = $(node);
var offsetTop = $node.attr('data-active-on-visible-offsetTop') * 1;
var diffY = parseInt($node.attr('data-active-on-visible-diff-y'));
var delay = parseInt($node.attr('data-active-on-visible-delay'));
var callbackFuncName = $node.attr('data-active-on-visible-callback-func-name');
if ( $(window).scrollTop() + $(window).height() + diffY > offsetTop ) {
$node.addClass('actived');
setTimeout(function() {
$node.addClass('active');
if ( window[callbackFuncName] ) {
window[callbackFuncName]($node);
}
}, delay);
}
});
}
$(function() {
ActiveOnVisible__init();
})
/* 발견되면 활성화시키는 라이브러리 끝 */
function ShipAniBox__init() {
var path = anime.path('.ship-ani-box path');
var motionPath = anime({
targets: '.ship-ani-box .follow-path',
translateX: path('x'),
translateY: path('y'),
rotate: path('angle'),
easing: 'easeInOutQuad',
duration: 3000,
loop: false
});
}
function LangSelect__init() {
$('.lang-select').click(function() {
$(this).toggleClass('active');
});
$('.lang-select > ul > li').click(function() {
$(this).addClass('flex-order-m1');
$(this).siblings('.flex-order-m1').removeClass('flex-order-m1');
});
}
$(function() {
LangSelect__init();
});
This Pen doesn't use any external CSS resources.
This Pen doesn't use any external JavaScript resources.