【3D卡片切换】基于jquery实现3D堆叠卡片切换效果(附完整源码)

2023-11-07



写在前面

其实3D卡片堆叠切换效果,从我入前端坑以来就一直喜欢的一种轮播效果,以前也有相关整理的,总是有其他琐事给耽搁了,这不趁着周四给大家整理一下基于jquery如何实现3D卡片切换效果的。这篇文章主要讲的是实现的过程,希望能够给你们带来启发。

涉及知识点

Jquery如何实现卡片堆叠轮播切换,如何实现3D图文卡片堆叠轮播效果,js实现3D卡片堆叠切换效果,3D卡片堆叠轮播demo。
版权声明:此文原创于CSDN博主-《拄杖盲学轻声码》,主页有很多分享的代码,期待您的访问。

实现效果

这个主要为了给大家一个最终实现效果的反馈,文尾附完整代码包的分享链接。
在这里插入图片描述

1、搭建页面

1.1 创建ul li节点

首先我先创建一个节点,我采用的是浮动布局的方式,主要通过设置样式和html,其中效果如下所示:
在这里插入图片描述

1.2 丰富元素

从A步骤我们就已经创建好了一个容器,接下来就是在里面放东西,首先我想到的是标题部分、图片部分、个人基本信息及简介部分。

Html代码所示

<div class="lb_gl">
        <div class="container">
            <h1 class="turn_3d">原创于CSDN博主-《拄杖盲学轻声码》</h1>
            <div class="pictureSlider poster-main">
                <!-- <div class="poster-btn poster-prev-btn"></div> -->
                <ul id="hdpturn" class="poster-list">
                    <li class="poster-item hdpturn-item">
                        <p class="xxgy">黄大大</p>
                        <p class="say">拄杖盲学轻声码</p>
                        <div class="for_btn">
                            <img src="img/a0.png" width="100%">
                            <a href="#" class="in_page"><img src="images/iconin.png"></a>
                        </div>
                        <div class="students_star">
                            <p class="cell_list"><span class="lf">姓名:<span class="darks">黄大大</span></span> <span
                                    class="rt">薪资 :<span class="darks">21k</span></span>
                            </p>
                            <p class="cell_list"><span>入职:<span class="darks">向前看,向钱看</span></span>
                            </p>
                            <div class="zwjs">
                                自我介绍:90后的阳光开朗大男孩,喜欢在CSDN(拄杖盲学轻声码)上写写文章,爱舞蹈,喜编程,好诗赋,奔名企,求发展
                            </div>
                        </div>
                    </li>
                </ul>
            </div>
        </div>

    </div>

CSS代码所示

/*轮播*/
// 原创于CSDN博主-《拄杖盲学轻声码》
.lb_gl {
    margin-bottom: 30px;
    background: url(../images/bg_3d.png);
    background-size: 100% 100%;
    height: 725px;
}

.container {
    width: 1024px;
    margin: 0 auto;
    position: relative;
}

.pictureSlider {
    height: 518px;
    margin-bottom: 24px;
}

.poster-item {
    background: #fefefe;
    height: 453px;
    width: 336px;
    border-radius: 10px;
    border: 1px solid #666;
    padding: 45px 23px 20px 23px;
    transition: all 0.5s;
    cursor: default;
    -moz-transition: all 0.5s;
    cursor: default;
    -webkit-transition: all 0.5s;
    cursor: default;
    -o-transition: all 0.5s;
    cursor: default;
}

.turn_3d {
    text-align: center;
    color: #999;
    font-weight: 400;
    font-size: 36px;
    padding: 28px 0;
}

.xxgy {
    font-size: 30px;
    font-weight: 900;
    padding-left: 10px;
}

.poster-item .say {
    font-size: 18px;
    margin-bottom: 5px;
    padding-left: 10px;
}

.students_star {
    padding: 10px 10px 0 10px;
}

.cell_list {
    margin-bottom: 20px;
    color: #999;
    font-size: 18px;
    overflow: hidden;
}

.darks {
    color: #000;
    padding-left: 10px;
}

.zwjs {
    border-top: 1px solid #d0cddb;
    line-height: 26px;
    padding-top: 5px;
    color: #999;
    font-size: 12px;
    max-height: 84px;
    overflow: hidden;
}

