🔔 Alert..!! Get 2 Month Free Cloud Hosting With $200 Bonus From Digital Ocean ACTIVATE DEAL

PageSwitch is a responsive, fullscreen page slider when the users are able to switch between sectioned pages via mouse wheel, keyboard arrows or by clicking on the pagination bullets.

One-Page-Scrolling page-slider

Documentation

动态创建jQuery插件

一.实现功能: 1.基本功能:自适应式整屏分页功能的实现

2.通过鼠标点击标签页转换分页,支持键盘上下左右键的转换分页,同样支持    鼠标滚轮上下滑动转换分页     3.切屏时的动画效果  4.jQuery实现简单的组件开发  5.本文创建的组件直接绑定在$.fn上,可以在Dom调用 

二.主要实现代码

1.创建的分页的默认配置,用户可以修改其内容,来实现不同的内容 ```    $.fn.PageSwitch.defaults = {     selectors: { //可以修改页面上的各块的class名         sections: ".sections",         section: ".section",         page: ".pages",         active: ".active"     },     index: 0, //分页页码     easing: "ease", //分页动画的     duration: 500,     loop: false, //代表页面是否可以循环播放     pagination: true, //代表页面是否分页     keyboard: true, //是否能触发键盘事件     direction: "vertical", //分页的方向,默认竖屏,横屏:“herizontal”     callback: "" //翻页完成后的回调函数 } ```  2.创建对象的单例模式 ```     $.fn.PageSwitch = function(options) { //单例模式     return this.each(function() {         var me = $(this),             instance = me.data("PageSwitch")         if (!instance) {             instance = new PageSwitch(me, options)             me.data("PageSwitch", instance)         }         //判断传递参数options的类型,如果是字符串,用户就可以直接调用         //pageSwitch.prototype内的方法         if ($.type(options) === "string") return instance[options]();     }); } ```  3.创建Dom中的用到的各种事件方法 ``` var PageSwitch = (function() { //以后可以根据需求改善pageSwitch对象     function PageSwitch(element, options) {         this.settings = $.extend(true, $.fn.PageSwitch.defaults, options || {})         this.element = element;         this.init(); //初始化插件     }     PageSwitch.prototype = { //定义插件共有方法         //初始化的方法         // 实现初始化dom结构,布局,分页及绑定事件         init: function() {},         //获取滑动页面的数量         pagesCount: function() {             return this.section.length;         },         //获取滑动的宽度(横屏)或高度(竖屏)         SwitchLength: function() {             return this.direction ? this.element.height() : this.element.width()         },         //向前滑动,上一页          prev: function() {},         //向后滑动,向后一页         next: function() {},          //主要针对横屏情况进行页面布局         _initLayout: function() {},         //实现分页的dom结构及css样式         _initPaging: function() {},         //初始化插件事件         _initEvent: function() {             var me = this;             // 页面的点击事件             me.element.on("click", me.selectors.page + " li", function() {})              //鼠标的滚轮事件             me.element.on("mousewheel DOMMouseScroll", function(e) {})              //键盘事件             if (me.settings.keyboard) {                 $(window).on("keydown", function(e) {})             }             //浏览器窗口变化事件             $(window).resize(function() {})              //分屏完成后的执行动画             me.sections.on("transitionend webkitTransitionEnd oTransitionEnd otransitionend", function() {}),         //页面滚动         _scrollPage: function() {}     }     return PageSwitch; //返回PageSwitch对象,重要!!! })(); ``` 4.在html调用时,写法如下: ```     <script>         $("#container").PageSwitch({ //其中的值可以修改,以实现不同的效果             index: 0, //分页页码             easing: "ease", //分页动画的             duration: 500,             loop: false, //代表页面是否可以循环播放             pagination: true, //代表页面是否分页             keyboard: true, //是否能触发键盘事件             direction: "vertical", //分页的方向,默认竖屏,横屏:“herizontal”             callback: "" //翻页完成后的回调函数         })     </script> ``` 

You May Also Like