JavaScript、Vue实现大数据大屏展示3D旋转动画效果

这篇具有很好参考价值的文章主要介绍了JavaScript、Vue实现大数据大屏展示3D旋转动画效果。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

效果

最近在写一些数据大屏的时候客户需要做个3D旋转动效的效果,简单整理之后写了一个小demo做下记录,先看一下效果:
JavaScript、Vue实现大数据大屏展示3D旋转动画效果
当点击next的时候,整个模块旋转切换到下个菜单,点击prev的时候也可以切换到上一个菜单效果。

开始编写

  1. 首先我们先构建一个大体的dom结构,如下:
    JavaScript、Vue实现大数据大屏展示3D旋转动画效果
  2. 编写基本的css样式,
//设置整个模块的大小,以及3D 元素距视图的距离
 .carousel {
            width: 100%;
            height: 600px;
            perspective: 500px;
            overflow: hidden;
            display: flex;
            flex-direction: column;
            align-items: center;
        }
 .carousel figure {
            margin: 0;
            width: 420px;
            transform-style: preserve-3d;
            transition: transform 0.5s;
        }
        
        .carouselItem {
            width: 100%;
            height: 500px;
            box-sizing: border-box;
            cursor: pointer;
            -webkit-box-reflect: below 20px -webkit-linear-gradient(top, rgba(0, 0, 0, 0) 40%, rgba(0, 0, 0, .5) 100%);
        }
        
        .itemContent {
            width: 100%;
            height: 100%;
            border: 1px solid rgba(0, 180, 220, 0.5);
            box-shadow: 0 0 4vw rgba(9, 46, 148, .3) inset;
            background: linear-gradient(180deg, rgba(9, 46, 148, 0.6), rgba(9, 46, 148, 0.3), rgba(9, 46, 148, 0.3), rgba(9, 46, 148, 0.6));
            border-radius: 4px;
            font-size: 4rem;
            font-weight: bolder;
            color: white;
            display: flex;
            align-items: center;
            justify-content: center;
            position: relative;
        }
        
        .carouselItem:not(:first-of-type) {
            position: absolute;
            left: 0;
            top: 0;
        }
  1. 重点的jq部分,代码如下:
  var figure = $("figure"),
            nav = $("nav"),
            items = $(".carouselItem"),
            n = items.length,
            theta = 2 * Math.PI / n,
            currImage = 0;
        setUpCarousel(n, items.width());

首先我们先获取所有需要的元素,以及设计初始值,并实现setUpCarousel方法

function setUpCarousel(n, s) {
            var apothem = s / (2 * Math.tan(Math.PI / n));
            figure.css('transformOrigin', '50% 50% ' + -apothem + 'px');
            items.css("padding", "40px " + $(".carousel").attr("data-gap") + "px 0");
            for (var i = 1; i < n; i++) {
                items.eq(i).css({
                    'transformOrigin': '50% 50% ' + -apothem + 'px',
                    'transform': 'rotateY(' + i * theta + 'rad)',
                });
            }
            rotateCarousel(currImage);
        }

其中我们通过获取所有的子元素,然后进行计算得出每个子元素需要占用多大的弧度位置,同时我们给父级修改其中心点位,通过获取子元素上面设置data-gap的值设置为padding值,之后给每个子元素都设置rotateY值,之后实现rotateCarousel方法.以及点击前进后退的方法,

 function rotateCarousel(index) {
            figure.css({
                "transform": "rotateX(0deg) rotateY(" + index * -theta + "rad)"
            });
        }
        $(".prev").click(() => {
            currImage--;
            rotateCarousel(currImage);
        })
        $(".next").click(() => {
            currImage++;
            rotateCarousel(currImage);
        })

我们直接修改父级的视角rotateY()即可.

下面补充自动旋转的效果代码:

 var xdeg = 0;
 setInterval(function() {
     xdeg = xdeg + 0.3;
     $('figure').css('transform', "rotateY(" + -xdeg + "deg)");
 }, 20);

附上全部脚本代码,欢迎批评指正.
JavaScript、Vue实现大数据大屏展示3D旋转动画效果文章来源地址https://www.toymoban.com/news/detail-514906.html