.for_btn {
    position: relative;
    height: 214px;
    overflow: hidden
}

.in_page {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 40px;
    height: 40px;
    margin-left: -20px;
    margin-top: -20px;
}

.in_page>img {
    width: 40px;
    height: 40px;
}

.check_more {
    width: 180px;
    height: 50px;
    line-height: 50px;
    text-align: center;
    color: #fff;
    background: #bc241d;
    margin: 0 auto;
    display: block;
}

页面实现效果
在这里插入图片描述

2、JS实现堆叠切换

因为是多个贴片,如果按照正常人去写的话估计就是复制粘贴,然后形成堆叠状态,但是博主不是正常人,所以我想着模拟后台返回数据(用假数据),然后采用遍历的方式去赋值实现多个卡片堆叠的效果,于是乎实现代码如下:

var aa;
        $(function () {
            //动态加载元素
            var _keyData = [{
                name: "黄大大",
                money: "21k",
                tiptxt: "拄杖盲学轻声码",
                ming: "向前看,向钱看",
                textar: "自我介绍:90后的阳光开朗大男孩,喜欢在CSDN(拄杖盲学轻声码)上写写文章,爱舞蹈,喜编程,好诗赋,奔名企,求发展"
            }, {
                name: "黄小小",
                money: "22k",
                tiptxt: "何惧风飞沙",
                ming: "向前看,向钱看",
                textar: "自我介绍:90后的阳光开朗大男孩,喜欢在CSDN(拄杖盲学轻声码)上写写文章,爱舞蹈,喜编程,好诗赋,奔名企,求发展"
            }, {
                name: "黄大中",
                money: "23k",
                tiptxt: "天地无涯",
                ming: "向前看,向钱看",
                textar: "自我介绍:90后的阳光开朗大男孩,喜欢在CSDN(拄杖盲学轻声码)上写写文章,爱舞蹈,喜编程,好诗赋,奔名企,求发展"
            }, {
                name: "黄大小",
                money: "21.5k",
                tiptxt: "谁怕,一蓑烟雨任平生",
                ming: "向前看,向钱看",
                textar: "自我介绍:90后的阳光开朗大男孩,喜欢在CSDN(拄杖盲学轻声码)上写写文章,爱舞蹈,喜编程,好诗赋,奔名企,求发展"
            }, {
                name: "黄小小",
                money: "21.5k",
                tiptxt: "拄杖盲学轻声码",
                ming: "向前看,向钱看",
                textar: "自我介绍:90后的阳光开朗大男孩,喜欢在CSDN(拄杖盲学轻声码)上写写文章,爱舞蹈,喜编程,好诗赋,奔名企,求发展"
            }, {
                name: "黄中小",
                money: "21.5k",
                tiptxt: "一生有爱",
                ming: "向前看,向钱看",
                textar: "自我介绍:90后的阳光开朗大男孩,喜欢在CSDN(拄杖盲学轻声码)上写写文章,爱舞蹈,喜编程,好诗赋,奔名企,求发展"
            }, {
                name: "黄中中",
                money: "21.5k",
                ming: "向前看,向钱看",
                tiptxt: "拄杖盲学轻声码",
                textar: "自我介绍:90后的阳光开朗大男孩,喜欢在CSDN(拄杖盲学轻声码)上写写文章,爱舞蹈,喜编程,好诗赋,奔名企,求发展"
            }];
            var kstr = "";
            for (var k = 0; k < _keyData.length; k++) {
                kstr += `<li class="poster-item hdpturn-item">
                        <p class="xxgy">`+ _keyData[k].name + `</p>
                        <p class="say">`+ _keyData[k].tiptxt + `</p>
                        <div class="for_btn">
                            <img src="img/a`+ k + `.png" width="100%">
                            <a href="#" class="in_page"><img src="images/iconin.png" /></a>
                        </div>
                        <div class="students_star">
                            <p class="cell_list"><span class="lf">姓名:<span class="darks">`+ _keyData[k].name + `</span></span> <span
                                    class="rt">薪资 :<span class="darks">`+ _keyData[k].money + `</span></span>
                            </p>
                            <p class="cell_list"><span>入职:<span class="darks">`+ _keyData[k].ming + `</span></span>
                            </p>
                            <div class="zwjs">
                                `+ _keyData[k].textar + `
                            </div>
                        </div>
                    </li>`;
            }
            $("#hdpturn").html("").html(kstr);
            aa = new hdpturn({
                id: "hdpturn",
                opacity: 0.9,
                width: 382,
                Awidth: 1024,
                scale: 0.9
            })
        })

