HTML5实现webApp中图片轮播的效果(一)之基本使用

原文地址为: HTML5实现webApp中图片轮播的效果(一)之基本使用

最近开始用h5做一款BBS类的webapp,做好后嵌入公司的其他几个Android或ios应用中,这差不多算是混编开发了吧
在我看来,原生app和webapp各有优缺点,原生应用赢在稳定性好、用户体验度高,而webapp则在跨平台性、灵活度方面更胜一筹,随着近几年h5的火爆,webapp也越来越受大家的关注,如果你够仔细的话,你会发现现在很多牛b的app全都采用原生+webapp的方式来开发,我觉得,这种混编的开发模式,一定是未来移动端开发的主流方向。

对这方面感兴趣的可以看看这个知乎话题:
Web App 和 Native App,哪个是趋势?

好了,下面进入正题吧:
HTML5实现webApp中图片轮播的效果
开始的第一天,就遇到了这个问题,作为一个展示类的应用,首页再怎么也得放个轮播图片不是么?
如果说是用Android原生做的话,网上随便一抓一大把轮播图片的自定义控件,拿来稍微研究下改吧改吧马上可以用,可是如果用html却不是那么容易了。

之前使用fullPage.js做过一个应用的引导页,这个插件也可以实现轮播滑动等效果,然后就想当然的拿来用了,结果试了一上午,才发现有些问题了,因为这个插件本身的定位就是全屏显示内容的,所以我想要的首页1/3大小的图片轮播功能怎么也实现不了。但是不得不说,用fullpage做大图全屏的网页简直太赞了,很好用的,也很简单,感兴趣的直接戳上面链接去学习。

然而天无绝人之路,同事给我介绍了又一款可以用html实现图片轮播效果的插件iSlider.js,其实一开始我是拒绝的,我也不知道为什么,就是感觉不想用他,结果无奈带着依然拒绝的情绪开始使用这款插件,事实证明我为这种情绪付出了代价:因为少粘贴了几行css代码又折腾了大半天的时间,这是后话了。

开始介绍之前,先贴上该插件github上的地址:
iSlider.js中文文档

iSlider.jsDEMO及示例说明

其实使用起来还是蛮简单的,最重要的是首先对他有一个相对清晰的了解,说白了其实就像Android中的listview一样,你得准备一个listview、准备一些数据、再准备一个adapter,只不过这里的adapter就是这个插件而已了

下面直接从文档中扒出使用的方法:
这里写图片描述

这里写图片描述

看到这里,我相信只要有一些js基础的人应该都能大概理解这款插件的基本用法了吧
当然了,想实现自动轮播等动画效果功能,还需要继续往下配置:
这里写图片描述

以下是所有关于关于轮播图片的配置参数,

animateType
{String}
动画效果
目前支持:default(卷动)、rotate(旋转)、depth、flow、flip、card、fade(渐显/隐)、zoomout(向外/内缩放)
前置条件:载入效果库 iSlider.animate(.min).js
默认:”default”

animateTime
{Number}
动画效果持续时间
单位:毫秒
默认:1000

animateEasing
{String}
动画效果曲线
可选 linear、ease、ease-in、ease-out、ease-in-out,甚至cubic-bezier
默认:ease

isAutoplay
{Boolean}
开启/关闭自动滑动模式
默认:false(关闭)

duration
{Number}
自动播放时,场景停留时间
每个场景停留时间,结束时会切换至下一场景
单位:毫秒
前置条件:isAutoplay === TRUE

isLooping
{Boolean}
循环播放模式
默认:false(关闭)

dampingForce
{Number}
阻尼力度, 非循环模式下,首尾场景的回弹效果阻尼系数
值域: 0 ~ 1,数值越大滑动距离越小(越难以滑动)
默认: 0
前置条件: isLooping === FALSE

isVertical
{Boolean}
垂直滑动模式
默认:false(关闭)

isOverspread
{Boolean}
背景平铺
如果场景为图片模式(URL),使用CSS3背景的方式填充场景
默认:false(关闭)

isTouchable
{Boolean}
触屏事件
默认:true(开启)

isDebug
{Boolean}
开启/关闭调试模式,会打印更多日志信息
默认:false(关闭)

initIndex
{Number}
首屏所使用的数据列表索引
默认:0

fingerRecognitionRange
{Number}
误触识别范围,大于范围值的touchMove被视为有效滑动距离
默认:10(px)

fixPage
{Boolean|Array|String}
原生事件阻止
场景内屏蔽原生事件的触发,如:滚动、拖拽、缩放等
“A”元素,阻止,移动端建议使用自定义的tap(touch系事件联合判断)
对表单类元素”SELECT”、”INPUT”、”TEXTAREA”、”BUTTON”、”LABEL”,任何情况下均不进行阻止
*排除策略:若参数类型为字符串(规则,querySelector选择器字符串)或数组(多个规则),此选项为开启状态(true)并排除复合规则的元素,与iSlider.FIX_PAGE_TAGS相同对待
默认:true(开启)

fillSeam
{Boolean}
填补场景间接缝
在某些系统的浏览器中存在的渲染问题,造成场景间出现一条缝隙,这种情况在场景设置了背景色并且使用相连的切换效果时尤为明显。
默认:false(关闭)

plugins
{Array}
启用插件并配置初始化参数
传入欲激活的插件名称列表:[‘dot’, ‘button’, ‘zoompic’, …],另外,支持传入初始化参数:[…, [‘zoompic’, {zoomFactor: 2}], …]
若插件未被载入或不存在则忽略

========================================
看似差不多了吧,高大上的图片轮播效果已经按自己想象中的出来了吧,但是,你以为这就完了吗?Too Young
1、从接口中动态加载需要呈现的图片以及相关的内容数据
2、想点击图片转到相应的页面,为什么点击事件失效了?
3、可以点击了,但是图片在容器中却不能固定了,不小心会拖动很难看?
等等…

敬请期待下期:HTML5实现webApp中图片轮播的效果(二)之爬坑经历


转载请注明本文地址: HTML5实现webApp中图片轮播的效果(一)之基本使用

猜你喜欢

转载自blog.csdn.net/wangchaoqi1985/article/details/80712702