jQuery实现炫丽的3d旋转星空效果


Posted in jQuery onJuly 04, 2018

本文实例讲述了jQuery实现炫丽的3d旋转星空效果。分享给大家供大家参考,具体如下:

该特效也是在Jquery插件库中找到的,感觉效果不错,说不定以后项目中要有绚丽的星空背景,拿来即用,收藏了下。

下载解压后的目录结构

jQuery实现炫丽的3d旋转星空效果

index.html页面代码:

<!doctype html>
<html lang="zh">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>jQuery和CSS3超绚丽的3D星空动画特效</title>
  <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
  <style class="cp-pen-styles">body {
   background: radial-gradient(200% 100% at bottom center, #0070aa, #0b2570, #000035, #000);
   background: radial-gradient(220% 105% at top center, #000 10%, #000035 40%, #0b2570 65%, #0070aa);
   background-attachment: fixed;
   overflow: hidden;
  }
  @keyframes rotate {
   0% {
    transform: perspective(400px) rotateZ(20deg) rotateX(-40deg) rotateY(0);
   }
   100% {
    transform: perspective(400px) rotateZ(20deg) rotateX(-40deg) rotateY(-360deg);
   }
  }
  .stars {
   transform: perspective(500px);
   transform-style: preserve-3d;
   position: absolute;
   bottom: 0;
   perspective-origin: 50% 100%;
   left: 50%;
   animation: rotate 90s infinite linear;
  }
  .star {
   width: 2px;
   height: 2px;
   background: #F7F7B6;
   position: absolute;
   top: 0;
   left: 0;
   transform-origin: 0 0 -300px;
   transform: translate3d(0, 0, -300px);
   backface-visibility: hidden;
  }
  </style>
</head>
<body>
  <div class="stars">
  </div>
  <script src='js/stopExecutionOnTimeout.js'></script>
  <script>
  $(document).ready(function () {
    var stars = 800;
    var $stars = $('.stars');
    var r = 800;
    for (var i = 0; i < stars; i++) {
      if (window.CP.shouldStopExecution(1)) {
        break;
      }
      var $star = $('<div/>').addClass('star');
      $stars.append($star);
    }
    window.CP.exitedLoop(1);
    $('.star').each(function () {
      var cur = $(this);
      var s = 0.2 + Math.random() * 1;
      var curR = r + Math.random() * 300;
      cur.css({
        transformOrigin: '0 0 ' + curR + 'px',
        transform: ' translate3d(0,0,-' + curR + 'px) rotateY(' + Math.random() * 360 + 'deg) rotateX(' + Math.random() * -50 + 'deg) scale(' + s + ',' + s + ')'
      });
    });
  });
  </script>
</body>
</html>

运行的效果如下:

jQuery实现炫丽的3d旋转星空效果

其中stopExecutionOnTimeout.js如下:

"use strict";"object"!=typeof window.CP&&(window.CP={}),window.CP.PenTimer={programNoLongerBeingMonitored:!1,timeOfFirstCallToShouldStopLoop:0,_loopExits:{},_loopTimers:{},START_MONITORING_AFTER:2e3,STOP_ALL_MONITORING_TIMEOUT:5e3,MAX_TIME_IN_LOOP_WO_EXIT:2200,exitedLoop:function(o){this._loopExits[o]=!0},shouldStopLoop:function(o){if(this.programKilledSoStopMonitoring)return!0;if(this.programNoLongerBeingMonitored)return!1;if(this._loopExits[o])return!1;var t=this._getTime();if(0===this.timeOfFirstCallToShouldStopLoop)return this.timeOfFirstCallToShouldStopLoop=t,!1;var i=t-this.timeOfFirstCallToShouldStopLoop;if(i<this.START_MONITORING_AFTER)return!1;if(i>this.STOP_ALL_MONITORING_TIMEOUT)return this.programNoLongerBeingMonitored=!0,!1;try{this._checkOnInfiniteLoop(o,t)}catch(n){return this._sendErrorMessageToEditor(),this.programKilledSoStopMonitoring=!0,!0}return!1},_sendErrorMessageToEditor:function(){try{if(this._shouldPostMessage()){var o={action:"infinite-loop",line:this._findAroundLineNumber()};parent.postMessage(JSON.stringify(o),"*")}else this._throwAnErrorToStopPen()}catch(t){this._throwAnErrorToStopPen()}},_shouldPostMessage:function(){return document.location.href.match(/boomerang/)},_throwAnErrorToStopPen:function(){throw"We found an infinite loop in your Pen. We've stopped the Pen from running. Please correct it or contact support@codepen.io."},_findAroundLineNumber:function(){var o=new Error,t=0;if(o.stack){var i=o.stack.match(/boomerang\S+:(\d+):\d+/);i&&(t=i[1])}return t},_checkOnInfiniteLoop:function(o,t){if(!this._loopTimers[o])return this._loopTimers[o]=t,!1;var i=t-this._loopTimers[o];if(i>this.MAX_TIME_IN_LOOP_WO_EXIT)throw"Infinite Loop found on loop: "+o},_getTime:function(){return+new Date}},window.CP.shouldStopExecution=function(o){return window.CP.PenTimer.shouldStopLoop(o)},window.CP.exitedLoop=function(o){window.CP.PenTimer.exitedLoop(o)};

效果还是挺不错的,你可以改变背景颜色等等定制。

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

jQuery 相关文章推荐
jQuery插件HighCharts绘制简单2D柱状图效果示例【附demo源码】
Mar 21 jQuery
jquery中$.fn和图片滚动效果实现的必备知识总结
Apr 21 jQuery
jQuery异步提交表单实例
May 30 jQuery
jQuery获取table表中的td标签(实例讲解)
Jul 28 jQuery
jQuery的时间datetime控件在AngularJs中的使用实例(分享)
Aug 17 jQuery
基于jquery的on和click的区别详解
Jan 15 jQuery
vue.js2.0点击获取自己的属性和jquery方法
Feb 23 jQuery
jQuery滑动效果实现方法分析
Sep 05 jQuery
jquery validate 实现动态增加/删除验证规则操作示例
Oct 28 jQuery
Jquery+AJAX实现无刷新上传并重命名文件操作示例【PHP后台接收】
May 29 jQuery
jquery实现上传图片功能
Jun 29 jQuery
jQuery实现图片切换效果
Oct 19 jQuery
jQuery实现table表格checkbox全选的方法分析
Jul 04 #jQuery
jQuery实现表单动态添加与删除数据操作示例
Jul 03 #jQuery
jQuery实现获取form表单内容及绑定数据到form表单操作分析
Jul 03 #jQuery
jQuery阻止事件冒泡实例分析
Jul 03 #jQuery
jQuery实现模糊搜索功能的方法分析
Jun 29 #jQuery
jQuery实现获取动态添加的标签对象示例
Jun 28 #jQuery
jQuery实现获取选中复选框的值实例详解
Jun 28 #jQuery
You might like
PHP在同一域名下两个不同的项目做独立登录机制详解
2017/09/22 PHP
Laravel 不同生产环境服务器的判断实践
2019/10/15 PHP
PhpStorm 2020.3:新增开箱即用的PHP 8属性(推荐)
2020/10/30 PHP
用htc组件制作windows选项卡
2007/01/13 Javascript
Prototype 学习 工具函数学习($方法)
2009/07/12 Javascript
Textbox控件注册回车事件及触发按钮提交事件具体实现
2013/03/04 Javascript
关于JQuery($.load)事件的用法和分析
2013/04/09 Javascript
js获取视频时长代码
2014/04/10 Javascript
jQuery中parent()方法用法实例
2015/01/07 Javascript
逐一介绍Jquery data()、Jquery stop()、jquery delay()函数(详)
2015/11/04 Javascript
使用jquery实现鼠标滑过弹出更多相关信息层附源码下载
2015/11/23 Javascript
在Linux系统中搭建Node.js开发环境的简单步骤讲解
2016/01/26 Javascript
js实现的简单图片浮动效果完整实例
2016/05/10 Javascript
详解Vue 事件驱动和依赖追踪
2017/04/22 Javascript
node.js 中间件express-session使用详解
2017/05/20 Javascript
详解Angular的8个主要构造块
2017/06/20 Javascript
JS基于贪心算法解决背包问题示例
2017/11/27 Javascript
微信小程序遍历Echarts图表实现多个饼图
2019/04/25 Javascript
vue 项目打包时样式及背景图片路径找不到的解决方式
2019/11/12 Javascript
微信小程序实现星星评分效果
2020/11/01 Javascript
Python标准库之Sys模块使用详解
2015/05/23 Python
python中的全局变量用法分析
2015/06/09 Python
django+js+ajax实现刷新页面的方法
2017/05/22 Python
python paramiko利用sftp上传目录到远程的实例
2019/01/03 Python
python制作填词游戏步骤详解
2019/05/05 Python
解决pycharm导入本地py文件时,模块下方出现红色波浪线的问题
2020/06/01 Python
收集的7个CSS3代码生成工具
2010/04/17 HTML / CSS
Linux常见面试题
2016/10/04 面试题
广告学专业毕业生自荐信
2013/09/24 职场文书
致铅球运动员加油稿
2014/02/13 职场文书
聚美优品恶搞广告词
2014/03/14 职场文书
2014年国庆节演讲稿
2014/09/19 职场文书
学校食堂管理制度
2015/08/04 职场文书
python not运算符的实例用法
2021/06/30 Python
剖析后OpLog订阅MongoDB的数据变更就没那么难了
2022/02/24 MongoDB
python创建字典及相关管理操作
2022/04/13 Python