其中不难发现里面还有一个hdpturn函数,这个当然是我自己去封装的,需要引入hdpturn.js具体封装代码如下(文尾有完整代码包):

(function (win, doc, undefined) {
    var hdpturn = function (turn) {
        this.turn = turn
        this.hdpturn = $("#" + turn.id)
        this.X = 0
        this.hdpturnitem = this.hdpturn.children(".hdpturn-item")
        this.num_li = this.hdpturnitem.length//轮播元素个数 hdpturnPy为每个的偏移量
        this.hdpturnPy = turn.Awidth / (this.num_li - 1)
        this.init()
        this.turn_()
        return this
    }
    hdpturn.prototype = {
        constructor: hdpturn,
        init: function () {
            var _self = this;
            this.hdpturn.children(".hdpturn-item").each(function (index, element) {
                //index是第几个元素 X是选取的中间数 num_li是总数
                var rt = 1//1:右侧:-1:左侧
                if ((index - _self.X) > _self.num_li / 2 || (index - _self.X) < 0 && (index - _self.X) > (-_self.num_li / 2)) { rt = -1 }//判断元素左侧还是右侧
                var i = Math.abs(index - _self.X);//取绝对值
                if (i > _self.num_li / 2) { i = parseInt(_self.X) + parseInt(_self.num_li) - index; }//i:是左或者右的第几个
                if ((index - _self.X) < (-_self.num_li / 2)) { i = _self.num_li + index - _self.X }
                $(this).css({
                    'position': 'absolute',
                    'left': '50%',
                    'margin-left': -_self.turn.width / 2 + _self.hdpturnPy * rt * i + "px",
                    'z-index': _self.num_li - i,
                    'opacity': Math.pow(_self.turn.opacity, i),
                    'transform': 'scale(' + Math.pow(_self.turn.scale, i) + ')',
                    '-webkit-transform': 'scale(' + Math.pow(_self.turn.scale, i) + ')',
                    '-webkit-transform': 'scale(' + Math.pow(_self.turn.scale, i) + ')',
                    '-moz-transform': 'scale(' + Math.pow(_self.turn.scale, i) + ')',
                    '-ms-transform': 'scale(' + Math.pow(_self.turn.scale, i) + ')',
                    '-o-transform': 'scale(' + Math.pow(_self.turn.scale, i) + ')'
                })
                $(this).attr("data_n", index)
            })
        },
        turn_: function () {
            var _self = this
            this.hdpturnitem.click(function () {
                _self.X = $(this).attr("data_n")
                _self.init()
            })
        },
        prev_: function () {
            var _self = this
            this.X--
            if (this.X < 0) { this.X = this.num_li - 1 }
            this.init()
        },
        next_: function () {
            var _self = this
            this.X++
            if (this.X >= this.num_li) { this.X = 0 }
            this.init()
        }
    }
    win.hdpturn = hdpturn;
}(window, document))

最终实现效果如下:
在这里插入图片描述

3、源码分享

3.1 百度网盘

链接:https://pan.baidu.com/s/1coCkeOlHV3zxxU9vTGuwOw
提取码:hdd6

3.2 123云盘

链接:https://www.123pan.com/s/ZxkUVv-0xI4.html
提取码:hdd6

3.3 邮箱留言

评论区留下您的邮箱账号,博主看到第一时间发给您,祝您生活愉快!


总结

以上就是今天要讲的内容,本文主要介绍了基于jquery实现3D卡片堆叠轮播切换的特效,实现轮播切换的过程,js如何实现3D叠加卡片轮播切换,3D叠加卡片轮播切换的demo,也期待大家一起进步哈,2023年一起加油!!!

