滚动事件,指的是拉动页面滚动条时触发的事件。滚动事件非常有用,特别是在“回顶部特效”以及“扁平化页面动画”中会大量用到。
在jQuery中,我们可以使用scroll()方法来表示滚动事件。
语法:
$().scroll(function(){
……
})
说明:
scroll事件经常配合scrollTop()方法一起使用的。其中,在“5.2 样式操作”这一节中我们已经详细介绍过scrollTop()方法了。
举例:固定栏目
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<style type="text/css">
body{height:1800px;}
#box1,#box2
{
display:inline-block;
width:100px;
height:100px;
}
#box1
{
background-color:Red;
}
#box2
{
background-color:Orange;
position:fixed;
}
</style>
<script src="js/jquery-1.12.4.min.js"></script>
<script>
$(function () {
//获取box2距离顶部的距离
var top = $("#box2").offset().top;
//根据滚动距离判断定位
$(window).scroll(function () {
//当滚动条距离大于box2距离顶部的距离时,设置固定定位
if ($(this).scrollTop() > top) {
$("#box2").css({ "position": "fixed", "top": "0" });
}
//当滚动条距离小于box2距离顶部的距离时,设置相对定位
else {
$("#box2").css({ "position": "relative" });
}
});
})
</script>
</head>
<body>
<div id="box1"></div><br />
<div id="box2"></div>
</body>
</html>
浏览器预览效果如图所示。
分析:
当滚动条距离大于box2距离顶部的距离时,设置固定定位;当滚动条距离小于box2距离顶部的距离时,设置相对定位。
这个技巧非常好用,常用于固定某个栏目。绿叶学习网文章右侧的某个固定栏目就是用这种方法来实现的。
举例:回顶部特效
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<style type="text/css">
body
{
height:1800px;
}
div
{
position:fixed;
right:50px;
bottom:50px;
display:none; /*设置默认情况下元素为隐藏状态*/
width:40px;
height:40px;
color:white;
background-color:#45B823;
font-family:微软雅黑;
font-size:15px;
font-weight:bold;
text-align:center;
cursor:pointer;
}
</style>
<script src="js/jquery-1.12.4.min.js"></script>
<script>
$(function () {
/*根据滚动距离判断按钮是否显示或隐藏*/
$(window).scroll(function () {
if ($(this).scrollTop() > 300) {
$("div").css("display", "inline-block");
}
else {
$("div").css("display", "none");
}
});
/*实现点击滚动回顶部*/
$("div").click(function () {
$("html,body").scrollTop(0);
});
})
</script>
</head>
<body>
<h3>绿叶,给你初恋般的感觉。</h3>
<div>回到顶部</div>
</body>
</html>
默认情况下,预览效果如图所示。
当我们拉动滚动条一段距离(如300px)后,此时预览效果如图所示。
分析:
当我们拉动滚动条一定距离后,【回到顶部】按钮就会出现。点击【回到顶部】按钮,我们会发现页面回到了顶部,此时按钮也会消失。
这就是最常见的回顶部特效。实现代码很简单,小伙伴们好好琢磨是怎么实现的。在学了后面“第8章 jQuery动画”后,我们再回顾一下,然后给回顶部特效添加动画效果。