jQuery实现带3D切割效果的轮播图功能示例【附源码下载】


Posted in jQuery onApril 04, 2019

本文实例讲述了jQuery实现带3D切割效果的轮播图。分享给大家供大家参考,具体如下:

这是一个使用css3+jQuery实现的轮播图效果,以前还没接触css3时,觉得效果挺酷炫的,但是实现挺复杂的,今天研究了一下,发现特别简单,稍微动用一下空间想象力就好了,下面时效果图

jQuery实现带3D切割效果的轮播图功能示例【附源码下载】

1.这是html代码

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>3D切割轮播图</title>
</head>
<body>
  <div class="box">
    <ul class="images-box">
	  //每个li由4个span组成,刚好组成正方体前、后、上、下 四个面,
      <li>
        <span></span>
        <span></span>
        <span></span>
        <span></span>
      </li>
      <li>
        <span></span>
        <span></span>
        <span></span>
        <span></span>
      </li>
      <li>
        <span></span>
        <span></span>
        <span></span>
        <span></span>
      </li>
      <li>
        <span></span>
        <span></span>
        <span></span>
        <span></span>
      </li>
      <li>
        <span></span>
        <span></span>
        <span></span>
        <span></span>
      </li>

    </ul>
	//左右切换按钮
    <div>
      <a href="javascript:;" rel="external nofollow" rel="external nofollow" class="left"><</a>
      <a href="javascript:;" rel="external nofollow" rel="external nofollow" class="right">></a>
    </div>
  </div>
  <script src="js/jquery-1.12.4.js"></script>
  <script src="js/index.js"></script>    
</body>
</html>

2.这是css代码

*{
      padding:0;
      margin: 0;
    }
    .box{
      width: 600px;
      height: 300px;
      border: 1px solid #ccc;
      margin: 150px auto;
      position: relative;
    }
    .box .left,
    .box .right{
      position: absolute;
      top: 50%;
      width: 40px;
      height: 40px;
      line-height: 40px;
      margin-top: -20px;
      text-align: center;
      text-decoration:none;
      font-weight: bold;
      font-size: 40px;
      color: #ccc;
      background-color: rgba(255,255,255,.2);
    }
    .box .right{
      right: 0;
    }
    .images-box{
      width: 100%;
      height: 100%;
      list-style: none;
    }
    .images-box li {
      width: 120px;
      height: 100%;
      float: left;
      position: relative;
      /*使被转换的子元素保留其 3D 转换*/
      transform-style: preserve-3d;
      transition:all 6s; /*控制旋转时间*/
    }
    .images-box li span{
      width: 100%;
      height: 100%;
      position: absolute;
      top: 0;
      left: 0;
      background: url("images/1.jpg")no-repeat ;
    }
    /*拼接立体容器,每个面使用不同的背景图*/
    .box .images-box li span:nth-child(1){
      background-image: url("images/1.jpg");
      transform: translateZ(150px);
    }
    .box .images-box li span:nth-child(2){
      background-image: url("images/2.jpg");
      transform: rotateX(90deg) translateZ(150px);
    }
    .box .images-box li span:nth-child(3){
      background-image: url("images/3.jpg");
      transform: rotateX(180deg) translateZ(150px);
    }
    .box .images-box li span:nth-child(4){
      background-image: url("images/4.jpg");
      transform: rotateX(270deg) translateZ(150px);
    }

    /*拼接背景图*/
    .images-box li:nth-child(1) span{
      background-position: 0 0;
    }
    .images-box li:nth-child(2) span{
      background-position: -120px 0;
    }
    .images-box li:nth-child(3) span{
      background-position: -240px 0;
    }
    .images-box li:nth-child(4) span{
      background-position: -360px 0;
    }
    .images-box li:nth-child(5) span{
      background-position: -480px 0;
    }
3.这是js代码,这里用到jquery,需提前引入
$(function () {
      var index=0; //旋转角度记录
      var flag=true;
      $('.left').on('click',function () {
        if(!flag) return false;
        flag=false;
        index--;
        var angle=-index*90;
        $('.images-box li').css('transform','rotateX('+angle+'deg)').each(function (i,item) {
          // 每个模块延时不同,即可看出切换3d效果
          $(this).css('transition-delay',i*0.25+'s');
        });
      });
      $('.right').on('click',function () {
        if(!flag) return false;
        flag=false;
        index++;
        var angle=-index*90;
        $('.images-box li').css('transform','rotateX('+angle+'deg)').each(function (i,item) {

          $(this).css('transition-delay',i*0.25+'s');
        });

      });
      //节流阀,防止连续、快速、多次点击
      $('li:last').on('transitionend',function () {
        flag=true;
      });
    })
  </script>