到了这里,关于JavaScript、Vue实现大数据大屏展示3D旋转动画效果的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Vue常用的组件库大全【前端工程师必备】【实时更新】【移动端、PC端(web端)、数据可视化组件库(数据大屏) 、动画组件库、文本编辑器,富文本Markdown,3D组件库】

    1)Vant ui 🔸有赞移动 UI 组件库,支持 Vue2/3 微信小程序,支付宝小程序 https://vant-contrib.gitee.io/vant/v2/#/zh-CN/col Vant 是由有赞前端团队开发的一套基于 Vue.js 的移动端 UI 组件库,它包含了丰富的组件和功能,可以帮助开发者快速构建高质量的移动应用。Vant 以简洁易用和高质量

    2024年02月07日
    浏览(55)
  • 利用微信小程序新动画API之this.animate()实现3D旋转

    从微信小程序基础库 2.9.0 开始支持一种更友好的动画创建方式,用于代替旧的 wx.createAnimation 。它具有更好的性能和更可控的接口。 在页面或自定义组件中,当需要进行关键帧动画时,可以使用 this.animate 接口(官方API文档链接地址:https://developers.weixin.qq.com/miniprogram/dev/fr

    2023年04月08日
    浏览(61)
  • JavaScript实现背景图像切换3D动画效果

    🐱 个人主页: 不叫猫先生 🙋‍♂️ 作者简介:2022年度博客之星前端领域TOP 2,前端领域优质作者、阿里云专家博主,专注于前端各领域技术,共同学习共同进步,一起加油呀! 💫优质专栏:vue3从入门到精通、TypeScript从入门到实践 📢 资料领取:前端进阶资料以及文中源

    2023年04月20日
    浏览(55)
  • Unity 3d角色展示脚本(旋转 平移 缩放)展示界面

    不考虑性能 很简陋的一个功能,主要是用于角色渲染的观察用,比simplecontroller要好用一点

    2024年02月11日
    浏览(56)
  • 【CSS动画02--卡片旋转3D】

    css动画02--旋转卡片3D 当鼠标移动到中间的卡片上会有随着中间的Y轴进行360°的旋转,以下是几张图片的介绍,上面是鄙人自己录得一个供大家参考的小视频🤭

    2024年02月12日
    浏览(44)
  • 农业管理3d可视化管理大屏展示为乡村新基建加速

    随着科技的不断发展,智慧农业已经成为当今社会农业发展的一个重要趋势。而数字孪生技术作为一种新兴的技术手段,正在逐渐应用到智慧农业领域中。 数字孪生公司深圳华锐视点基于数字孪生为核心技术打造的智慧大脑为乡村新基建加速,让乡村更“聪明”,通过规划一

    2024年02月15日
    浏览(47)
  • vue2+vue-3d-loader 实现3D模型展示

    1.安装 vue-3d-loader npm i vue-3d-loader@1.x.x -S  注意vue2只能用1.几的版本 npm i vue-3d-loader会安装最新版本会导致不显示 2.main.js文件配置,此为全局注册 import vue3dLoader from \\\"vue-3d-loader\\\"; Vue.use(vue3dLoader) 3.具体使用 template   vue3dLoader     backgroundColor=\\\"rgb(216,217,219)\\\"     :height=\\\"600\\\"    

    2024年02月02日
    浏览(50)
  • VUE 实现 3D词云 旋转词云效果

     效果视频: 3D词云

    2024年02月05日
    浏览(43)
  • 前端3D卡片轮播动画旋转小案例

            这个前端3D卡片轮播动画旋转小案例是一个基于 CSS3 和 JavaScript 实现的交互效果,可以让用户在网页上浏览一组卡片,并通过鼠标或手指滑动来切换卡片。每个卡片都有一个独特的3D旋转效果,可以让用户感受到卡片的立体感和动态效果。         该案例的实现思路

    2024年02月11日
    浏览(39)
  • VUE3+ThreeJs实现3D全景场景,可自由旋转视角

    three.js是一个用于在Web上创建三维图形的JavaScript库。它可以用于创建各种类型的三维场景,包括游戏、虚拟现实、建筑和产品可视化等。three.js提供了许多功能和特性,包括3D渲染、光照、材质、几何形状、动画、交互和相机控制等。使用three.js,开发人员可以轻松地创建复杂

    2024年02月11日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包