# EasySlide **Repository Path**: LVIC/EasySlide ## Basic Information - **Project Name**: EasySlide - **Description**: easy to build a mobile page slide - **Primary Language**: HTML - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-08-21 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # EasySlide Easy to build a mobile page slide. ---- ### 介绍 EasySlide 不基于任何框架。它是一个可以快速、独立的制作H5 Mobile页面的微框架。 它包含`加载资源loader`,`页面切换`,`子类PPT`,`内部页面跳转`,`page layer`,`自定义动画效果`和`扩展动画效果`等功能。 使用EasySlide,可以不再使用javascript来设置动画顺序与效果,而只需要编写对应的动画类和设置HTML节点信息即可,它还内置一些utils和动画效果,你也可以使用监听器和自己编写CSS类来扩展EasySlide. EasySlide独立分为4个js文件,如果你只需要基本功能,则只引用dist/EasySlide.js即可。 ### Demo ``` gif图片较大,耐心等待刷出~,gif有丢帧,详细请clone本项目,打开demo文件夹查看,本地可运行。 ``` ### 快速上手 首先需要引用对应的css和javascript,和要求的HTML结构,本框架只支持移动端,更多API见参考文档。 ```html

Title

``` ### API ----- ##### EasySlide ----- #### 方法 ----- ##### loader ```js new EasySlide({ }).loader(["img1.jpg","img2.jpg"]); //调用loader方法可以实现预加载图片资源,并可以监听到loaded和progress两个事件 ``` ##### goto ```js var Slide = new EasySlide({}); Slide.goto(3); //页面跳转到对应的slide index ``` ##### move ```js var Slide = new EasySlide({}); Slide.move(1) //-1 参数为1或者-1 //移动当前页面至前后一页 ``` ##### renderSlide ```js 动态修改过容器之后,可以调用此方法重新计算容器动画和元素个数。 ``` ##### showCurSlide ```js 可以调用此方法执行当前页切换动画 ``` ##### getCurAllowSwipe ```js 获取当前slide的可滑动状态 ``` ----- #### 事件 ----- ##### progress ##### loaded ```js //loader只后,使用on方法可以监听到progress事件,回调第一个参数为百分比 var Slide = new EasySlide({}); Slide.on("progress",function(pre){ //xx.xx % }); Slide.on("loaded",function(){ //load资源结束 }); Slide.loader(["1.jpg","2.jpg"]); ``` ##### swipeY ##### swipeX ##### swipeMove ##### swipeEnd ```js var Slide = new EasySlide({}); Slide.on("swipeX",function(direction){ //direction为 1或者-1 代表方向 }); Slide.on("swipeY",function(direction){ //direction为 1或者-1 代表方向 }); Slide.on("swipeMove",function(){ //可以自己扩展移动时的动画,在demo中有体现用法 }); Slide.on("swipeEnd",function(){ //在touchend时触发 }); ``` ##### dragDirecNotEqual ```js 在滑动方向与默认方向相反时,touchEnd触发 ``` ##### slide-switchEnd ##### ppt-switchEnd ```js var Slide = new EasySlide({}); Slide.on("slide-switchEnd",function(allowSwipe){ //slide翻页结束后触发,回调返回该页是否可被继续swipe,allowSwipe可能为next或者prev }); Slide.on("ppt-switchEnd",function(direction){ //幻灯翻页结束后触发 }); ``` ----- #### 初始化参数配置 ----- ##### wrapAll ```js //必填,所有slides的父节点id ``` ##### SubpptObjects ```js SubpptObjects:[{ wrapDiv:"", //ppt节点id imgs:["1.jpg","2.jpg"], //ppt幻灯图片 parentNum:0 //所在父节点的index值 }] ``` ##### replay ```js //布尔值,默认为false,表示动画结束后,再次翻到此页,是否重播动画,对所有slide生效。 ``` ##### firstTime ```js 第一屏第一轮是否可以回滚设置,默认为true,不可以 ``` ##### animateEffect ``` slide切换所使用的特效名称 默认 default, 可选:(card,rotate,flip,scale) ``` ##### swipeDirection ```js slide滑动方向,默认为 "y" ``` ##### margin ```js 选填默认0,制作多个slide共存在view中可用 ``` ##### transition ``` 默认为"all 0.5s ease" 为slide的默认transition参数 ``` ----- #### animate参数配置 ``` 设置为class="EasySlide-animate"的节点,都可以配置如下参数 ``` ----- ##### in ``` 默认自带得animate效果有zoomIn,fadeIn,fadeInDown,fadeInUp,pulse 可在EasySlide.css中找到,也可以自己增加。 ``` ##### delay ``` 设置动画开始延迟时间 delay=".5s" ``` ##### duration ``` 设置动画总时间 duration="1s" ``` ##### tfunction ``` 设置动画的timing-function,默认ease ``` ##### iteration ``` 设置动画的iteration,默认是 1 ``` ----- #### slide参数配置 ``` 设置为class="EasySlide-slides"下的子节点都可以配置如下参数 ``` ##### index ``` slide所属顺序 ``` ##### gindex ``` group所属顺序 ``` ##### layerid ``` 点击某节点后弹出浮层的浮层id,对应用法需要在点击节点上设置flayerTriggerCls ``` ##### scroll ``` 当前层是否为带scroll y的节点,设置后,滚动条可用,如demo。 ``` ##### goto ``` 点击节点后跳转至对应slide goto="3" ``` ##### allowswipe ``` 当前slide是否允许被滑动,可设置next和prev,不设置为上下均可滑动,设置在group节点上。 ``` ----- ##### EasySlide.STATIC ``` 默认的EasySlide className储存位置,如果想自定义可以修改。 ``` ##### EasySlide.STATIC.flayerCls ``` 默认为 EasySlide-flayer ``` ##### EasySlide.STATIC.flayerTriggerCls ``` 默认为 EasySlide-triggerLayer ``` ##### EasySlide.STATIC.animateCls ``` 默认为 EasySlide-animate ``` ##### EasySlide.STATIC.groupCls ``` 默认为 EasySlide-groups ``` ##### EasySlide.STATIC.slideCls ``` 默认为 EasySlide-slides ``` ----- ##### EasySlide.Subppt.STATIC ``` 默认的EasySlide subppt className储存位置,如果想自定义可以修改。 ``` ----- ##### EasySlide.Subppt.STATIC.slideCls ``` 默认为 EasySlide-subppt-slide ``` ##### EasySlide.Subppt.STATIC.imgWrapCls ``` 默认为 EasySlide-subppt-imgWrap ``` ----- ##### EasySlide.utils ``` 一些常见的工具方法 ``` ----- ##### EasySlide.utils.$ ```js //id选择器 返回element EasySlide.utils.$("id") ``` ##### EasySlide.utils.getByTagName ```js //Tag选择器 返回array类型的元素数组 var imgs = EasySlide.utils.getByTagName("img"); imgs.forEach(); //可调用array方法 ``` ##### EasySlide.utils.getByClsName ```js //ClassName选择器 返回array类型的元素数组 var eles = EasySlide.utils.getByTagName("cls"); eles.forEach(); //可调用array方法 ``` ##### EasySlide.utils.makeElesArray ```js // 把类数组元素转换成数组元素 返回数组 EasySlide.utils.makeElesArray(arguments); //可调用array方法 ``` ##### EasySlide.utils.attr ```js //或者和设置属性方法 EasySlide.utils.attr(ele,"key") //返回key的val EasySlide.utils.attr(ele,"key","test") //设置ele的key的属性为test ``` ##### EasySlide.utils.bind ```js //绑定DOM事件 EasySlide.utils.bind(ele,"click",func); ``` ##### EasySlide.utils.unbind ```js //解绑DOM事件 EasySlide.utils.unbind(ele,"click",func); ``` ##### EasySlide.utils.viewDate ```js 获取窗口视图信息 EasySlide.utils.viewDate(); //返回值为 /** { scrollTop:, scrollLeft:, documentWidth:, documentHeight:, viewWidth:, viewHeight }; */ ``` ##### EasySlide.utils.remove ```js //删除DOM元素 EasySlide.utils.remove(ele) //删除一个ele元素 ``` ##### EasySlide.utils.hide ```js //隐藏DOM元素 EasySlide.utils.hide(ele); ``` ##### EasySlide.utils.show ```js //显示DOM元素 EasySlide.utils.show(ele); ``` ##### EasySlide.utils.hasAttr ```js //查看DOM元素是否有自定义属性 EasySlide.utils.hasAttr(ele,"key") // true , false ``` ##### EasySlide.utils.contain ```js //查看是否包含对应className的元素 EasySlide.utils.contain(ele,"clsName"); //返回false或者这个clsName元素 ``` ##### EasySlide.utils.isWeixin ```js //检查是否是微信浏览器 EasySlide.utils.isWeixin() //true false ``` ##### EasySlide.utils.hasClass ```js //检查是否包含对应cls EasySlide.utils.hasClass(ele,"clsName"); //true ,false ``` ##### EasySlide.utils.shareWeibo ```js //分享到微博 EasySlide.utils.shareWeibo({title:"xxx",shareImg:"xxx"}); ``` ##### EasySlide.utils.mixin ```js //属性拷贝方法 EasySlide.utils.mixin({a:0,b:1},{a:1}) //返回{a:1,b:1} ``` ##### EasySlide.utils.isArray ```js //判断元素是否为数组 EasySlide.utils.isArray([]) //true ``` ##### EasySlide.utils.isObject ```js //判断元素是否为Object EasySlide.utils.isObject({}) //true ``` ##### EasySlide.utils.transitionDurationToMilliseconds ```js //转换duration为毫秒数 EasySlide.utils.transitionDurationToMilliseconds("5s") //5000 EasySlide.utils.transitionDurationToMilliseconds("0.5s") //500 EasySlide.utils.transitionDurationToMilliseconds("50ms") //50 ``` -----