1、需要有基本的HTML结构

<div style="margin-top: 124px;" id="container" data-XSwitch>
<div class="sections">
<div class="main_about_product common_height section" ></div>
<div class="main_product_trait common_height section" ></div>
<div class="marin_system_show common_height section" ></div>
<div class="marin_system_show common_height section" ></div>
<div class="main_footer common_height section relative"></div>
</div>
</div>

2、引入需要的样式

@charset "UTF-8";
/*简单reset*/
* {
margin:;
padding:;
}
/*必须,关系到单个page能否全屏显示*/
html,
body {
height: 100%;
overflow: hidden;
}
/*以下样式用来设置slider样式,可自行修改*/
.pages {
display:none;
position:fixed;
right: 10px;
top: 49%;
list-style: none;
}
.pages li {
width: 8px;
height: 8px;
border-radius: 10%;
background: #2aff00;
margin: 8px 0px 0px 7px;
}
.pages li.active {
margin-left:;
width: 14px;
height: 14px;
border: 4px solid #2aff00;
background: none;
}
#container,.sections,.section {
/*必须,兼容,在浏览器不支持transform属性时,通过改变top/left完成滑动动画*/
position: relative;
/*必须,关系到单个page能否全屏显示*/
height: 100%;
}
.section {
/*有背景图时必须,关系到背景图能够全屏显示*/
background-size: cover;
background-position: 50% 50%;
}

3、引入滚屏插件XSwitch.js

