全屏滚动效果,原生js也很好实现,主要是用 mousewheel 鼠标滚轮滚动事件, 来判断上滚动还是下滚动,之后设置每次滚动的高度为屏幕的高度即可。但是,虽然效果简单,但是兼容性很差,要做很多兼容处理及比较麻烦啦!(了解一下,有兴趣的同学可以研究一下)
fullPage.js 是一个基于 jQuery 的插件,它能够帮你很方便、很轻松的制作出全屏网站。
github 官网 https://github.com/alvarotrigo/fullPage.js
中文演示地址 http://www.dowebok.com/demo/2014/77/
主要功能有:
支持鼠标滚动
支持前进后退和键盘控制
多个回调函数
支持手机、平板触摸事件
支持 CSS3 动画
支持窗口缩放
窗口缩放时自动调整
可设置滚动宽度、背景颜色、滚动速度、循环选项、回调、文本对齐方式等等
<link rel="stylesheet" href="css/jquery.fullPage.css">
<script src="js/jquery.min.js">script>
<script src="js/jquery.easings.min.js">script>
<script src="js/jquery.fullPage.js">script>
第一屏
第二屏
第四屏
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-o7MOaF0e-1573727243030)(en-resource://database/610:1)]
$(function(){
$('#fullpage').fullpage();
});
选项 | 类型 | 默认值 | 说明 |
---|---|---|---|
verticalCentered | 字符串 | true | 内容是否垂直居中 |
resize | 布尔值 | false | 字体是否随着窗口缩放而缩放 |
sectionColor | 函数 | 无 | 设置背景颜色 |
anchors | 数组 | 无 | 定义锚链接 |
scrollingSpeed | 整数 | 700 | 滚动速度,单位为毫秒 |
easing | 字符串 | easeInQuart | 滚动动画方式 |
menu | 布尔值 | false | 绑定菜单,设定的相关属性与 anchors 的值对应后,菜单可以控制滚动 |
navigation | 布尔值 | false | 是否显示项目导航 |
navigationPosition | 字符串 | right | 项目导航的位置,可选 left 或 right |
navigationTooltips | 数组 | 空 | 项目导航的 tip |
slidesNavigation | 布尔值 | false | 是否显示左右滑块的项目导航 |
slidesNavPosition | 字符串 | bottom | 左右滑块的项目导航的位置,可选 top 或 bottom |
controlArrowColor | 字符串 | #fff | 左右滑块的箭头的背景颜色 |
loopBottom | 布尔值 | false | 滚动到最底部后是否滚回顶部 |
loopTop | 布尔值 | false | 滚动到最顶部后是否滚底部 |
loopHorizontal | 布尔值 | true | 左右滑块是否循环滑动 |
autoScrolling | 布尔值 | true | 是否使用插件的滚动方式,如果选择 false,则会出现浏览器自带的滚动条 |
scrollOverflow | 布尔值 | false | 内容超过满屏后是否显示滚动条 |
css3 | 布尔值 | false | 是否使用 CSS3 transforms 滚动 |
paddingTop | 字符串 | 0 | 与顶部的距离 |
paddingBottom | 字符串 | 0 | 与底部距离 |
fixedElements | 字符串 | 无 | |
normalScrollElements | 无 | ||
keyboardScrolling | 布尔值 | true | 是否使用键盘方向键导航 |
touchSensitivity | 整数 | 5 | |
continuousVertical | 布尔值 | false | 是否循环滚动,与 loopTop 及 loopBottom 不兼容 |
animateAnchor | 布尔值 | true | |
normalScrollElementTouchThreshold | 整数 | 5 |
注意方法的使用时需要添加:
$.fn.fullpage 比如
$.fn.fullpage.moveTo(1);
名称 | 说明 |
---|---|
moveSectionUp() | 向上滚动 |
moveSectionDown() | 向下滚动 |
moveTo(section, slide) | 滚动到 |
moveSlideRight() | slide 向右滚动 |
moveSlideLeft() | slide 向左滚动 |
setAutoScrolling() | 设置页面滚动方式,设置为 true 时自动滚动 |
setAllowScrolling() | 添加或删除鼠标滚轮/触控板控制 |
setKeyboardScrolling() | 添加或删除键盘方向键控制 |
setScrollingSpeed() | 定义以毫秒为单位的滚动速度 |
名称 | 说明 |
---|---|
afterLoad | 滚动到某一屏后的回调函数,接收 anchorLink 和 index 两个参数,anchorLink 是锚链接的名称,index 是序号,从1开始计算 |
onLeave | 滚动前的回调函数,接收 index、nextIndex 和 direction 3个参数:index 是离开的“页面”的序号,从1开始计算;nextIndex 是滚动到的“页面”的序号,从1开始计算;direction 判断往上滚动还是往下滚动,值是 up 或 down。 |
afterRender | 页面结构生成后的回调函数,或者说页面初始化完成后的回调函数 |
afterSlideLoad | 滚动到某一水平滑块后的回调函数,与 afterLoad 类似,接收 anchorLink、index、slideIndex、direction 4个参数 |
onSlideLeave | 某一水平滑块滚动前的回调函数,与 onLeave 类似,接收 anchorLink、index、slideIndex、direction 4个参数 |
介绍:easing是jquery的一个插件,使用它可以创建更加绚丽的动画效果。
环境:因为easing是jQuery的插件,所以必须是在引入jquery之后再引入它
如果只想要简单的写法就用
$(".car").animate({"left": "150%"}, 4000, "easeInElastic", function() {});
easing:格式为json,{duration:持续时间,easing:过渡效果,complete:成功后的回调函数}
$(element).animate({
height:500,
width:600
},{
easing: 'easeInOutQuad',
duration: 500,
complete: function(){}
});
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AYVHn6dQ-1573727243032)(en-resource://database/608:1)]
https://matthewlein.com/experiments/easing.html
我们解决的问题, 主要是针对于ie低版本的,也就是只有低版本ie才执行才对。
<!--[if lt IE 9]>
<script src="js/respond.js">script>
<script src="js/html5shiv.min.js">script>
<![endif]—>
respond.js 目的是为了解决 ie低版本的CSS3媒体查询 media query
条件注释 了解
除IE外都可识别
使用方法:
引用js文件包
<script src="js/jquery.min.js">script>
<script src="js/circlr.min.js">script>
2.书写结构:
<div class="container">
<div id="circlr">
<img data-src="picture/1.png" />
<img data-src="picture/2.png" />
<img data-src="picture/3.png" />
...
<div id="loader">div>
div>
div>
注意, 是 自定义属性 data-src 里面写路径 2. loader 是 加载项
书写css
#circlr {
cursor: move;
margin: 0 auto;
min-height: 100px;
position: relative;
}
#circlr #loader {
background: url(../images/loader.gif) center center no-repeat;
bottom: 0;
display: none;
left: 0;
position: absolute;
right: 0;
top: 0;
}
4.调用文件对象
<script type="text/javascript">
var crl = circlr('circlr', {
scroll : true,
loader : 'loader'
});
</script>
视差滚动(Parallax Scrolling)指网页滚动过程中,多层次的元素进行不同程度的移动,视觉上形成立体运动效果的网页展示技术
主要核心就是前景和背景以不同的速度移动,从而创造出3D效果。 这种效果可以给网站一个很好的补充。
视差滚动效果酷炫,适合于个性展示的场合。
视差滚动徐徐展开,适合于娓娓道来,讲故事的场合。
视差滚动容易迷航,需要具备较强的导航功能。
传统的网页的文字、图片、背景都是一起按照相同方向相同速度滚动的,而视差滚动则是在滚动的时候,内容和多层次的背景实现或不同速度,或不同方向的运动。
有的时候也可以加上一些透明度、大小的动画来优化显示。
利用background-attachment属性实现。
background-attachment: fixed || scroll || local
[stellar.js]是一个 jQuery插件,能很容易地给网站添加视差滚动效果。 尽管已经停止了维护,但它非常稳定,与最新版本的jQuery兼容,很多开发者也在使用它。 这个插件在jQuery插件库里很流行。
http://markdalgleish.com/projects/stellar.js/ 官网
<script src="path/to/jquery/jquery.min.js"></script>
<script src="path/to/jquery.stellar.min.js"></script>
<div class="content" id="content1">
<p>TEXT HEREp>
div>
<div class="content" id="content2">
<p>TEXT HEREp>
div>
<div class="content" id="content3" data-stellar-background-ratio="0.5">
<p>TEXT HEREp>
div>
<div class="content" id="content4" data-stellar-background-ratio="0.5">
<p>TEXT HEREp>
div>
<div class="content" id="content5" data-stellar-background-ratio="0.5">
<p>TEXT HEREp>
div>
<div class="content" id="content6" data-stellar-background-ratio="0.5">
<p>TEXT HEREp>
div>
body {
font-size: 20px;
color: white;
text-shadow: 0 1px 0 black, 0 0 5px black;
}
p {
padding: 0 0.5em;
margin: 0;
}
.content {
background-attachment: fixed;
height: 400px;
}
#content1 {
background-image: url("xxx.jpg");
}
#content2 {
background-image: url("xxx.jpg");
}
#content3 {
background-image: url("xxx.jpg");
}
#content4 {
background-image: url("xxx.jpg");
}
#content5 {
background-image: url("xxx.jpg");");
}
#content6 {
background-image: url("xxx.jpg");
}
$.stellar({
horizontalScrolling: false,
responsive: true
});
名称 | 说明 |
---|---|
horizontalScrolling 和 verticalScrolling | 该配置项用来设置视差效果的方向。horizontalScrolling设置水平方向,verticalScro设置垂直方向, 为布尔值,默认为true |
responsive | 该配置项用来制定load或者resize时间触发时是否刷新页面,其值为布尔值,默认为false |
hideDistantElements | 该配置项用来设置移出视线的元素是否隐藏,其值为布尔值,若不想隐藏则设置为false` |
data-stellar-ratio=“2” | 定义了此元素针对页面滚动的速度比率,比如,0.5为页面滚动的50%,2为页面滚动的200%,所以数值越大,你可以看到页面元素滚动速度越快。 |
data-stellar-background-ratio | 该配置项用在单个元素中,其值为一个正数,用来改变被设置元素的影响速度。 例如 值为0.3时,则表示背景的滚动速度为正常滚动速度的0.3倍。如果值为小数时最好在样式表中设置 |