有时我们可能想要从一个页面跳转到另一个页面的过渡变得柔和些,也即是,点击链接后,当前页面渐隐,而后跳转渐显新页面的效果。可以使用jquery轻易实现。
效果:
页面1:
<!DOCTYPE HTML>
<html lang="en-US">
<head>
<meta charset="UTF-8">
<title>页面1</title>
<script type="text/javascript" src="jquery-1.8.2.min.js"></script>
<script type="text/javascript">
$(function () {
$("html").css("opacity","0");
$("html").animate({opacity: 1}, 700);
$("a").click(function() {
var _this = $(this);
$("html").animate({opacity: 0}, 700,function () {
window.location.href = _this.attr("href");
});
return false
});
})
</script>
</head>
<body>
<a href="opacity2.html">opacity2</a>
<h2>页面1</h2>
</body>
</html>
页面2:
<!DOCTYPE HTML>
<html lang="en-US">
<head>
<meta charset="UTF-8">
<title>页面2</title>
<script type="text/javascript" src="jquery-1.8.2.min.js"></script>
<script type="text/javascript">
$(function () {
$("html").css("opacity","0");
$("html").animate({opacity: 1}, 700);
$("a").click(function() {
var _this = $(this);
$("html").animate({opacity: 0}, 700,function () {
window.location.href = _this.attr("href");
});
return false
});
})
</script>
</head>
<body>
<a href="opacity.html">opacity</a>
<h2>页面2</h2>
</body>
</html>
原理:
$(function () {
$("html").css("opacity","0"); /*加载完成后将页面设置为透明*/
$("html").animate({opacity: 1}, 700); /*调用动画函数显示内容*/
$("a").click(function() {
var _this = $(this); /*得到当前a标签并赋值给_this*/
$("html").animate({opacity: 0}, 700,function () { /*关键,调用动画函数将当前页面渐隐,页面隐藏后调用函数*/
window.location.href = _this.attr("href"); /*跳转到a链接的页面*/
});
return false /*关键,点击a后不跳转,等待animate动画完毕后使用js跳转*/
});
})