(function ($) {
$.fn.XSwitch = function (options) {
return this.each(function () {
var _this = $(this),
instance = _this.data('XSwitch'); if (!instance) {
instance = new XSwitch(_this, options);
_this.data('XSwitch', instance);
} if ($.type(options) === 'string') {
return instance[options]();
}
});
} $.fn.XSwitch.defaults = {
selectors: {
sections: '.sections',
section: '.section',
page: '.pages',
active: '.active'
},
index: 0,
easing: 'ease',
duration: 500,
loop: false,
pagination: true,
keyboard: true,
direction: 'vertical',
callback: ''
} var _prefix = (function (temp) {
var aPrefix = ['webkit', 'moz', 'o', 'ms'],
props = '';
for (var i = 0, len = aPrefix.length; i < len; i ++) {
props = aPrefix[i] + 'Transition';
if (temp.style[props] !== undefined) {
return '-' + aPrefix[i].toLowerCase() + '-';
}
return false;
}
})(document.createElement('div')); var XSwitch = (function () {
function XSwitch(element, options) { this.settings = $.extend(true, $.fn.XSwitch.defaults, options);
this.element = element;
this.init();
}
XSwitch.prototype = { init: function () {
var _this = this;
this.selectors = this.settings.selectors; this.sections = this.element.find(this.selectors.sections);
this.section = this.sections.find(this.selectors.section); this.direction = this.settings.direction === 'vertical' ? true : false; this.pagesCount = this.pagesCount(); this.index = (this.settings.index >=0 && this.settings.index < this.pagesCount) ? this.settings.index : 0; this.canScroll = true; if (!this.direction) {
_initLayout(_this);
} if (this.settings.pagination) {
_initPaging(_this);
} _initEvent(_this);
}, pagesCount: function () {
return this.section.size();
}, switchLength: function () {
return this.duration ? this.element.height() : this.element.width();
}, prve: function () {
var _this = this; if (this.index > 0) {
this.index --;
} else if (this.settings.loop) {
this.index = this.pagesCount - 1;
}
_scrollPage(_this);
}, next: function () {
var _this = this;
if (this.index < this.pagesCount) {
this.index ++;
} else if (this.settings.loop) {
this.index = 0;
}
_scrollPage(_this);
}
}; function _initLayout(_this) {
var width = (_this.pagesCount * 100) + '%',
cellWidth = (100 / _this.pagesCount).toFixed(2) + '%'; _this.sections.width(width);
_this.section.width(cellWidth).css('float', 'left');
} function _initPaging(_this) { var pagesClass = _this.selectors.page.substring(1),
pageHtml = '<ul class="' + pagesClass + '">';
_this.activeClass = _this.selectors.active.substring(1); for (var i = 0, len = _this.pagesCount; i < len; i ++) {
pageHtml += '<li></li>';
}
pageHtml += '</ul>'; _this.element.append(pageHtml);
var pages = _this.element.find(_this.selectors.page);
_this.pageItem = pages.find('li');
_this.pageItem.eq(_this.index).addClass(_this.activeClass);
if (_this.direction) {
pages.addClass('vertical');
} else {
pages.addClass('horizontal');
}
} function _initEvent(_this) { _this.element.on('click', _this.selectors.page + ' li', function () {
_this.index = $(this).index();
_scrollPage(_this);
}); _this.element.on('mousewheel DOMMouseScroll', function (e) { if (!_this.canScroll) {
return;
} var delta = -e.originalEvent.detail || -e.originalEvent.deltaY || e.originalEvent.wheelDelta; if (delta > 0 && (_this.index && !_this.settings.loop || _this.settings.loop)) {
_this.prve();
} else if (delta < 0 && (_this.index < (_this.pagesCount - 1) && !_this.settings.loop || _this.settings.loop)) {
_this.next();
}
}); if (_this.settings.keyboard) {
$(window).on('keydown', function (e) {
var keyCode = e.keyCode;
if (keyCode === 37 || keyCode === 38) {
_this.prve();
} else if (keyCode === 39 || keyCode === 40) {
_this.next();
}
});
} $(window).resize(function () {
var currentLength = _this.switchLength(),
offset = _this.settings.direction ? _this.section.eq(_this.index).offset().top : _this.section.eq(_this.index).offset().left; if (Math.abs(offset) > currentLength / 2 && _this.index < (_this.pagesCount - 1)) {
_this.index ++;
}
if (_this.index) {
_scrollPage(_this);
}
});
if(index ==0){
_this.index = 0;
}else if(index == 1 || index == 2){
_this.index = index + 1;
}
_scrollPage(_this);
});
}); _this.sections.on('transitionend webkitTransitionEnd oTransitionEnd otransitionend', function () {
_this.canScroll = true;
if (_this.settings.callback && type(_this.settings.callback) === 'function') {
_this.settings.callback();
}
}); } function _scrollPage(_this) {
var dest = _this.section.eq(_this.index).position();
if (!dest) {
return;
}
_this.canScroll = false;
if (_prefix) {
_this.sections.css(_prefix + 'transition', 'all ' + _this.settings.duration + 'ms ' + _this.settings.easing);
var translate = _this.direction ? 'translateY(-' + dest.top + 'px)' : 'translateX(-' + dest.left + 'px)';
_this.sections.css(_prefix + 'transform', translate);
} else {
var animateCss = _this.direction ? {top: -dest.top} : {left: -dest.left};
_this.sections.animate(animateCss, _this.settings.duration, function () {
_this.canScroll = true;
if (_this.settings.callback && type(_this.settings.callback) === 'function') {
_this.settings.callback();
}
});
} var screenIndex = _this.index;
if(screenIndex ==0){
$('.header_tab_content li:eq('+ (screenIndex)+')').addClass("textColor_blue bottom_line");
$('.header_tab_content li:eq('+ (screenIndex)+')').siblings().removeClass("textColor_blue bottom_line");
}else if(screenIndex == 1 || screenIndex == 2 || screenIndex == 3){
$('.header_tab_content li:eq('+ (screenIndex - 1)+')').addClass("textColor_blue bottom_line");
$('.header_tab_content li:eq('+ (screenIndex-1)+')').siblings().removeClass("textColor_blue bottom_line");
} if (_this.settings.pagination) {
_this.pageItem.eq(_this.index).addClass(_this.activeClass).siblings('li').removeClass(_this.activeClass);
}
} return XSwitch;
})(); })(jQuery); $(function () {
$('[data-XSwitch]').XSwitch();
})

4、通过给div#container添加属性data-XSwitch调用,插件将会使用默认配置

5、若每个屏的高度刚好是整个屏幕高度,则不需要强制对每个屏幕设置高度。因为遇到的页面还有一个头部,使得高度没有沾满整个屏幕。需要手动给每个屏设置高度

$(document).ready(function() {
setCommonHgt();
});
/*设置每屏高度一致*/
function setCommonHgt() {
var windowHgt = $(document.body).outerHeight(true);
var headerHgt = $('.main_header').height();
var commonHgt = windowHgt - headerHgt;
$('.common_height').css('height', commonHgt);
} $(function() {
// 添加监控页面窗口变化的方法
$(window).resize(function() {
location.reload();
setCommonHgt();
}); });

