나는 이와 비슷한 대답을 찾았지만 저에게는 적합하지 않습니다. jquery animate 대신 css3 애니메이션을 사용하여 단일 페이지 레이아웃을 스크롤하려고합니다. 내가 뭘 촬영 해시 변수의 위치를 해시 위치로 설정하고 transformX()로 전달합니다. 여기 내가 지금까지 가지고있는 것이있다.javascript 변수를 사용하여 transform 속성 값을 설정하는 방법
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<link rel="stylesheet" href="css/style.css" type="text/css">
</head>
<body>
<section id="wrapper">
<div class="nav-wrapper">
<nav>
<ul>
<li class="nav-li"><a href="#intro">home</a></li>
<li class="nav-li"><a href="#work">work</a></li>
<li class="nav-li"><a href="#about">about</a></li>
<li class="nav-li"><a href="#contact">contact</a></li>
</ul>
</nav>
</div>
<div class="home">
<div id="intro" class="content">
</div>
</div>
<div class="portfolio">
<div id="work" class="content">
</div>
</div>
<div id="about" class="about">
</div>
<div id='contact' class="connect">
</div>
<footer>
</footer>
</section>
<script src="js/jquery-1.9.1.min.js"></script>
<script src="js/main.js"></script>
</body></html>
관련 CSS :
html,body {
height:100%;
text-align:center;
transition:all 1s ease-in-out;
-webkit-transition:all 1s ease-in-out;
-moz-transition:all 1s ease-in-out;
-o-transition:all 1s ease-in-out;
}
및 관련 자바 스크립트 :
$(".nav-li > a").click(function(event){
event.preventDefault();
//calculate destination place
var dest;
if($(this.hash).offset().top > $(document).height()-$(window).height()){
dest=$(document).height()-$(window).height();
}else{
dest=$(this.hash).offset().top;
}
//go to destination
$('body').css('transform', 'translateY('+ dest +')');
//('-webkit-transform', 'translateY('+ dest +')');
//('-ms-transform', 'translateY('+ dest +')');
//('-moz-transform', 'translateY('+ dest +')');
//('-o-transform', 'translateY('+ dest +')');
console.log(dest)
});
나는 확실히 당신을 console.log (이명 령)으로 볼 수있는 '이명 령'에 대한 올바른 값을 얻고있다 . 이것은 가능하지 않습니까?
또한 개체를 css 메서드에 전달할 수 있으므로 모든 단일 브라우저 접두사에 대해 새 함수를 만들지 않아도됩니다. – codewizard