반복연습 2번째
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>2번째 슬라이드 만들기</title>
<link href="main.css" rel="stylesheet">
</head>
<body>
<div class="slide-block">
<div class="slide">
<div class="item" data-color="#9999FF" data-target="1"></div>
<div class="item" data-color="#FFCCCC" data-target="2"></div>
<div class="item" data-color="#996666" data-target="3"></div>
<div class="item" data-color="#FF9966" data-target="4"></div>
<div class="item" data-color="#6699CC" data-target="5"></div>
</div>
<div class="slide-arrow">
<div class="left">
<i class="fa fa-angle-left" aria-hidden="true"></i>
</div>
<div class="right">
<i class="fa fa-angle-right" aria-hidden="true"></i>
</div>
</div>
<div class="anchor">
<div class="active" data-anchor="1"></div>
<div data-anchor="2"></div>
<div data-anchor="3"></div>
<div data-anchor="4"></div>
<div data-anchor="5"></div>
</div>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://use.fontawesome.com/3398c33652.js"></script>
<script src="main.js"></script>
</body>
</html>
CSS
*{
border: 0;
padding: 0;
margin: 0;
}
.slide-block {
width: 700px;
height: 400px;
border: 1px solid #eee;
position: relative;
overflow: hidden;
margin: 10% auto;
}
.slide-block > .slide {
width: 3500px;
height: 400px;
position: absolute;
transition: 0.4s;
left: 0;
top: 0;
}
.slide-block > .slide > .item {
width: 700px;
height: 400px;
float: left;
}
.slide-arrow {
font-size: 50px;
}
.slide-arrow > .left ,
.slide-arrow > .right {
position: absolute;
padding: 160px 0;
color: rgba(255,255,255,0.5);
cursor: pointer;
}
.slide-arrow > .left:hover ,
.slide-arrow > .right:hover {
color: rgba(255,255,255,1);
transition: 0.4s;
}
.slide-arrow > .left {
left: 20px;
}
.slide-arrow > .right {
right: 20px;
}
.anchor {
position: absolute;
bottom: 20px;
width: 100%;
text-align: center;
}
.anchor > div {
width: 15px;
height: 15px;
border-radius: 10px;
background-color: rgba(255,255,255,0.5);
display: inline-block;
margin: 0 4px;
}
.anchor > div:hover,
.anchor > .active{
background-color:rgba(255,255,255,1);
}
JS
$(window).on('load', function() {
var activeSlide = 1;
var activeNode = 1;
$(".left").on("click", function(){
if (activeSlide === 1){
activeSlide = 5;
}else {
activeSlide -= 1;
}
activeNode = activeSlide;
moveSlide(activeSlide);
lightAnchor(activeNode);
});
$(".right").on("click", function(){
if (activeSlide === 5){
activeSlide = 1;
}else {
activeSlide += 1;
}
activeNode = activeSlide;
moveSlide(activeSlide);
lightAnchor(activeNode);
});
$(".anchor div").on("click", function(){
activeSlide = $(this).attr("data-anchor");
moveSlide(activeSlide);
lightAnchor(activeSlide);
});
function moveSlide(targetSlide){
var targetNode = targetSlide - 1;
var distence = targetNode * 700;
$(".slide").css("left", - distence);
}
function lightAnchor(targetAncor){
$(".active").removeClass("active");
$("[data-anchor='"+targetAncor+"']").addClass("active");
}
// .item data-color속성 받아서 background로 넣기
$(".item").each(function(){
$(this).css("background-color", $(this).attr("data-color"));
});
})