如何通过CSS使div实现全屏效果
1、全屏(竖屏)要素
- 全屏的元素(section)及其父元素都要设置height:100%
- 将html、body标签设置height:100%;并去掉滚动条
1
2
3
4html,body{
height: 100%;
overflow: hidden;
}
2、横屏
使每个section呈现出横屏全屏滚动的话需将每个section设置float:left;且width=100%/section数;最外层的div要设置width=100%*section数1
2
3
4
5
6
7.left{
float: left;
width: 25%;
}
.container{
width: 400%;
}
全屏滑动插件开发
jQuery插件框架
闭包的作用1
2
3(function($){
//do something
})(jQuery);
闭包的好处
- 避免全局依赖
- 避免第三方插件的破坏
- 兼容jQuery操作符$和jQuery
开发方法:
1、 类级别组件开发:
即给jQuery命名空间下添加新的全局函数,也称为静态方法。1
2
3jQuery.myPlugin = function(){
// do sth
};
例如 $.Ajax()
, $.extend()
2、 对象级别组件开发:
即挂在jQuery原型下的方法,这样通过选择器获取的jQuery对象实例也能共享该方法,也称为动态方法。1
2
3$.fn.myPlugin = function(){
// do sth
};
这里的$.fn===$.prototype
例如 addClass()
, attr()
链式调用
如:$(“div”).next().addClass()…1
2
3
4
5
6
7
8$.fn.myPlugin = function(){
return this.each(function(){
//do something
});
};
// 代码说明:
// return this 返回当前对象,来维护插件的链式调用
// each 循环实现每个元素的访问
单例模式
1 | $.fn.Myplugin = function(){ |
插件Demo下载
总结
由于对jQuery了解一般,只会一些基本的jQuery操作(如选择器、筛选、CSS、事件等),对jQuery开发插件不了解,因此视频看着很吃力,很多内容能看懂,但不理解为什么这样写。如果自己动手写一个jQuery插件的话,目前几乎是不可能的事。
故而网上找了些jQuery制作插件入门教程,如下:
另:网上搜索时,发现很多网站都在使用全屏切换效果,如小米/魅族等的手机产品页面,找到了一些制作全屏切换效果的JS插件:
FullPage.js/FullPage
下面一部分内容是FullPage.js的介绍,内容来自
FullPage.js全屏滚动插件
fullPage.js 是一个基于 jQuery 的插件,它能够很方便、很轻松的制作出全屏网站。
主要功能
- 支持鼠标滚动-
- 支持前进后退和键盘控制-
- 多个回调函数-
- 支持手机、平板触摸事件-
- 支持 CSS3 动画-
- 支持窗口缩放-
- 窗口缩放时自动调整-
- 可设置滚动宽度、背景颜色、滚动速度、循环选项、回调、文本对齐方式等等
兼容性
fullPage.js 支持 IE8+ 及其他现代浏览器。
使用方法
1、引入文件1
2
3
4<link rel="stylesheet" href="css/jquery.fullPage.css">
<script src="js/jquery.min.js"></script>
<script src="js/jquery-ui.min.js"></script>
<script src="js/jquery.fullPage.js"></script>
2、HTML1
2
3
4
5
6
7
8
9
10
11<div id="fullpage">
<div class="section">第一屏</div>
<div class="section">第二屏</div>
<div class="section">
<div class="slide">第三屏的第一屏</div>
<div class="slide">第三屏的第二屏</div>
<div class="slide">第三屏的第三屏</div>
<div class="slide">第三屏的第四屏</div>
</div>
<div class="section">第四屏</div>
</div>
3、JavaScript1
2
3
4
5
6
7
8
9
10
11
12
13
14
15$(function(){
$("#fullpage").fullpage();
})
//或添加内容。
$(function(){
$('#fullpage').fullpage({
'verticalCentered': false,
'css3': true,
'sectionsColor': ['#254875', '#00FF00', '#254587', '#695684'],
anchors: ['page1', 'page2', 'page3', 'page4'],
'navigation': true,
'navigationPosition': 'right',
'navigationTooltips': ['fullPage.js', 'Powerful', 'Amazing', 'Simple']
})
})
经测试,最好至少有 anchors 这个参数,否则在火狐浏览器中,第一次滚动会直接滚到底部。
点击这里查看上面代码的示例:http://www.uedsc.com/wp-content/uploads/2015/02/fullpage-demo/
配置
1、选项
选项 | 类型 | 默认值 | 说明 |
---|---|---|---|
verticalCentered | 字符串 | true | 内容是否垂直居中 |
resize | 布尔值 | false | 字体是否随着窗口缩放而缩放 |
slidesColor | 函数 | 无 | 设置背景颜色 |
anchors | 数组 | 无 | 定义锚链接 |
scrollingSpeed | 整数 | 700 | 滚动速度,单位为毫秒 |
easing | 字符串 | easeInQuart | 滚动动画方式 |
menu | 布尔值 | false | 绑定菜单,设定的相关属性与 anchors 的值对应后,菜单可以控制滚动 |
navigation | 布尔值 | false | 是否显示项目导航 |
navigationPosition | 字符串 | right | 项目导航的位置,可选 left 或 right |
navigationColor | 字符串 | #000 | 项目导航的颜色 |
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 |
2、方法
名称 | 说明 |
---|---|
moveSectionUp() | 向上滚动 |
moveSectionDown() | 向下滚动 |
moveTo(section, slide) | 滚动到 |
moveSlideRight() | slide 向右滚动 |
moveSlideLeft() | slide 向左滚动 |
setAutoScrolling() | 设置页面滚动方式,设置为 true 时自动滚动 |
setAllowScrolling() | 添加或删除鼠标滚轮/触控板控制 |
setKeyboardScrolling() | 添加或删除键盘方向键控制 |
setScrollingSpeed() | 定义以毫秒为单位的滚动速度 |
3、回调函数
名称 | 说明 |
---|---|
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个参数 |