码农网

网站首页> 前端开发> JavaScript

JS实现炫酷轮播图

众衡网络科技

本文实例为大家分享了JS实现炫酷轮播图的具体代码,供大家参考,具体内容如下

效果图

<!DOCTYPE html>
<html>

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>面试必备轮播图</title>
  <link rel="stylesheet" href="demo.css" rel="external nofollow" >
</head>

<body>
  <div id="wrap">
    <img src="./images/1.png" alt="">
    <img src="./images/2.png" alt="">
    <img src="./images/3.png" alt="">
    <img src="./images/4.png" alt="">
    <img src="./images/5.png" alt="">
  </div>
  <script src="jquery.min.js"></script>
  <script src="index.js"></script>

</body>

</html>

JS代码

var oImg = $('img');
// 默认中间展示索引值为0的这张图片
var curDisplay = 0;
// 将图片分散排列

// 获得图片个数
var len = oImg.length;

// 定时器
var timer;

function init() {
  initalCarousel();
  bindEvent();
}
init();

function initalCarousel() {
  // 获得中间图片
  console.log($('img'))
  var hLen = Math.floor(oImg.length / 2);
  // rNum,lNum分别是分散在中间图片左右左右两侧的图片索引
  var rNum, lNum;
  for (var i = 0; i < hLen; i++) {
    lNum = curDisplay - i - 1;
    // console.log(lNum)
    // 分别让分散在左右两侧的图片平移旋转
    oImg.eq(lNum).css({
      transform: 'translateX(' + (-150 * (i + 1)) + 'px) translateZ(' + (200 - i * 100) + 'px) rotateY(30deg)'
    });
    rNum = curDisplay + i + 1;
    // 如果运动到最后一张 循环运动
    if (rNum > oImg.length - 1) {
      rNum -= oImg.length;
    }
    oImg.eq(rNum).css({
      transform: 'translateX(' + (150 * (i + 1)) + 'px) translateZ(' + (200 - i * 100) + 'px) rotateY(-30deg)'
    });
    oImg.removeClass('active');
  }

  // 当前显示图片直接z轴向前移动 同时添加class名作为标记
  
  oImg.eq(curDisplay).css({
    transform: 'translateZ(300px)'
  }).addClass('active');

}
// 点击事件
function bindEvent() {
  // 在每一张图片上绑定上点击事件
  oImg.on('click', function (e) {
    // 判断点击图片不是第一张显示图片 
    if (!$(this).hasClass('active')) {
      // 标记图片flag切换
      // 改变当前显示图片索引
      curDisplay = $(this).index();
      initalCarousel();
    }
    // 鼠标覆盖 清除自动轮播定时器
  }).hover(function () {
    clearInterval(timer);
    // 鼠标移走 继续轮播
  }, function () {
    play();
  });
}
// 自动播放
function play() {
  timer = setInterval(function () {
    if (curDisplay == len - 1) {
      curDisplay = 0;
    } else {
      curDisplay++;
    }
    initalCarousel();
  }, 2000);
}

CSS样式

*{
  margin:0;
  padding:0;
}
.wrapper{
  position: relative;
  transform-style: preserve-3d;
  perspective: 800px;
  /* border:1px solid black; */
  height:200px;
  margin-top:200px;
}
.wrapper img{
  position: absolute;
  left: 50%;
  top: 50%;
  width: 300px;
  height: 200px;
  margin-left: -150px;
  margin-top: -100px;
  border-radius: 8px;
  transition: transform 0.5s ease-in-out;
}

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

轮播图

本文地址:https://m.manongw.com/article/208.html

文章来源:转载于CSDN,转载网址为https://blog.csdn.net/qq_41605893/article/details/109540568

版权申明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 ezhongheng@126.com 举报,一经查实,本站将立刻删除。

最近更新
热门素材
html5卡通章鱼素材,几何图形抽象设计

html5卡通章鱼素材,几何图形抽象设计

图片素材

html文字动画特效,文字虚线边框

html文字动画特效,文字虚线边框

文字特效

Bootstrap点击左侧垂直导航菜单全屏网页切换特效

Bootstrap点击左侧垂直导航菜单全屏网页切换特效

导航菜单

js+css3透明渐变风格导航菜单特效

js+css3透明渐变风格导航菜单特效

导航菜单

8款经典的css网站顶部导航栏样式

8款经典的css网站顶部导航栏样式

图片素材

js+css3网站顶部自适应导航栏菜单特效

js+css3网站顶部自适应导航栏菜单特效

图片素材

jQuery自定义添加删除表格行内容特效

jQuery自定义添加删除表格行内容特效

图片素材

jQuery+CSS3漂亮的下拉菜单选择框美化特效

jQuery+CSS3漂亮的下拉菜单选择框美化特效

css3实例

jQuery文字公告无限滚动轮播特效

jQuery文字公告无限滚动轮播特效

css3实例

jQuery+Layui省市区城市三级联动菜单选择特效

jQuery+Layui省市区城市三级联动菜单选择特效

css3实例