全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

jquery+css实现简单的图片轮播效果

开发过程中需要用到图片轮播的插件,在网上找了几个插件之后还是决定自己码一个,比较简洁的功能,以后说不定还会有用。

ps:

功能比较简单,整个框并不能根据图片的大小自动调节,这里所用的图片是1170*500的,如果需要改成其他大小的图片,自行修改.pic-list下img的宽度。

.pic-list中的宽度为整个横幅的宽度,如果需要轮播的图片数量很多,.pic-list的宽度应大于数量*单张宽度,

html

<div class="banner">
    <!--第一张图片为最后一张,用来做轮播连接使用,所以一开始显示的第一章,应是第二张图片,这里图片的宽度为1170px,所以一开始left为-1170px,同理最后一张图也为第一张图。-->
  <div class="pic-list" style="left: -1170px">
    <img src="/static/img/4.jpg" alt="">
    <img src="/static/img/1.jpg" alt="">
    <img src="/static/img/2.jpg" alt="">
    <img src="/static/img/3.jpg" alt="">
    <img src="/static/img/4.jpg" alt="">
    <img src="/static/img/1.jpg" alt="">
  </div>
  <div id="buttons">
    <!-- 确保span的数量跟img数量一样多,不包括第一张img和最后一张img-->
    <span class='on'></span>
    <span></span>
    <span></span>
    <span></span>
  </div>
  <a href="javascript:;" class="arrow" id="prev">&lt;</a>
  <a href="javascript:;" class="arrow" id="next">&gt;</a>
</div>

css

.banner{
  width: 100%;
  height: 500px;
  overflow: hidden;
  position: relative;

}
.banner a{
  text-decoration: none;
}
.banner .pic-list{
  width: 10000px;
  height: 500px;
  position: absolute;
  z-index: 1;
}
.banner .pic-list img{
  width: 1170px;
  float: left;
}
#buttons{
  position: absolute;
  z-index: 2;
  height: 10px;
  bottom: 20px;
  left: 550px;

}
#buttons span{
  cursor: pointer;
  float: left;
  border: 1px solid #fff;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #333;
  margin-right: 5px;
}
#buttons .on{
  background: orange;
}
.arrow{
  cursor: pointer;
  line-height: 36px;
  text-align: center;
  font-size: 20px;
  font-weight: bold;
  width: 40px;
  height: 40px;
  position: absolute;
  z-index: 2;
  top: 200px;
  background: rgba(0,0,0,0.5);
  color: #fff;
  display: none;
}
.banner:hover .arrow{display: block;}

#prev{
  left: 20px;
}
#next{
  right:20px;
}

js

$(document).ready(function(){
  var picNum = 4;//图片数量,根据实际修改
  var picWidth = 1170;//图片的宽度,根据实际修改
  var picMaxWidth = -1 * picNum * picWidth;
  var currentPic = 1;
  var next = $('#next');
  var prev = $('#prev');
  var flag = false;

  prev.on('click',function(){
    if(!flag){
      calPx(1170);
      currentPic--;
      if (currentPic < 1) {
        currentPic = picNum;
      }
      $('#buttons span').eq(currentPic-1).addClass('on').siblings().removeClass('on');
    }
  });

  next.on('click',function(){
    if(!flag){
      calPx(-1170);
      currentPic++;
      if (currentPic > picNum) {
        currentPic = 1;
      }
      $('#buttons span').eq(currentPic-1).addClass('on').siblings().removeClass('on');
    }


  });
  $('.banner').on('mouseover',function(){
    stop();
  }).on('mouseout',function(){
    play();
  })
  function nextClick(){
    next.click();
  }
  function play(){
    setInt = setInterval(nextClick,2000);
  }
  function stop(){
    clearInterval(setInt);
  }

  function calPx(leftPx){
    flag = true;
    var left = parseInt($('.pic-list').css('left'));
    var newLeft = left+leftPx;
    var time = 300;
    var interval = 10;
    var speed = leftPx/(time/interval);

    function go(){
      var left = parseInt($('.pic-list').css('left'));
      if((speed < 0 && left > newLeft) || (speed > 0 && left < newLeft)){
        $('.pic-list').css('left', (left + speed) + 'px');
        setTimeout(go,interval);
      }else{
        flag = false;
        if( newLeft > -1170){
          newLeft = picMaxWidth;
        }else if (newLeft < picMaxWidth ) {
          newLeft = -1170;
        }
        $('.pic-list').css('left',newLeft + 'px');
      }
    }
    go();

  }
  play();

});

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# jquery  # css  # 图片轮播  # 12款经典的白富美型—jquery图片轮播插件—前端开发必备  # 原生js和jquery实现图片轮播特效  # jQuery图片轮播的具体实现  # Jquery代码实现图片轮播效果(一)  # 基于JQuery的实现图片轮播效果(焦点图)  # 原生js和jquery实现图片轮播淡入淡出效果  # 基于jquery的图片轮播 tab切换组件  # jQuery插件slicebox实现3D动画图片轮播切换特效  # jQuery手动点击实现图片轮播特效  # 基于jQuery实现左右图片轮播(原理通用)  # 第一张  # 一张图  # 几个  # 还会  # 找了  # 也为  # 并不能  # 应是  # 不包括  # 大家多多  # 过程中  # 说不定  # 自动调节  # 在网上  # id  # span  # buttons  # href  # leftPx  # javascript 


