myFocus是一个专注于WEB端焦点图/轮换图的JS库。该焦点图插件集成了30多种风格图片切换效果,体积小,使用简单,兼容ie6+和所有的主流浏览器。myFocus焦点图插件的特点还有:
- 原生JS编写,独立无依赖
- 性能卓越,同样效果比jQuery更流畅
- 简单易用,傻瓜式API和标准HTML结构
- 效果华丽,媲美Flash焦点图
- 功能强大,30多种风格切换,支持N种常用设置
- 体积小巧,仅5.93KB(minified & gzipped)
- 支持 IE6+ / Chrome / Firefox 等现代浏览器
- 支持自定义开发扩展
使用方法
在页面中引入样式文件myfocus-2.0.4.min.js文件。
<script src="myfocus-2.0.4.min.js"></script>
HTML结构
myFocus焦点图的HTML结构如下:
<!-- 焦点图盒子 --> <div id="boxID"> <!-- 载入中的Loading图片(可选) --> <div class="loading"><img src="img/loading.gif" alt="请稍候..." /></div> <!-- 内容列表 --> <div class="pic"> <ul> <li><a href="#"><img src="img/1.jpg" alt="标题1" /></a></li> <li><a href="#"><img src="img/2.jpg" alt="标题2" /></a></li> <li><a href="#"><img src="img/3.jpg" alt="标题3" /></a></li> <li><a href="#"><img src="img/4.jpg" alt="标题4" /></a></li> <li><a href="#"><img src="img/5.jpg" alt="标题5" /></a></li> <!-- 你可以根据需要添加更多的列 --> </ul> </div> </div>
img标签的属性说明:
src
: 图片地址thumb
: 图片的略缩图地址(需要风格支持,可以省略,如果省略即把大图地址作为它的地址)alt
: 图片的描述文字text
:图片更详细的描述文字(需要风格支持,可以省略)
初始化插件
可以通过下面的方法来初始化myFocus焦点图插件。
myFocus.set({id: 'boxID'});
或者在初始化时设置配置参数:
myFocus.set({ id: 'boxID',//焦点图盒子ID pattern: 'mF_tbhuabao',//焦点图风格的名称 time: 3,//切换时间间隔(秒) trigger: 'mouseover',//触发切换模式:'click'(点击)/'mouseover'(悬停) delay: 200,//'mouseover'模式下的切换延迟(毫秒) txtHeight: 'default'//标题高度设置(像素),'default'为默认CSS高度,0为隐藏 });
请到 dist 目录下载 myfocus 的min版(压缩)或full版(无压缩),并在子目录“mf-pattern”选择风格下载。
注意:myfocus 运行时会自动寻找其子目录“mf-pattern”下相应的风格文件,所以“mf-pattern”文件夹一定要存在。
配置参数
myFocus有两种调用方式,一种是常规调用:
myFocus.set(settings[, callback]);
//这段代码可以在引入myFocus库后的任意地方调用- 另外一种是作为jQuery插件的方式调用(前提是必须已加载jQuery库):
$(expr).myFocus(settings[, callback]);
//这段代码必须在焦点图的HTML结构之后调用,或是在ready函数中调用
参数settings为JSON格式数据,包含以下基本属性设置:
参数 | 类型 | 默认值 | 描述 |
id | String | null | 焦点图盒子ID,无默认值,必填项(在常规调用时) |
pattern | String | 'mF_fancy' | 风格应用名称 |
time | Number | 4 | 切换时间间隔(单位秒) |
width | Number | null | 图片区域宽度(单位像素),无默认值,留空则从CSS样式获取大小 |
height | Number | null | 图片区域高度(单位像素),无默认值,留空则从CSS样式获取大小 |
txtHeight | Number/String | 'default' | 文字层高度(单位像素),0表示隐藏文字层,省略设置或'default'即为默认高度 |
trigger | String | click' | 触发切换模式['click'(鼠标点击)|'mouseover'(鼠标悬停)] |
wrap | Boolean | true | 是否保留边框(有的话)[true|false] |
auto | Boolean | true | 是否自动播放(切换)[true|false] |
index | Number | 0 | 开始显示的图片序号(从0算起) |
delay | Number | 100 | trigger为'mouseover'模式下的切换延迟(单位毫秒) |
loadIMGTimeout | Number | 3 | 载入myFocus图片的最长等待时间(Loading画面时间)(单位秒,0表示不等待直接播放) |
参数callback为可选回调函数,当焦点图全部准备就绪后(开始播放前)调用,在这里可设置自定义事件等。
另外,每款风格也可以定义它们自己的扩展属性设置,或是默认设置(可以在它的js文件中找到),例如在“mF_taobao2010”这款风格中,扩展设置有:
参数 | 类型 | 默认值 | 描述 |
seamless | Boolean | true | 是否无缝,可选:true(是)/false(否) |
duration | Number | 600 | 过渡时间(毫秒),时间越大速度越小 |
direction | String | 'left' | 运动方向,可选:'top'(向上) | 'left'(向左) |
easing | String | 'easeOut' | 运动形式,可选:'easeOut'(快出慢入) | 'easeIn'(慢出快入) | 'easeInOut'(慢出慢入) | 'swing'(摇摆运动) | 'linear'(匀速运动) |
你可以在set函数调用的时候重新设置这些参数,以覆盖默认值。
myFocus焦点图插件的github地址为:https://github.com/koen301/myfocus