JS 아코디언 효과 구현
효과 도
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title> </title>
<link rel="stylesheet" href="index.css" rel="external nofollow" >
</head>
<body>
<div class="wrapper">
<ul class="wrapUl">
<li>
<div class="title">
<h1> </h1>
</div>
<div class="picBox picBox1"></div>
<div class="decration"> ? , , 。 ?</div>
</li>
<li>
<div class="title">
<h1> </h1>
</div>
<div class="picBox picBox2"></div>
<div class="decration"> , , , , 、 ……</div>
</li>
<li>
<div class="title">
<h1> </h1>
</div>
<div class="picBox picBox3"></div>
<div class="decration"> , , </div>
</li>
<li>
<div class="title">
<h1> </h1>
</div>
<div class="picBox picBox4"></div>
<div class="decration"> , 。 , 。 </div>
</li>
<li>
<div class="title">
<h1> </h1>
</div>
<div class="picBox picBox5"></div>
<div class="decration"> , , ; , , </div>
</li>
<li>
<div class="title">
<h1> </h1>
</div>
<div class="picBox picBox6"></div>
<div class="decration"> , , , , , </div>
</li>
<li>
<div class="title">
<h1> </h1>
</div>
<div class="picBox picBox7"></div>
<div class="decration"> , , , </div>
</li>
</ul>
</div>
<script src="jquery.js"></script>
<script src="index.js"></script>
</body>
</html>
JS 코드
var oUl = $('ul'),
oLi = $('li'),
len = oLi.length,
width = parseInt(oUl.css('width')),
gw = width / len,
ot = Math.floor((width - 400) / (len - 1));
flag = true;
function init(){
if(flag){
change($(oLi[len-1]));
}
}
function bindEvent(){
oLi.on('click',function(){
change($(this));
if(($(this).index() +1) == len){
flag = false;
}else{
flag = true;
}
});
oUl.on('mouseleave',function(){
init();
})
}
function change(event){
event.animate({
'width':'400px'
},300,'linear').siblings().animate({
'width':ot + 'px'
},300,'linear');
event.find('.title').css({
'display':'none'
})
event.siblings().find('.title').css({
'display':'block'
})
event.find('.decration').css({
'bottom':'0px'
})
event.siblings().find('.decration').css({
'bottom':'-50px'
})
}
init();
bindEvent();
CSS 코드
*{
margin:0;
padding:0;
list-style:none;
}
body{
background-color:#333;
}
.wrapper{
width:80%;
margin:50px auto;
padding:40px;
}
.wrapper ul{
width:100%;
height:300px;
overflow: hidden;
}
.wrapper ul li{
float: left;
width:14.2;
height:260px;
position:relative;
overflow:hidden;
cursor:pointer;
}
.picBox{
width:100%;
height:100%;
}
.picBox1{
background:url(images/1.jpg) no-repeat center 0;
}
.picBox2{
background:url(images/2.jpg) no-repeat center 0;
}
.picBox3{
background:url(images/3.jpg) no-repeat center 0;
}
.picBox4{
background:url(images/4.jpg) no-repeat center 0;
}
.picBox5{
background:url(images/5.jpg) no-repeat center 0;
}
.picBox6{
background:url(images/6.jpg) no-repeat center 0;
}
.picBox7{
background:url(images/7.jpg) no-repeat center 0;
}
.wrapper ul li .title{
position:absolute;
overflow:hidden;
width:100%;
height:100%;
left:0;
top:0;
background:rgba(0,0,0,0.5);
}
.wrapper ul li .title h1{
color:#fff;
width:30px;
margin:0 auto;
display:block;
font:20px;
padding-top:30px;
opacity:0.8;
}
.wrapper ul li .decration{
width:400px;
height:40px;
padding-left:20px;
padding-right:30px;
position:absolute;
left:0;
bottom:-50px;
background:rgba(0,0,0,0.3);
color:#FFF;
}
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[2022.04.19] 자바스크립트 this - 생성자 함수와 이벤트리스너에서의 this18일에 this에 대해 공부하면서 적었던 일반적인 함수나 객체에서의 this가 아닌 오늘은 이벤트리스너와 생성자 함수 안에서의 this를 살펴보기로 했다. new 키워드를 붙여 함수를 생성자로 사용할 때 this는...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.