相关文章: 建站之星如何配置系统实现高效建站?  如何通过可视化优化提升建站效果?  音乐网站服务器如何优化API响应速度?  建站主机如何安装配置?新手必看操作指南  Swift中switch语句区间和元组模式匹配  专业网站建设制作报价,网页设计制作要考什么证?  建站主机默认首页配置指南:核心功能与访问路径优化  简易网站制作视频教程,使用记事本编写一个简单的网页html文件?  建站之星好吗?新手能否轻松上手建站?  如何快速搭建高效WAP手机网站吸引移动用户?  广东专业制作网站有哪些,广东省能源集团有限公司官网?  网站建设制作、微信公众号,公明人民医院怎么在网上预约?  网站制作哪家好,cc、.co、.cm哪个域名更适合做网站?  如何通过虚拟主机空间快速建站?  魔毅自助建站系统:模板定制与SEO优化一键生成指南  如何高效完成独享虚拟主机建站?  企业微网站怎么做,公司网站和公众号有什么区别?  Python多线程使用规范_线程安全解析【教程】  实现虚拟支付需哪些建站技术支撑?  教程网站设计制作软件,怎么创建自己的一个网站?  建站之星如何开启自定义404页面避免用户流失?  建站之星如何快速生成多端适配网站?  怎么用手机制作网站链接,dw怎么把手机适应页面变成网页?  可靠的网站设计制作软件,做网站设计需要什么样的电脑配置?  如何在阿里云域名上完成建站全流程?  如何安全更换建站之星模板并保留数据?  北京建设网站制作公司,北京古代建筑博物馆预约官网?  平台云上自主建站:模板化设计与智能工具打造高效网站  建站之星如何助力企业快速打造五合一网站?  c# await 一个已经完成的Task会发生什么  深圳网站制作的公司有哪些,dido官方网站?  建站之星后台密码如何安全设置与找回?  深圳网站制作培训,深圳哪些招聘网站比较好?  如何在阿里云虚拟服务器快速搭建网站?  手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?  如何快速搭建支持数据库操作的智能建站平台?  rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted  黑客如何利用漏洞与弱口令入侵网站服务器?  如何用腾讯建站主机快速创建免费网站?  网站设计制作公司地址,网站建设比较好的公司都有哪些?  详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)  济南企业网站制作公司,济南社保单位网上缴费步骤?  网站网页制作电话怎么打,怎样安装和使用钉钉软件免费打电话?  如何通过宝塔面板实现本地网站访问?  网页设计与网站制作内容,怎样注册网站?  网站规划与制作是什么,电子商务网站系统规划的内容及步骤是什么?  全景视频制作网站有哪些,全景图怎么做成网页?  如何在Golang中使用replace替换模块_指定本地或远程路径  C++ static_cast和dynamic_cast区别_C++静态转换与动态类型安全转换  建站之星导航如何优化提升用户体验? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。