版权声明:此文原创于CSDN博主-《拄杖盲学轻声码》,主页有很多分享的代码,期待您的访问。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【3D卡片切换】基于jquery实现3D堆叠卡片切换效果(附完整源码) 的相关文章

  • 触摸滚动 Jquery 插件 - 如何为多个实例使用不同选项进行初始化?

    正如这里所发现的 https github com neave touch scroll https github com neave touch scroll function Define default scroll settings
  • Jquery查找值为X的表格单元格

    我正在尝试寻找一个 td 其中值为 5 它是一个日历 因此只有一个 5 值 您可以使用filter https api jquery com filter method td filter function return this text
  • jquery ajax可以调用外部webservice吗?

    jquery ajax代码可以调用吗网络服务来自另一个域名或另一个网站 像这样 ajax type POST url http AnotherWebSite com WebService asmx HelloWorld data name
  • 匹配数组中的对象并合并

    UPDATE 我有一个名为的对象数组cars包含 li 标签 其中包含有关汽车的属性数据 例如价格 汽车类型等 我的目标是 如果这些汽车符合某些标准 则将它们合并到一个列表中 要求 快速性能 保持相同的汽车数组结构 Main Goal Ma
  • 防止jsTree节点选择

    我正在使用 jsTree 插件列出文件系统中的文件夹 我需要防止用户在满足特定条件之前更改到另一个节点 下面的代码不会停止传播 我看到了一些使用其他插件的解决方案 但这是一个简单的任务 没有其他插件它一定是可能的 jstree on sel
  • 使用 javascript 将 html 文本渲染为位图,无需服务器端代码

    我需要使用 javascript 代码来转换 html 中的文章 帖子 以便最终用户以位图的形式查看 有没有办法在没有服务器端代码的情况下做到这一点 example p testing text here p 您可以使用例如html2can
  • jQuery id 选择器在有 .在 ID 中[重复]

    这个问题在这里已经有答案了 我的html代码如下 div class chatbox html markup which is validated div 在上面的代码中dipesh parmardiv 动态添加 我正在使用以下代码访问它
  • 如何获取传单标记簇中点击事件的图块?

    这是我的代码 function onMapClick e e originalEvent defaultPrevented true var orig e originalEvent console log orig target map
  • 比较表中的行以了解字段之间的差异

    我有一个包含 20 多列的表 客户端 其中大部分是历史数据 就像是 id clientID field1 field2 etc updateDate 如果我的数据如下所示 10 12 A A 2009 03 01 11 12 A B 200
  • jQuery 检索和设置 html select 元素的选定选项值

    我正在尝试使用 jQuery 检索并设置选择元素 下拉列表 的选定值 为了检索我已经尝试过 myId find selected val 也 myId val 但两者都返回未定义 任何对此问题的见解将不胜感激 要获取 设置选择元素的实际 s
  • 将 jQuery 版本从 1.7.1 升级到 1.11.2

    在我当前的应用程序中 我使用的是 jQuery 版本 1 7 1 现在 我计划将jQuery版本升级到1 11 2 是否有任何补丁可以提供与现有应用程序的向后可比性 Thanks 尝试这个 http blog jquery com 2013
  • 一个接一个地淡入div

    大家好 我很擅长 HTML 和 CSS 但才刚刚开始接触 jQuery 的皮毛 我希望让 3 个 div 在页面加载时逐渐淡入 到目前为止我有这个 我听说使用 css 将显示设置为 none 对于任何使用非 JavaScript 浏览器的人
  • 检测 WebGL 支持的正确方法?

    我正在尝试跨多个浏览器检测 WebGL 支持 并且遇到了以下情况 当前版本的 Firefox 似乎使用以下检查来报告积极支持 即使访问者的视频卡被列入黑名单和 或 WebGL 被禁用 if window WebGLRenderingCont
  • 无法正确显示行

    我应该在这个问题的开头说我完全没有 html css javascript 背景 所以请对我宽容点 如果我使用了错误的术语或者问了一个愚蠢的问题 没有提供足够的信息 请抱歉 我正在尝试让一个可扩展的表工作 通过阅读论坛线程 教程 将 nex
  • defaultDate 选项与 setDate 方法之间的差异

    我正在尝试使用jQueryUI DatePicker 我必须了解的主要事情之一是在页面加载时设置日期的方式 经过一些研究后 我发现有两种不同的方法可以做到这一点 using defaultDate option using setDate
  • 点击加载谷歌地图

    我想在单击链接后显示 Google 地图 我已经尝试过以下方法 当点击链接时 然后 Insert div与 id 链接后map 使用 jQuery 方法 getScript 加载 Google Maps API 添加谷歌地图到div带身份证
  • Instagram 粉丝计数 - 使用 jQuery / json 和 PHP

    经过几个小时的工作和一些帮助萨希尔 米塔尔我们已经成功使用 jQuery json 和 PHP 检索 Instagram 关注者计数 这是我们设法整理的内容 希望对其他想要获取 Instagram 信息的人有所帮助 我们的 jQuery I
  • 防止垃圾邮件按钮呼叫功能

    如何防止调用函数时出现垃圾邮件按钮 就像用户只能在按钮上每 1 秒调用一次该函数 有办法做到吗 因为我尝试了 setTimeout 但没有成功 它仍然在发送垃圾邮件 顺便说一句 我使用 Jquery 这是我的代码
  • 使用单击事件调用“trigger”方法时的复选框值

    如何在点击事件中获取正确的当前值以通过触发器调用 Html
  • 主页(网格)上的缩略图现在显得模糊。如何纠正?

    我不知道这看起来是否愚蠢 但从早上开始我就无法纠正这个突然出现在我的博客网站上的错误www candidopinions in http www candidopinions in 我有一个网格视图模板 其中博客文章中的特色图像作为调整大小

