jquery 移动端轮播图

<div class="slide">
    <div class="slide-box">
        <ul class="slide-ul">
            <li><a href="" title="1111"><img src="http://www.heibaipig.com/demo/images/test/1.jpg"></a></li>
            <li><a href="" title="2222"><img src="http://0.thumb.pc6.com/up/2016-5/20165199297.jpg"></a></li>
            <li><a href="" title="33333"><img src="http://0.thumb.pc6.com/up/2016-4/201642814841.jpg"></a></li>
            <li><a href="" title="44444"><img src="http://m.pc6.com/public/img/20151202.jpg"></a></li>
        </ul>
    </div>
    <div class="title-box"><p class="title">1111</p><span class="circle"><em class="active"></em><em></em><em></em><em></em></span></div>
</div>
*{ padding:0; margin:0;}
/*.slide{position:relative}
.slide-box{height:100%; margin:0 auto;position:relative; overflow:hidden}
.slide ul{ position:absolute; left:0; top:0; width:100%; min-height:160px;}
.slide ul li{ float:left; list-style:none; position:relative}
.slide ul li img{ width:100%; height:100%;}*/

/* focus_pic */
.slide{clear:both;position:relative;z-index:0;width:100%;max-width:960px;max-height:480px;margin:0 auto 0.3em auto;overflow:hidden;}
.slide-box{ width:100%;height:100%; margin:0 auto;position:relative; overflow:hidden}
.slide .slide-ul{position:absolute;z-index:1;left:0;width:10000px;}
.slide .slide-ul li{float:left;display:block;}
.slide .slide-ul li img{display:block;width:100%;height:100%;}
.slide .title-box{ width:90%; padding:0 5%; z-index:999; height:30px; line-height:30px; color:#fff; font-size:14px; background:rgba(0,0,0,.5); position:absolute; left:0; bottom:0;}
.slide .circle{ float:right;}
.slide .title{ float:left; display:inline-block;}
.slide .circle em{ display:inline-block; width:5px; height:5px; margin-left:5px; background-color:#fff; border-radius:50%;}
.slide .circle .active{ background-color:#f00}
<script>
//自适应
function sizeShow(){
    var pic_w=$(window).width();
    var pic_h=pic_w*0.5;
    $(".slide").height(pic_h);
    $(".slide li").width(pic_w).height(pic_h);
    $(".slide ul").width(pic_w*4)
};

function scrollAuto(){
    sizeShow();
    $(window).resize(function(){sizeShow()});
    var oclass=$(".slide");
    var w=oclass.find("li").width();
    var iNow = 0, index = 1, timer = null;
    var touch={
            "s":[],
            "m":[],
            "e":[],
            "d":""
        };

    oclass[0].addEventListener(‘touchstart‘, function(e){
        touch.s[0] = e.targetTouches[0].pageX;
        touch.s[1] = e.targetTouches[0].pageY;
        touch.s[2] = (new Date()).getTime();
        clearInterval(timer)
    }, false);

    oclass[0].addEventListener(‘touchmove‘, function(e){
        var a=Math.abs(e.targetTouches[0].pageX-touch.s[0])
        var b=Math.abs(e.targetTouches[0].pageY-touch.s[1]);
        console.log("dMove:"+touch.d)
        if(a>=b && touch.d==""){
            touch.d=1;//左右
            //touch.m[0]=touch.s[0]
        }else if(touch.d==""){
            touch.d=0;//上下或者偏上下
        }
        console.log(a+":::"+b)
        if(touch.d==1){//左右滚动
           e.preventDefault();
            $(".slide ul").css({"left":-iNow*w+e.targetTouches[0].pageX-touch.s[0]});
           // touch.m[0]=e.targetTouches[0].pageX;
            //touch.m[1]=e.targetTouches[0].pageY;
        }

    }, false);

    oclass[0].addEventListener(‘touchend‘, function(e){
        console.log("dEnd:"+touch.d)
        if(touch.d==1){
            if((new Date()).getTime()-touch.s[2]>700){
                if(e.changedTouches[0].pageX-touch.s[0]>w/3){
                    auto("right")
                }else if(touch.s[0]-e.changedTouches[0].pageX>w/3){
                    auto("left")
                }else{
                    auto("reset")
                }
            }else{
                if(e.changedTouches[0].pageX>touch.s[0]){
                    auto("right");
                }else if(touch.s[0]>e.changedTouches[0].pageX){
                    auto("left")
                }
            }
        }
        touch.d="";
        timer=setInterval(function(){
            if(iNow>=$(".slide li").length-1){
                iNow=0;
            }else{
                iNow++
            }
            $(".slide ul").animate({"left":-w*iNow})
            $(".circle em").eq(iNow).addClass("active").siblings().removeClass("active");
            $(".title-box .title").html($(".slide li").eq(iNow).find("a").attr("title"))
        },3000);

    }, false);

    function auto(c){
        if(c=="left"){
            if(iNow>=$(".slide li").length-1){
                iNow=$(".slide li").length-1
            }else{
                iNow++
            }
            console.log(iNow)
            $(".slide ul").animate({"left":-w*iNow})
        }else if(c=="right"){
            if(iNow<=0){
                iNow=0
            }else{
                iNow--
            }
            $(".slide ul").animate({"left":-w*iNow})
        }else if(c=="reset"){
            $(".slide ul").animate({"left":-w*iNow})
        }
        $(".circle em").eq(iNow).addClass("active").siblings().removeClass("active");
        $(".title-box .title").html($(".slide li").eq(iNow).find("a").attr("title"))
    };

    timer=setInterval(function(){
        if(iNow>=$(".slide li").length-1){
            iNow=0;
        }else{
            iNow++
        }
        $(".slide ul").animate({"left":-w*iNow})
        $(".circle em").eq(iNow).addClass("active").siblings().removeClass("active");
        $(".title-box .title").html($(".slide li").eq(iNow).find("a").attr("title"))
    },3000);

}
$(function(){
    scrollAuto();
})

</script>

实现效果:

时间: 2024-10-25 18:55:06

jquery 移动端轮播图的相关文章

jQuery淡入淡出轮播图实现

大家好我是QD小白,这是人生第一次写博客,准备写的内容是Jquery淡入淡出轮播图实现,在此之前学习JS写的轮播图效果都感觉不怎么好,学习了jQuery里的淡入淡出效果后又写了一次轮播图效果明显感觉好了许多.现在我就来分享下自己写轮播图的思路和方法. HTML部分: <div id="img-box" style="width:700px; height:350px;"> <img style="opacity: 1;" wid

Jquery淡入淡出轮播图

Jquery淡入淡出轮播图 因为代码不多所以我就写一个html文件里了 html代码 <div class="banner"> <ul> <li><a href="javascript:;"><img src="./1 (1).png" /></a></li> <li><a href="javascript:;"><

告别组件之教你使用原生js和css写移动端轮播图

在工作中由于项目需要要写一个轮播图,本想使用组件直接调用实现快速开发,但是一想到自己经常使用组件但是让自己手写的话确实一点都不会. 一个不会手写组件的前端程序员不是一个好程序员!于是打算自己手写一个. 老规矩,首先看一下最终效果,这个最终可以实现定时自动播放,触摸滑动,手动修改下面横条效果等功能. 项目中使用到的HTML代码如下 <div class="banner"> <ul class="clearfix"> <li><

jquery简单无缝轮播图实现

此简单轮播图布局原理是: 一个div包含图片列表,和控制按钮.其宽度等于图片的宽度,溢出隐藏. 图片要左浮动. jquery原理: 开一个定时器,隔一段时间执行图片列表向左移动一个图片的宽度,同时在移动时设置一个回调函数. 把向左移动的图片,也是图片列表的第一张图片,添加到图片列表ul的末尾. 这样实现了,图片自动播放的效果. 怎么带动图片控制的小按钮变亮? 因为每一次图片轮播,都会改变图片值得索引,那就给函数加一个变量 i ,每一次执行定时器都会i++: var spanindex=i%4;

基于Jquery实现的轮播图

前阵子我用js写了一个轮播图,现在的话换成jQuery来实现,先看看效果图 首先是html结构,如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>jquery版图片轮播</title> <link rel="stylesheet" href="css/index.css" /> &l

jQuery实现简易轮播图的效果

(图片素材取自于小米官网) 刚开始接触jQuery的学习,个人觉得如果为了实现多数的动态效果,jQuery的确很简易方便. 下面简易的轮播图效果,还请前辈多多指教~ (努力学习react vue angular中,加油~~~) <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> &

用jQuery写的轮播图

效果图: 与前一篇写的轮播图实现的效果一致,这个是用jQuery写的,相对简单一点的吧. 这个是js代码,我先粘上去. <script src="../jquery-3.3.1.min.js"></script> <script> var index = 1; var newLeft = 0; var interval; var buttSpan = $(".butt").children(); function nextPage

用 jQuery 手写轮播图

先上个效果截图: 主要包含以下功能点: * 1.页面加载完,自动循环翻页* 2.翻页按钮,翻页* 3.定点翻页* 4.翻页时同步圆点状态* 5.鼠标进入,停止自动翻页* 6.快速点击翻页的bug(加 isPaging 标志) 主要包含以下功能点: * 1.页面加载完,自动循环翻页* 2.翻页按钮,翻页* 3.定点翻页* 4.翻页时同步圆点状态* 5.鼠标进入,停止自动翻页* 6.快速点击翻页的bug(加 isPaging 标志) 上代码: <!DOCTYPE html> <html>

写jquery插件【轮播图】历程

轮播图插件的任务已经接近尾声,在书写轮播图期间确实有一些小的感触的.感兴趣的可以访问我的轮播图的线上地址:轮播图 首先,轮播图插件其实并不是我第一次写,之前也写过,不过那时候是按照别人的思路写下来的,算起来大概有一年了,这次又一次开始轮播图是因为拜读了<单页面Web应用 JavaScript从前端到后端>的这本书的1-4章,我开始跃跃欲试的想把它用到自己的代码中,书本中前四章的思想是将js模块化,我就跟着作者的代码思路以及代码习惯先尝试着做了个轮播图,发现作者的模块化思想非常好,时间长了,养成