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实现定时刷新功能代码
May 09 jQuery
jQuery Validate 校验多个相同name的方法
May 18 jQuery
最常用的jQuery表单验证(简单)
May 23 jQuery
jquery DataTable实现前后台动态分页
Jun 17 jQuery
jQuery列表检索功能实现代码
Jul 17 jQuery
javaScript和jQuery自动加载简单代码实现方法
Nov 24 jQuery
jQuery+SpringMVC中的复选框选择与传值实例
Jan 08 jQuery
jQuery滚动条美化插件nicescroll简单用法示例
Apr 18 jQuery
jQuery+Datatables实现表格批量删除功能【推荐】
Oct 24 jQuery
浅谈JS和jQuery的区别
Mar 27 jQuery
jquery ajax 请求小技巧实例分析
Nov 11 jQuery
jQuery treeview树形结构应用
Mar 24 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不用递归实现无限分级的例子分享
2014/04/18 PHP
详谈PHP编码转换问题
2015/07/28 PHP
用js判断用户浏览器是否是XP SP2的IE6
2007/03/08 Javascript
最新28个很棒的jQuery 教程
2011/05/28 Javascript
Javascript基础 函数“重载” 详细介绍
2013/10/25 Javascript
javascript获取web应用根目录的方法
2014/02/12 Javascript
node.js中的buffer.write方法使用说明
2014/12/10 Javascript
使用原生JS实现弹出层特效
2014/12/22 Javascript
提交按钮的name='submit'引起的js失效问题及原因
2015/02/25 Javascript
原生JS实现LOADING效果
2015/03/16 Javascript
学习Bootstrap组件之下拉菜单
2015/07/28 Javascript
jquery实现适用于门户站的导航下拉菜单效果代码
2015/08/24 Javascript
动态加载js、css的实例代码
2016/05/26 Javascript
内容滑动切换效果jquery.hwSlide.js插件封装
2016/07/07 Javascript
jQuery实现底部浮动窗口效果
2016/09/07 Javascript
详解nodejs 文本操作模块-fs模块(五)
2016/12/23 NodeJs
node.js爬虫爬取拉勾网职位信息
2017/03/14 Javascript
jQuery Masonry瀑布流布局神器使用详解
2017/05/25 jQuery
Node.JS段点续传:Nginx配置文件分段下载功能的实现方法
2018/03/12 Javascript
Node.js安装详细步骤教程(Windows版)详解
2019/09/01 Javascript
layui table复选框禁止某几条勾选的实例
2019/09/20 Javascript
js页面加载后执行的几种方式小结
2020/01/30 Javascript
Vue实现图书管理小案例
2020/12/03 Vue.js
javascript实现时钟动画
2020/12/03 Javascript
[01:08:32]DOTA2-DPC中国联赛 正赛 DLG vs PHOENIX BO3 第二场 1月18日
2021/03/11 DOTA
Python中用sleep()方法操作时间的教程
2015/05/22 Python
使用Kivy将python程序打包为apk文件
2017/07/29 Python
Python实现求笛卡尔乘积的方法
2017/09/16 Python
python绘制条形图方法代码详解
2017/12/19 Python
opencv python 基于KNN的手写体识别的实例
2018/08/03 Python
Django web自定义通用权限控制实现方法
2020/11/24 Python
仪器仪表检测毕业生自荐信
2013/10/31 职场文书
四川省传达学习贯彻党的群众路线教育实践活动总结大会精神新闻稿
2014/10/26 职场文书
期末考试复习计划
2015/01/19 职场文书
千与千寻观后感
2015/06/04 职场文书
Vue.js 带下拉选项的输入框(Textbox with Dropdown)组件
2021/04/17 Vue.js