随机推荐

  • 基础算法题——德邦国王(dfs、剪枝)

    德邦国王 题目还算中规中矩 就是剪枝比较麻烦 解题思路 dfs 剪枝 移动次数不超过设定值 M 若有解 则后面的步骤不可大于该解的值 不断查询完美矩阵与当前矩阵不同的个数 t t 1 为最快可将当前矩阵移动成完美矩阵的步数 若 t 1 已经
  • 【STM32】以太网DMA描述符

    武汉加油 中国加油 1 什么是以太网DMA 学过STM32的同学都应该知道DMA就是不需要CPU的参与就能够实现内存和外设之间的数据交换 同样的 对于STM32互联型单片机的以太网DMA的作用也是如此 它的作用就是在不需要CPU的参与下 实
  • Redis从入门到精通(四:持久化)

    持久化简介 什么是持久化 利用永久性存储介质将数据进行保存 在特定的时间将保存的数据进行恢复的工作机制称为持久化 持久化用于防止数据的意外丢失 确保数据安全性 为什么持久化 redis是将数据存储在内存上的 一旦断电 或者因为机器故障使re
  • win10开机自动运行bat脚本

    windows10开机自动运行bat脚本 win r gpedit msc打开策略制 然后添加 如果你的bat文件的命令是启动其他文件 如下 启动其它程序 start xxx exe 启动vm虚拟机 chcp 65001 C Program
  • mysql left jion 优化_MySQL LEFT JOIN实例及优化分析

    摘要 在本教程中 我们将学习有关MySQL LEFT JOIN子句以及如何应用它来从两个或多个数据库表中查询数据 之后你将更深入的了解MySQL LEFT JOIN优化分析 MySQL LEFT JOIN MySQL的LEFT JOIN子句
  • linux squid 用户认证,如何在Linux中设置Squid的用户认证存取控制

    IT168 服务器学院 内核版本 Linux 2 2 Squid版本 Squid 2 3 stable2 http www squid cache org Versions v2 2 3 squid 2 3 STABLE2 src tar
  • Revit二次开发图例标注

    因为目前Revit并没有对用户开放图例创建的API 目前在做门窗大样图例时 只有通过复制已有的图例构件 Element 再修改它的族类型来实现 随后 想尝试做下自动标注 这个时候麻烦来了 首先这个图例构件 类型就是Element 并非Fam
  • 2021-02-07

    JSON解析教程 JSON 简介 对象格式 其他格式 数组格式 JSON主要解析方法 Gson FastJson JSON 简介 JSON JavaScript Object Notation JS对象简谱 是一种轻量级的数据交换格式 对象
  • 2.1Qt基础按钮控件

    第二章 基础控件 2 1按钮控件组 2 1 1QAbstractButton 类 2 1 2QPushButton 按钮 2 1 3 QRadioButton 按钮 2 1 4 checkBox 按钮 2 1 5 commandLinkBu
  • 【计算机毕设项目】基于大数据住房数据分析与可视化 - python

    文章目录 0 前言 分析展示 一 北上广租房房源分布可视化 二 北上广内区域租金分布可视化 三 房源距地铁口租金的关系可视化 四 房屋大小与租金关系可视化 结论 租个人房源好还是公寓好 北上广深租房时都看重什么 部分实现代码 0 前言 这两
  • loadrunner12使用问题总结

    以下只是针对我在使用中 问题对应的解决方案 可能不适用于所有 1 启动录制 浏览器卡着不动 原因1 浏览器版本过高 不兼容 官方文档的说明是支持ie11 firefox24 chrome30 我降低版本后firefox24正常了 chrom
  • Vue在页面和方法中分别通过遍历对象获取对象的键(key)和值(value)

    最近通过对象相关知识的深入学习 我发现对象的遍历主要分为两种情况 一种是在页面中遍历 另外一种是在方法中遍历对象 现在我们就从这两种情况分别来遍历对象获取对象的key和value 情况一 在页面中遍历对象获取对象的键和值 定义一个变量 ob
  • 一篇就够了——宝塔安装nextcloud以及一系列的软件(ocdownload,onlyoffice)安装,以及会遇到的一系列问题(持续更新)

    目录 前言 什么是宝塔 什么是nextcloud 为什么不用docker来安装nextcloud 下载 版本选择和下载链接 小提示 安装 选择数据库 下载ocdown 配置aira2c 安装onlyoffice 插件安装 目前出现的问题 持
  • 敏感字段加密,叶俊峰

    标题 敏感字段加密 时间限制 1秒 内存限制 262144K 语言限制 不限 敏感字段加密 给定一个由多个命令字组成的命令字符串 1 字符串长度小于等于127字节 只包含大小写字母 数字 下划线和偶数个双引号 2 命令字之间以一个或多个下划
  • 《微服务实战》 第三十章 分布式事务框架seata TCC模式

    系列文章目录 第三十章 分布式事务框架seata TCC模式 第二十九章 分布式事务框架seata AT模式 文章目录 系列文章目录 前言 1 TCC模式 1 1 AT 模式 参考链接 TBD 基于 支持本地 ACID 事务 的 关系型数据
  • stata 导出 相关系数表_【BBtime】戏说会计论文---stata简单实操

    Stata的优秀之处在于它是一个开放的平台 各位统计达人可以把自己做好的命令供大家使用 安装命令 ssc install 命令名称 注意 下文的P值就是软件中显示的 Prob 概率 数据处理 1 数据的合并 destring year re
  • 第二十一讲:神州路由器RIP路由的配置

    设备 端口 IP 子网掩码 网关 Router A F0 0 192 168 1 1 255 255 255 0 无 F0 3 192 168 10 1 255 255 255 0 无 Router B F0 0 192 168 1 2 2
  • 考研数二第十八讲 定积分的实际应用之求解旋转体积切面面积

    定积分的实际应用 1 求一段曲线与x 轴和任一直线 曲线围成的图形和极坐标下曲线围成的图形面积 求一块平面区域的面积 1 x 型区域 y 型区域介绍 极坐标 求一段曲线绕 x 轴 y轴和任一直线旋转得所得旋转体的体积 旋转曲面的表面积 设在
  • 李彦宏传

    以下内容摘自 李彦宏传 李彦宏 1968年出生山西省阳泉市的一个工人家庭 上面有三个姐姐 学霸类型 喜欢下棋 曲艺 文科功底深厚 理科也强 高二参加山西省计算机编程大赛 获取第二名 李彦宏父亲从小受过私塾教育 熟读四书五经 大姐考上大学 三
  • 【3D卡片切换】基于jquery实现3D堆叠卡片切换效果(附完整源码)

    文章目录 写在前面 涉及知识点 实现效果 1 搭建页面 1 1 创建ul li节点 1 2 丰富元素 Html代码所示 CSS代码所示 2 JS实现堆叠切换 3 源码分享 3 1 百度网盘 3 2 123云盘 3 3 邮箱留言 总结 写在前