HTML/JavaScript 슬라이딩 요소 사용

6302 단어 HTMLJavaScript
요소를 클릭하면 해당 요소의 슬라이드가 표시됩니다.

코드


sample.html

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>要素スライドテスト</title>
<style>
body{
  background: #ccc;
}

.panel{
  position: fixed;
  bottom: 0px;
  right: 0px;
  width: 200px;
  background: rgba(0,255,0,0.7);
  color: #00f;
  font-size: 2em;
  transition: 1s;
}
</style>
</head>
<body>
<div class="panel">panel</div>
<script>
var panel = document.querySelector('.panel');

var hideHeight = 1.5;
var openHeight =  15;

//default height
panel.style.height = hideHeight + 'em';

panel.addEventListener('click',function (){
  //emをpxに変換
  var pxPerEm = getComputedStyle(panel, '').fontSize.match(/\d*\.?\d*/)[0];

  if(panel.offsetHeight == hideHeight * pxPerEm){
    this.style.height = openHeight + 'em';
  }else if(panel.offsetHeight == openHeight * pxPerEm){
    this.style.height = hideHeight + 'em';
  }else{
    return;
  }
}); 
</script>
</body>
</html>

3element.offsetHeight'px'로 요소의 높이(padding,border 포함)를 얻는다.
height는 "em"으로 지정합니다(개인적으로 "em"으로 지정하고 싶습니다)
'px'와'em'에서 비교할 수 없기 때문에 em를 px로 바꾸었다.

실행 결과


슬라이드 전



슬라이드 이후


좋은 웹페이지 즐겨찾기