JS实现点击拉拽轮播图pc端移动端适配


Posted in Javascript onSeptember 05, 2018
<div class="content">
      <button class="left">left</button>
      <button class="right">right</button>
      <div class="index"></div>
      <div class="lists">
        <!--<!–width: item的数量÷3乘以100%–>-->
        <div class="box">
          <!--width: 1÷item的数量乘以100%-->
          <div class="item">
            <img src="a.png" alt="a">
            <p>aaa</p>
          </div>
          <div class="item active">
            <img src="b.png" alt="b">
            <p>bbb</p>
          </div>
          <div class="item">
            <img src="c.png" alt="c">
            <p>ccc</p>
          </div>
          <div class="item">
            <img src="d.png" alt="d">
            <p>ddd</p>
          </div>
          <div class="item">
            <img src="e.png" alt="e">
            <p>eee</p>
          </div>
          <div class="item">
            <img src="f.png" alt="f">
            <p>ffff</p>
          </div>
        </div>
      </div>
    </div>
<script>
      $(function(){
//        循环数据 假设有个数组,有10条数据
//         var arr = [1,2,3,4,5,6,7,8,9,10];
//         var arr_len = arr.length;
//         var box = '<div class="box" style="width: '+arr_len/3*100+'%;"></div>';
//         $('.lists').append(box);
//         for (var i = 0; i < arr_len;i++){
//           var newDiv = document.createElement('div');
//           newDiv.innerHTML = '<img src="static/images/search-icon.png"/>'+
//             '<p>' +
//             (i+1)+
//             '</p>';
//           newDiv.className = 'item '+(i==1?'active':'');
//           newDiv.style = 'width: '+1/arr_len*100+'%;';
//           newDiv.onclick = (function(ind) {
//             return function () {
//               index = ind-1;
//               console.log(ind)
//               $(".box").animate({left: -index*100/3+"%"})
//               $(".item").removeClass('active')
//               $($(".item")[index+1]).addClass('active');
//               $('.index').text(index+2)
//             }
//           })(i) ;
//           $('.box').append(newDiv);
//         }
        var arr_len = $('.item').length;
        $('.box').css({width: arr_len/3*100+'%'})
        $('.item').css({width: 1/arr_len*100+'%'})
        $('.item').on('click',function (e) {
          var _this = $(e.target);
          if (!_this.hasClass('item')){
            _this = _this.parents('.item');
          }
          index = _this.index('.item')-1;
          $(".box").animate({left: -index*100/3+"%"})
          $(".item").removeClass('active')
          $($(".item")[index+1]).addClass('active');
          $('.index').text(index+2)
        })
        var index = 0;
        var len = arr_len;
        var temp = true;
        var pageX,pageY;
        $('.content').on('touchstart',function (e) {
          var touches = e.originalEvent.targetTouches[0];
          pageX = touches.pageX;
          pageY = touches.pageY;
        }).on('touchmove',function (e) {
          var touches = e.originalEvent.targetTouches[0];
          if (pageX>touches.pageX+20){
            left()
          }else if (pageX<touches.pageX-20){
            right()
          }
        })
        $(".left").on('click',left)
        $(".right").on('click',right)
        function left() {
          console.log(index,temp,'left')
          if (index < len-2&&temp){
            index++;
            move(index)
          }
        }
        function right() {
          if (index > 0&&temp){
            index--;
            move(index)
          }
        }
        function move(index) {
          if (temp){
            temp = false;
            var left = $(".box").offset().left;
            $(".box").animate({left: -index*100/3+"%"},function () {
              temp = true;
            })
            $(".item").removeClass('active')
            $($(".item")[index+1]).addClass('active');
            $('.index').text(index+2)
          }
        }
      })
.lists {
        position: relative;
        height: 100px;
        overflow: hidden;
      }
      .box {
        position: absolute;
      }
      .item {
        float: left;
        background: #008000;
        height: 100px;
      }
      .item img {
        width: 20px;
        display: block;
        margin: 0 auto;
      }
      .item p {
        text-align: center;
      }
      .item.active {
        background: #0000FF;
        font-size: 30px;
      }
      .item.active img {
        width: 40px;
      }
      .item.active p {
        font-size: 30px;
      }

