提供了 Tabs, Slide, Carousel 等功能的

Switchable

switchable 是提供了 Tabs, Slide, Carousel 等功能的一个 jQuery 切换组件。

基础使用 HTML 结构

<div class="j-switchable" data-switch='json'><!-- Root 节点 加上 "switchable" Class 后就会自动初始化--> <div><!-- overflow: hidden 节点--> <ul class="items"><!-- 加上 "items" Class, 则子节点为面板列表 --> <li> <img src="img1.jpg"> </li> <li> <img src="img2.jpg"> </li> <li> <img src="img3.jpg"> </li> </ul> </div> <!-- 上下翻页节点 带上相应 Class(不是必须的) --> <a href="###" class="prev disabled">&lt;</a><!-- 当不可用时候 JS 会加上 "disabled" 的 Class--> <a href="###" class="next">&gt;</a> <!-- trigger Class(不是必须的) --> <p class="slide-pagination"> <a href="#1" class="active">1</a><!-- 当前面板 JS 会加上 "active" 的 Class--> <a href="#2" class="">2</a> <a href="#3" class="">3</a> </p> <!-- 指示数字节点(不是必须的) --> <div class="slide-text">1/3</div> </div> CSS 样式

.switchable > div { /* 容器 */ width: 248px; height: 116px; position: relative; overflow: hidden; } .switchable .items { /* 面板父类 */ margin: 0; } .switchable .items li { float: left; /* 如果是上下切换或者 fade 效果,则不需要 */ } 初始化配置

可以在 Root dom 节点配置 data-switch 为下面配置的值。

/** * 核心配置 */ // 轮播的面板 panels: '.panels > *', // 默认激活项 initIndex: 0, // 切换动画 effect: 'none', // 循环 loop: false, // 切换前的回调 onBeforeSwitch: null, // 切换后的回调 onSwitch: null /** * 动画配置 */ // 动画时长 duration: 500, // 时间因子 easing: "ease" /** * 动画效果:滑动(Scroll) */ // 水平滑动(false 为竖直滑动) horiz: true /** * 自动切换 */ // 打开自动切换 autoplay: true, // 切换间隔时间 interval: 3000, // 鼠标悬停暂停切换 pauseOnHover: true, // 是否逆序播放 isBackward: false /** * 触发器配置 */ // 选择器 triggers: '.trigger a', // 当前 trigger 的 className currentTrigger: 'active', // 触发类型 triggerType: 'hover', // or 'click' // 触发延迟 delay: 000, // 100ms /** * 翻页配置 */ prev: '.prev', // 翻页选择器 next: '.next', disabledClass: 'disabled' // 翻页不可用时的 className /** * 显示计数器配置 */ // index偏移量 indexOffset: 1, // 返回的格式 numFormat: '[index]/[length]', // 选择器 switchNum: '.switch-num' /** * lazyload 加载 */ // DOM lazyload Class lazyloadCls: 'switchlazyload' 在 JS 中初始化并传入初始化参数

在 Root 节点不传入 "j-switchable" ClassName,然后使用 JS 进行初始化

api = $(element).switchable({"loop":true,"autoplay":true}); 使用 api 进行其他控制

使用 JS 初始化后将返回 api,自动初始化后可以通过取 DOM 上面的 switchable 对象得到 api

api = $('.switchable')[0].switchable; switchable 提供了以下 API:

/** * 核心 API */ // root 节点 jQuery 对象 api.root // 面板列表 jQuery 对象 api.panels // 面板数量 api.length // 当前位置(从0开始) api.index // 切换面板 api.switchTo(integer index); // 返回 API 本身 // 即将切换的下一面板 api.willTo(); // 有时候返回值会不准确(通过 trigger 切换的,无法预知,不影响在 beforeSwitch 中调用) // 事件 beforeSwitch // 执行切换前调用 switch // 切换事件后调用 /** * 自动切换 */ // 自动切换状态 api.paused // 自动切换-播放 api.play() // 自动切换-暂停 api.pause() /** * 触发器配置 */ // 触发器 jQuery 对象 api.triggers /** * 翻页配置 */ // 翻页按钮 jQuery 对象 api.prevBtn api.nextBtn 事件绑定:

直接在 api 上面绑定 "switch/beforeSwitch" 事件即可

$(api).on("switch", function(e){ console.log(e); })

版权声明:

1、该文章(资料)来源于互联网公开信息,我方只是对该内容做点评,所分享的下载地址为原作者公开地址。
2、网站不提供资料下载,如需下载请到原作者页面进行下载。