这是页面所用的图片

1.jpg

jQuery实现带3D切割效果的轮播图功能示例【附源码下载】

2.jpg

jQuery实现带3D切割效果的轮播图功能示例【附源码下载】

3.jpg

jQuery实现带3D切割效果的轮播图功能示例【附源码下载】

4.jpg

完整代码点击此处本站下载

希望本文所述对大家jQuery程序设计有所帮助。

jQuery 相关文章推荐
最常用的jQuery表单验证(简单)
May 23 jQuery
jquery处理checkbox(复选框)是否被选中实例代码
Jun 12 jQuery
基于jQuery Easyui实现登陆框界面
Jul 10 jQuery
jQuery实现上传图片前预览效果功能
Aug 03 jQuery
jQuery绑定事件方法及区别(bind,click,on,live,one)
Aug 14 jQuery
jQuery实现对网页节点的增删改查功能示例
Sep 18 jQuery
jqueryUI tab标签页代码分享
Oct 09 jQuery
jQuery EasyUI 选项卡面板tabs的使用实例讲解
Dec 25 jQuery
基于jQuery的时间戳与日期间的转化
Jun 21 jQuery
jQuery-Citys省市区三级菜单联动插件使用详解
Jul 26 jQuery
JQuery省市联动效果实现过程详解
May 08 jQuery
jQuery实现全选按钮
Jan 01 jQuery
jquery简单实现纵向的无缝滚动代码实例
Apr 01 #jQuery
jQuery事件blur()方法的使用实例讲解
Mar 30 #jQuery
jQuery实现动态添加和删除input框代码实例
Mar 29 #jQuery
jQuery ajax仿Google自动提示SearchSuggess功能示例
Mar 28 #jQuery
JQueryDOM之样式操作
Mar 27 #jQuery
浅谈JS和jQuery的区别
Mar 27 #jQuery
jQuery实现动态添加和删除input框实例代码
Mar 26 #jQuery
You might like
php字符比较函数similar_text、strnatcmp与strcasecmp用法分析
2014/11/18 PHP
php中删除、清空session的方式总结
2015/10/09 PHP
PHP中strncmp()函数比较两个字符串前2个字符是否相等的方法
2016/01/07 PHP
session 加入redis的实现代码
2016/07/15 PHP
php事件驱动化设计详解
2016/11/10 PHP
PHP实现的统计数据功能详解
2016/12/06 PHP
浅析PHP反序列化中过滤函数使用不当导致的对象注入问题
2020/02/15 PHP
类似GMAIL的Ajax信息反馈显示
2010/02/16 Javascript
JavaScript取得鼠标绝对位置程序代码介绍
2012/09/16 Javascript
THREE.JS入门教程(1)THREE.JS使用前了解
2013/01/24 Javascript
js实现鼠标悬停图片上时滚动文字说明的方法
2015/02/17 Javascript
谈一谈js中的执行环境及作用域
2016/03/30 Javascript
jQuery使用经验小技巧(推荐)
2016/05/31 Javascript
AngularJS之依赖注入模拟实现
2016/08/19 Javascript
原生javascript上传图片带进度条【实例分享】
2017/04/06 Javascript
AngularJS路由删除#符号解决的办法
2017/09/28 Javascript
Vue-cli3简单使用(图文步骤)
2019/04/30 Javascript
element-ui表格合并span-method的实现方法
2019/05/21 Javascript
从源码角度来回答keep-alive组件的缓存原理
2021/01/18 Javascript
[01:00:12]2018DOTA2亚洲邀请赛 4.7 淘汰赛 VP vs LGD 第一场
2018/04/09 DOTA
详解Python3中的Sequence type的使用
2015/08/01 Python
浅谈插入排序算法在Python程序中的实现及简单改进
2016/05/04 Python
python selenium登录豆瓣网过程解析
2019/08/10 Python
python KNN算法实现鸢尾花数据集分类
2019/10/24 Python
Revolution Beauty美国官网:英国知名化妆品网站
2018/07/23 全球购物
Made in Design德国:设计师家具、灯具和装饰
2019/10/31 全球购物
初级会计求职信范文
2014/02/15 职场文书
自荐信如何制作?
2014/02/21 职场文书
行政助理工作职责范本
2014/03/04 职场文书
安全生产标语大全
2014/10/06 职场文书
招标保密承诺书
2015/01/20 职场文书
2015年五一劳动节演讲稿
2015/03/18 职场文书
涨价通知
2015/04/23 职场文书
幼儿园中班教育随笔
2015/08/14 职场文书
2016国庆节67周年红领巾广播稿
2015/12/18 职场文书
不会写演讲稿,快来看看这篇文章!
2019/08/06 职场文书