96编辑器旗下产品
找图
终身
ID:0
到期时间:永久
退出登录
您的位置:首页 > 百科管理 > 详情

海报轮播左右箭头jq-轮播图怎么做,左右剪头,和图下面的小圆点span,html,js,jq,会做的帮帮我,发下代码。

原创:找图网 2023-08-07 22:57:46
  • 轮播图上的左右箭头是怎么实现的 能通过Jquery添加吗?

  • 可以,就是加个箭头模块,然后添加onclick事件,让它具备跳转图片的功能。

  • 利用jquery如何写出PC端轮播图(详细教程)

  • 本篇文章主要给大家讲述了用jquery如何写出一个PC端的轮播图效果的实例,有兴趣的朋友参考下。

    最近其他项目不是很忙,被安排给公司的官网项目做一个新的页面(之前没接触公司官网项目),其中有一个用到轮播图的地方,最开始想直接用插件实现就好了,可是发现官网项目里之前都没有引入过,后来想了想,就不引入它了,免得又得增加依次一次网络请求,项目里既然已经用到了jQuery,那就索性用jQuery写一个轮播图吧。

    现在把自己写的轮播图这块代码单独拿出来,做一个小demo写在这里记录一下(demo中轮播图的图片网上随意找的)

    实现的效果:

    1、自动轮播(轮播时间间隔在js代码中自定义)

    2、点击左右侧按钮,实现手动切换

    3、底部小圆点根据切换图片的位置相应的显示active状态

    4、鼠标经过轮播图区域,停止轮播,离开轮播图区域开始轮播

    代码目录结果如下:

    一、

    注:这里以5张图片为例,页面上真正轮播展示给用户看到的是5张不同的图片,但是为了轮播效果的连贯性,所以在第一张图片前面添加上第五张图片,在第五张图片后面加上了第一张图片,所以demo结构里是7张图片,每张图片的尺寸必须都是一样的哦(这里宽高尺寸是720*350px)。

    <!DOCTYPE html>

    <html lang="en">

    <head>

    <meta charset="UTF-8">

    <title>PC-jquery版轮播图</title>

    <link rel="stylesheet" href="css/" rel="external nofollow" >

    </head>

    <body>

    <p class="layout">

    <h2 style="text-align: center;">PC-jquery版轮播图</h2>

    <p class="slide" id="slide">

    <p id="outer" class="outer">

    <ul id="inner" class="inner">

    <li><a href="" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" ><p>图片-5</p><img src="images/"></a></li>

    <li><a href="" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" ><p>图片-1</p><img src="images/"></a></li>

    <li><a href="" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" ><p>图片-2</p><img src="images/"></a></li>

    <li><a href="" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" ><p>图片-3</p><img src="images/"></a></li>

    <li><a href="" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" ><p>图片-4</p><img src="images/"></a></li>

    <li><a href="" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" ><p>图片-5</p><img src="images/"></a></li>

    <li><a href="" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" ><p>图片-1</p><img src="images/"></a></li>

    </ul><!--底部小圆点-->

    <ol class="dot" id="dot">

    <li class="active"></li>

    <li></li>

    <li></li>

    <li></li>

    <li></li>

    </ol>

    </p>

    <!--左右两侧的点击切换按钮-->

    <p class="arrow-box">

    <p class="arrow arrow-l" id="arrow_l">?</p>

    <p class="arrow arrow-r" id="arrow_r">?</p>

    </p>

    </p>

    </p>

    <script src="js/"></script>

    <script src="js/"></script>

    </body>

    </html>二、

    * {

    margin: 0;

    padding: 0;

    box-sizing: border-box;

    }

    .layout {

    width: 1000px;

    margin: 30px auto;

    }

    ul,ol,li {

    list-style: none;

    }

    .slide {

    position: relative;

    width: 900px;

    margin:auto;

    }

    .slide .outer {

    position: relative;

    margin: 30px auto;

    width: 720px;

    height: 400px;

    overflow: hidden;

    }

    .slide .outer .inner {

    width: 5040px;

    height: 350px;

    position: absolute;

    left: -720px;

    top: 0;

    }

    .slide .outer .inner li {

    float: left;

    height: 350px;

    }

    .slide .outer .inner li a {

    display: block;

    position: relative;

    width: 100%;

    height: 100%;

    }

    .slide .outer .inner li a p {

    position: absolute;

    left: 0;

    bottom: 0;

    color: #fff;

    font-size: 18px;

    width: 720px;

    height: 80px;

    line-height: 80px;

    padding-left: 50px;

    background: linear-gradient(180deg,rgba(0,0,0,0), rgba(0,0,0,0.5));

    }

    .slide .outer .dot {

    margin-top: 365px;

    text-align: center;

    }

    .slide .outer .dot li {

    height: 6px;

    width: 6px;

    border-radius: 3px;

    background-color: #d2cbcb;

    display: inline-block;

    margin: 0 3px;

    }

    .slide .outer .dot {

    background-color: #6e5ca5;

    }

    .slide .arrow-box {

    position: absolute;

    width: 900px;

    height: 60px;

    top: 150px;

    left: 0;

    }

    .slide .arrow-box .arrow {

    width: 60px;

    height: 60px;

    line-height: 60px;

    text-align: center;

    border-radius: 30px;

    background-color: #dde2e6;

    font-size: 60px;

    color: #999;

    cursor: pointer;

    }

    .slide .arrow-box . {

    float: left;

    }

    .slide .arrow-box . {

    float: right;

    }三、

    注:js代码中,每个变量均已给了注释。为了防止快速多次点击,而出现动画不停的现象,这里在每次切换图片的时候先调用stop(false,true)。但是注意在向左侧滚动的时候,滚动到最后一张图图片后,再次切换时就不要用stop(false,true),而是要瞬间定位到第一张图片(其实是dom结构中的第二张)的位置,同样,向右侧滚动时,当滚动到第一张图片后,再次切换时就不用stop(false,true),而是要瞬间定位到最后一张图片(其实是dom结构中的倒数第二张)的位置。

    var interval = 3000; //轮播间隔时间

    var arrowL = $('#arrow_l'); //左侧箭头

    var arrowR = $('#arrow_r'); //右侧箭头

    var slideBox = $('#slide'); //轮播图区域

    var innerBox = $('#inner'); //内层大盒子

    var img = ('li'); //每个图片

    var dot = $('#dot'); //小圆点盒子

    var imgW = $(img[0]).outerWidth(); //每个li标签的宽度

    var imgCount = 5; //总图片个数(不同图片的个数)(实际dom上是有7张)

    var i = 0; //初始化为第0张图片

    timer = null; //定时器

    //自动轮播

    timer = setInterval(function () {

    i++;

    (false, true).animate({'left':-i*imgW+'px'},300)

    ('li').removeClass('active').eq(i-1).addClass('active')

    if(i > imgCount){

    ({'left':-1*imgW+'px'},0);

    ('li').removeClass('active').eq(0).addClass('active')

    i = 1;

    }

    },interval)

    //点击右侧箭头,播放下一张

    (function () {

    i++;

    (false, true).animate({'left':-i*imgW+'px'},300)

    ('li').removeClass('active').eq(i-1).addClass('active')

    if(i > imgCount){

    ({'left':-1*imgW+'px'},0);

    ('li').removeClass('active').eq(0).addClass('active')

    i = 1;

    }

    })

    //点击左侧箭头,播放上一张

    (function () {

    i--;

    (false, true).animate({'left':-i*imgW+'px'},300)

    ('li').removeClass('active').eq(i-1).addClass('active')

    if(i < 1){

    ({'left':-imgCount*imgW+'px'},0);

    ('li').removeClass('active').eq(imgCount-1).addClass('active')

    i = imgCount;

    }

    })

    //鼠标经过轮播图区域时,清除定时器,停止自动轮播

    (function () {

    clearInterval(timer);

    })

    //鼠标离开轮播图区域时,重新启动自动轮播

    (function () {

    timer = setInterval(function () {

    i++;

    (false, true).animate({'left':-i*imgW+'px'},300)

    ('li').removeClass('active').eq(i-1).addClass('active')

    if(i > imgCount){

    ({'left':-1*imgW+'px'},0);

    ('li').removeClass('active').eq(0).addClass('active')

    i = 1;

    }

    },interval)

    })四、效果图展示

    上面是我整理给大家的,希望今后会对大家有帮助。

    相关文章:

    webpack 4.0.0-beta.0版本新特性(详细教程)

    在vue2.0组件中如何实现传值、通信

    利用SpringMVC解决vue跨域请求

  • 轮播图怎么做,左右剪头,和图下面的小圆点span,html,js,jq,会做的帮帮我,发下代码。

  • <!DOCTYPE html>

    <html>

    <head>

    <meta charset="utf-8" />

    <title></title>

    <style>

    *{margin:0;padding:0;}

    #box{position: relative;width:500px;height:300px;margin:30px auto;}

    #box ul:after{content: "";display: block;clear:both;width:0;height: 0;}

    li{list-style:none;}

    #img{width:500px;height: 300px;position: relative;}

    #img li{position: absolute;top:0;left:0;width:500px;height:300px;font-size: 40px;text-align: center;line-height: 300px;display: none;background:#f4f4f4;color:blue;}

    #img {display: block;}

    #list {width:500px;height:30px;line-height: 30px;color:#333;position: absolute;bottom:0;left:0;}

    #list li{float:left;;background:green;width:125px;height:30px;text-align: center;line-height: 30px;font-size: 20px;}

    #list {background:blue;color:#fff;}

    .control{position: absolute;top:125px;display: block;width:30px;height:50px;text-align: center;line-height: 50px;background:#666;color:#fff;}

    #prev{left:0;}

    #next{right:0;}

    </style>

    </head>

    <body>

    <div id="box">

    <ul id="img">

    <li class="show">图1</li>

    <li>图2</li>

    <li>图3</li>

    <li>图4</li>

    </ul>

    <ul id="list">

    <li class="active">1</li>

    <li>2</li>

    <li>3</li>

    <li>4</li>

    </ul>

    <div id="prev" class="control">左</div>

    <div id="next" class="control">右</div>

    </div>

    <script type="text/javascript">

    var img = ("img").getElementsByTagName("li");

    var list = ("list").getElementsByTagName("li");

    var next = ("next");

    var prev = ("prev");

    for (var i = 0; i < ; i++) {

    list[i].index = i;

    list[i].onclick = function(){

    for(var j = 0;j<;j++){

    list[j].className="";

    img[j].className="";

    }

    ="active";

    img[].className="show";

    }

    }

     = function(){

    play(false);

    }

     = function(){

    play(true);

    }

    function play(bool){

    for(var i = 0;i<;i++){

    if(list[i].className=="active"){

    var index = i;

    break;

    }

    }

    bool ?(index == 0? index= -1:index--):(index == -1? index= 0:index++);

    for(var j = 0;j<;j++){

    list[j].className="";

    img[j].className="";

    }

    list[index].className="active";

    img[index].className="show";

    }

    </script>

    </body>

    </html>

    样式自己写懒得写样式了。

    最新文章 更多
    最新素材 更多
    公司介绍 网站地图 图片资讯
    Copyright © 2010-2022 山东找图网络科技有限公司  鲁ICP备18007836号-3  邮箱:15653358549@163.com