jQuery滚屏插件XSwitch.js的更多相关文章

  1. jquery多级手风琴插件–accordion.js

    手风琴菜单一般用于下拉导航,由于外观非常简洁,使用起来跟手风琴一样可以拉伸和收缩而得名,项目中适当应用手风琴效果会给用户带来非常好的体验.本文借助jQuery插件轻松打造一个非常不错的手风琴效果的菜单 ...

  2. jQuery时间格式插件-moment.js的使用

    jQuery时间格式插件-moment.js的使用 moment.js插件的使用,使用之前在页面引入对应的js文件: 详细的操作可见moment中文官网:http://momentjs.cn/ 日期格 ...

  3. 【jQuery插件】pagepiling滚屏插件使用

    pagePiling.js 这款 jQuery 插件可以帮助前端开发人员轻松实现全屏滚动效果. 支持所有的主流浏览器,包括IE8+,支持移动设备.下面详细讲解下pagePiling.js的使用步骤. ...

  4. 简单的jquery进度条插件LineProgressbar.js,myProgress.js

    参考   http://www.lanrenzhijia.com/jquery/4121.html demo下载 <script src="js/jquery.lineProgress ...

  5. jQuery全屏插件Textarea Fullscreen

    插件描述 Textarea Fullscreen是一个jquery插件,可以将textarea设置为全屏模式 使用方法 引用jquery.js,jquery.textareafullscreen.js ...

  6. Jquery datepicker 时间插件使用 js 时间相加,相减

    $(document).ready(function(){ //输入框事件 $('#probation').bind('input propertychange', function() { var ...

  7. jQuery时间轴插件timeline.js

    http://www.jq22.com/jquery-info13695 http://www.jq22.com/jquery-info13357 简要教程 timeline.js是一款jQuery时 ...

  8. jQuery图片剪裁插件Cropper.js的使用

    插件下载地址及文档说明 1.引入必要的js和css核心文件 <link rel="stylesheet" href="../css/cropper.css" ...

  9. 选择29部分有用jQuery应用程序插件(免费点数下载)

    免积分下载:http://download.csdn.net/detail/yangwei19680827/7238711 原文地址:http://www.cnblogs.com/sxwgf/p/36 ...

随机推荐

  1. UIUseImgWindow

    using System;using UnityEngine;using UnityEngine.UI;using UnityEditor;using System.Collections;using ...

  2. 将.db文件导入SQLServer2008数据库

    最近要做一个项目,需要连接数据库,给我的数据文件是sqlite,我需要将数据导入到SQLServer数据库 需要借助一个软件:DBDBMigration 页面最上方的选择框内,先选择数据文件类型,这里 ...

  3. CentOS6.5下搭建LAMP+FreeRadius+Daloradius Web管理和TP-LINK路由器、H3C交换机连接,实现,上网认证和记账功能

    什么是RADIUS服务: RADIUS:(Remote Authentication Dial In User Service)中文名为远程用户拨号认证服务,简称RADIUS,是目前应用最广泛的AAA ...

  4. var_export

    var_export可以将一个数组转为一个字符串,以符合PHP的代码风格,输出者展示一个字符串的内容. 多用于展示php代码结构,调试代码. <?php // 场合多用于展示php代码结构,调试 ...

  5. Spark强大的函数扩展功能

    在数据分析领域中,没有人能预见所有的数据运算,以至于将它们都内置好,一切准备完好,用户只需要考虑用,万事大吉.扩展性是一个平台的生存之本,一个封闭的平台如何能够拥抱变化?在对数据进行分析时,无论是算法 ...

  6. 了解java中垃圾回收机制

    Java的垃圾回收机制是Java环境自带有的,它不像c语言的malloc申请空间后需要Free()函数来释放,而Java中的代码块中所申请的空间可在程序执行完成后自动释放,但是是有局限性的,代码块所占 ...

  7. Mac Anaconda 安装

    下载地址 https://www.anaconda.com/download/#macos 选择对应的python 版本 安装 一路下一步 安装后打开如下 呵呵,此处装完,我的python 环境又从3 ...

  8. java重新学习记载的一些资料。

    1.ided的注册码地址. IDEA的密码:http://idea.lanyus.com/ 2.

  9. idea maven环境下 java实现发送邮件验证

    1.开通smtp授权 QQ邮箱-设置-账户-开启 得到一个授权码 2.下载javax.email包 maven项目中 pom文件加入: <dependency> <groupId&g ...

  10. 昂达 v891 v1 终于 删除 windows 分区 并且恢复了容量。

    参考了很多文章(最后列出重要的),却始终失败. 途中因为乱改分区表,竟然fastboot 都进不去了,当时真是欲哭无泪. 总结关键点: 1) partition.tbl不能把硬盘剩余空间全给data分 ...