总结

以上所述是小编给大家介绍的JS实现点击拉拽轮播图pc端移动端适配,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
用javascript实现画板的代码
Sep 05 Javascript
js 获取Listbox选择的值的代码
Apr 15 Javascript
javascript的offset、client、scroll使用方法详解
Dec 25 Javascript
一个判断抢购时间是否到达的简单的js函数
Jun 23 Javascript
JavaScript 学习笔记之操作符
Jan 14 Javascript
js随机生成网页背景颜色的方法
Feb 26 Javascript
基于javascript实现表格的简单操作
May 21 Javascript
JS两个数组比较,删除重复值的巧妙方法(推荐)
Jun 03 Javascript
js轮播图代码分享
Jul 14 Javascript
Angularjs中$http以post请求通过消息体传递参数的实现方法
Aug 05 Javascript
基于JS实现弹出一个隐藏的div窗口body页面变成灰色并且不可被编辑
Dec 14 Javascript
详解JavaScript数据类型和判断方法
Sep 04 Javascript
vue中使用heatmapjs的示例代码(结合百度地图)
Sep 05 #Javascript
解决vue点击控制单个样式的问题
Sep 05 #Javascript
浅谈webpack4.x 入门(一篇足矣)
Sep 05 #Javascript
vuejs点击class变化的实例
Sep 05 #Javascript
jQuery滑动效果实现方法分析
Sep 05 #jQuery
vue+springboot实现项目的CORS跨域请求
Sep 05 #Javascript
jquery判断滚动条距离顶部的距离方法
Sep 05 #jQuery
You might like
PHP中文汉字验证码
2007/04/08 PHP
PHP批量去除BOM头代码分享
2015/06/26 PHP
PHP模拟QQ登录的方法
2015/07/29 PHP
php批量修改表结构实例
2017/05/24 PHP
php实现的统计字数函数定义与使用示例
2017/07/26 PHP
一个js拖拽的效果类和dom-drag.js浅析
2010/07/17 Javascript
JS弹出窗口代码大全(详细整理)
2012/12/21 Javascript
jquery中子元素和后代元素的区别示例介绍
2014/04/02 Javascript
jQuery实现带分组数据的Table表头排序实例分析
2015/11/24 Javascript
基于JavaScript如何制作遮罩层对话框
2016/01/26 Javascript
超实用的JavaScript表单代码段
2016/02/26 Javascript
jQuery基础的工厂函数以及定时器的经典实例分析
2016/05/20 Javascript
详解Node.js中的事件机制
2016/09/22 Javascript
jQuery实现点击某个div打开层,点击其他div关闭层实例分析(阻止冒泡)
2016/11/18 Javascript
JS调用打印机功能简单示例
2016/11/28 Javascript
layer实现关闭弹出层刷新父界面功能详解
2017/11/15 Javascript
基于javascript实现移动端轮播图效果
2020/12/21 Javascript
用Python代码来解图片迷宫的方法整理
2015/04/02 Python
浅谈python内置变量-reversed(seq)
2017/06/21 Python
python实现彩票系统
2020/06/28 Python
python列表使用实现名字管理系统
2019/01/30 Python
python无序链表删除重复项的方法
2020/01/17 Python
python判断一个变量是否已经设置的方法
2020/08/13 Python
python PyAUtoGUI库实现自动化控制鼠标键盘
2020/09/09 Python
CSS3 animation ? steps 函数详解
2019/08/30 HTML / CSS
美国家居装饰和豪华家具购物网站:One Kings Lane
2018/12/24 全球购物
eBay瑞士购物网站:eBay.ch
2018/12/24 全球购物
大学生个人简历自我评价
2013/11/16 职场文书
纺织工程专业个人求职信范文
2014/01/27 职场文书
追悼会主持词
2014/03/20 职场文书
上课说话检讨书500字
2014/11/01 职场文书
幼师中班个人总结
2015/02/12 职场文书
社区工作者个人总结
2015/02/28 职场文书
管理失职检讨书
2015/05/05 职场文书
山楂树之恋观后感
2015/06/11 职场文书
Android开发之底部导航栏的快速实现
2022/04/28 Java/Android