webかたつむり ウェブデザインを勉強中 ウェブ初心者のおぼえがき

webかたつむり

WEB制作会社のフォトグラファー

課題:06-09

  • 問09
  • cssがポイント。
  • 全体を包む、#wrap containerのようなもの。
  • #wrapには、position: relative;ボタンposition:absolute;で表示するため。
  • #wrapの中には、ボタンが2つと、#carouselが入っている。
  • 表示領域、いちばんメインの、#carouselには、overflow: hidden;を記述して、範囲外は表示しないようにする。
  • そして、#inner。すべての画像を横一列につないだもの。
  • #inner=<ul>
  • <ul>にはdisplay: flex;。子要素である<li>を横一列に並べる。

html

<body>
<div id="wrap">

<p id="prevbtn"><img src="img/Q009_white_arrow_prev.png" alt="prev"></p>
<p id="nextbtn"><img src="img/Q009_white_arrow_next.png" alt="next"></p>
<div id="carousel">
<div id="inner">
<ul>
<li><a href="#"><img src="img/Q009_0.jpg"></a></li>
<li><a href="#"><img src="img/Q009_1.jpg"></a></li>
<li><a href="#"><img src="img/Q009_2.jpg"></a></li>
<li><a href="#"><img src="img/Q009_3.jpg"></a></li>
</ul>
</div><!--inner-->
</div><!--carousel-->

</div><!--wrap-->
</body>

css

@charset "utf-8";
/* CSS Document */
html, body, ul, li, img{
margin: 0;
padding: 0;
line-height: 1.0;
}
img{
vertical-align: bottom;
border: none;
}
a{
text-decoration: none;
}
/*reset-----------------------------------------------------------
*/
#wrap{
width: 800px;
height: 250px;
margin: 100px auto;
position: relative;
}
#prevbtn{
position: absolute;
top: 60px;
left: 25px;
cursor: pointer;
}
#nextbtn{
position: absolute;
top: 60px;
right: 25px;
cursor: pointer;
}
#carousel{
width: 100%;
height: 100%;
overflow: hidden;
}
#inner{
width: 3200px;
height: 250px;
}
#inner>ul{
display: flex;
}
#inner>ul>li{
width: 800px;
height: 250px;
cursor: default;
}
#inner>ul>li{
display: block;
}

 script

<script>
$(function(){
$('#inner>ul>li:last').prependTo('#inner>ul');
$('#inner').css('marginLeft','-800px');

$('#prevbtn').on('click', function(){
$('#inner:not(:animated)').animate({'marginLeft':parseInt($('#inner').css('marginLeft'))+800+'px'}, 'swing',function(){
$('#inner').css('marginLeft','-800px');
$('#inner>ul>li:last').prependTo('#inner>ul');
$('#nextbtn', '#prevbtn').show();
});
});

$('#nextbtn').on('click', function(){
$('#inner:not(:animated)').animate({'marginLeft':parseInt($('#inner').css('marginLeft'))-800+'px'}, 'swing',function(){
$('#inner').css('marginLeft','-800px');
$('#inner>ul>li:first').appendTo('#inner>ul');
$('#nextbtn', '#prevbtn').show();
});
});
});
</script>