封装轮播图jq
来源:互联网 发布:马云放弃淘宝c店 编辑:程序博客网 时间:2024/06/06 15:35
封装轮播图(pc端)
function banAnimate (target) { // 获取元素 var banner_items = target.children('ul').children(); var banner_control = target.children('ol'); var banner_control_items = banner_control.children(); var all_len = banner_control.children().length; // 鼠标移动动画 banner_control_items.mouseover(function() { var index = $(this).index(); banChange(index); }) // 定时器动画 var bannerTimer = null, currentIndex = 0; bannerTimer = setInterval(function () { currentIndex = ++currentIndex > all_len-1 ? 0 : currentIndex; banChange(currentIndex) }, 2000) function banChange (index) { banner_items.eq(index).show().siblings().hide(); banner_control_items.eq(index).addClass('active').siblings().removeClass('active'); } // 定时器动画停止、开启 target.hover(function () { clearTimeout(bannerTimer); }, function () { bannerTimer = setInterval(function () { currentIndex = ++currentIndex > all_len - 1 ? 0 : currentIndex; banChange(currentIndex) }, 2000) })}
HTML结构
<div class="banner_pc"> <!--轮播主体--> <ul></ul> <!--轮播控制--> <ol></ol> </div>
封装轮播图(移动端)
function banAnimateMobile (target) { // 获取元素 var banner_wrapper = target.children('ul'); var banner_control = target.children('ol'); var banner_control_items = banner_control.children(); var all_len = banner_control.children().length; // 定时器动画 var bannerTimer = null, currentIndex = 0; controlIndex = 0; bannerTimer = setInterval(function () { currentIndex++; if (currentIndex > all_len) { banner_wrapper.css('marginLeft', 0); currentIndex = 1; } controlIndex = ++controlIndex > all_len - 1 ? 0 : controlIndex; banChange(currentIndex) }, 2000) function banChange(index) { banner_wrapper.animate({ marginLeft: -index*16 + 'rem' }, 'fast') banner_control_items.eq(controlIndex).addClass('active').siblings().removeClass('active'); } // 手指滑动动画 function slideAnimate() { var startX = 0; var endX = 0; target.on('touchstart', function (e) { //阻止其他事件 e.preventDefault(); //获取当前坐标 if (e.originalEvent.changedTouches.length == 1) { var touch = e.originalEvent.changedTouches[0]; startX = touch.screenX; console.log("startX"+startX) } //清除定时器 clearInterval(bannerTimer); }); target.on('touchmove', function (e) { //阻止其他事件 e.preventDefault(); //获取当前坐标 if (e.originalEvent.changedTouches.length == 1) { var touch = e.originalEvent.changedTouches[0]; endX = touch.screenX; console.log("endX" + endX) } }); target.on('touchend', function (e) { console.log(endX+"----"+startX); if (endX > startX) { // 右滑 --currentIndex; if (currentIndex < 0) { banner_wrapper.css('marginLeft', -16*all_len + 'rem'); currentIndex = all_len-1; } controlIndex = --controlIndex < 0 ? all_len - 1 : controlIndex; banChange(currentIndex) console.log('右滑') } else { //左滑 // sceneIndex = sceneIndex >= sceneBuilders.length - 1 ? sceneBuilders.length - 1 : sceneIndex + 1; // console.log(sceneIndex); console.log('左滑'); currentIndex++; if (currentIndex > all_len) { banner_wrapper.css('marginLeft', 0); currentIndex = 1; } controlIndex = ++controlIndex > all_len - 1 ? 0 : controlIndex; banChange(currentIndex) } // 开启定时器 bannerTimer = setInterval(function () { currentIndex++; if (currentIndex > all_len) { banner_wrapper.css('marginLeft', 0); currentIndex = 1; } controlIndex = ++controlIndex > all_len - 1 ? 0 : controlIndex; banChange(currentIndex) }, 2000) }); } slideAnimate();}banAnimateMobile($('.banner-mobile'));
阅读全文
0 0
- 封装轮播图jq
- jq封装ajax
- jq封装的jsp
- JQ 错误信息提示封装
- 对jq插件进行封装
- 封装自己的jq插件
- JQ插件封装(jq_ui风格)
- jq 轮播图
- jq-轮播图
- jQ 轮播图
- JQ轮播图
- 轮播图jq
- JQ轮播图
- jq【封装函数】向上滚动函数
- JQ面向对象的封装步骤
- jq的表单ajax提交封装
- jq框架封装学习笔记3-封装select引擎
- 轮播图2(jQ)
- 简洁版图文介绍maven环境变量配置
- 组合数学笔记
- PAT 甲级 1082. Read Number in Chinese (25)
- 大型网站架构
- 字符串的KMP算法
- 封装轮播图jq
- 异常
- Git快速提交Github步骤
- 特征提取方法(二):LBP原理与OpenCV实现
- 「Deep Learning」V-Net
- 九宫格手势锁实现思路
- NOIP模拟10.5 T2
- jQuery+Ajax+asp进行数据库交互01
- Android消息处理机制(Handler、Looper、MessageQueue与Message)