guhongwei 4 年 前
コミット
4033b2d11a
88 ファイル変更3203 行追加29 行削除
  1. 550 0
      public/home.html
  2. 251 0
      public/static/home/css/index.css
  3. 111 0
      public/static/home/css/lib.css
  4. 146 0
      public/static/home/css/road.css
  5. BIN
      public/static/home/images/bg_1.jpg
  6. BIN
      public/static/home/images/fn_1.png
  7. BIN
      public/static/home/images/fn_1_h.png
  8. BIN
      public/static/home/images/fn_2.png
  9. BIN
      public/static/home/images/fn_2_h.png
  10. BIN
      public/static/home/images/fn_3.png
  11. BIN
      public/static/home/images/fn_3_h.png
  12. BIN
      public/static/home/images/fn_4.png
  13. BIN
      public/static/home/images/fn_4_h.png
  14. BIN
      public/static/home/images/fn_5.png
  15. BIN
      public/static/home/images/fn_5_h.png
  16. BIN
      public/static/home/images/footer_bg.png
  17. BIN
      public/static/home/images/index-head.png
  18. BIN
      public/static/home/images/line.png
  19. BIN
      public/static/home/images/login-color.png
  20. BIN
      public/static/home/images/login_bg_1.png
  21. BIN
      public/static/home/images/logo.png
  22. BIN
      public/static/home/images/sci.gif
  23. BIN
      public/static/home/images/登录.png
  24. 5 0
      public/static/home/js/stats.min.js
  25. 927 0
      public/static/home/js/three.min.js
  26. 5 0
      public/static/home/lib/jquery/jquery-2.1.1.min.js
  27. 2 0
      public/static/home/lib/layui/css/layui.css
  28. 2 0
      public/static/home/lib/layui/css/layui.mobile.css
  29. 2 0
      public/static/home/lib/layui/css/modules/code.css
  30. BIN
      public/static/home/lib/layui/css/modules/layer/default/icon-ext.png
  31. BIN
      public/static/home/lib/layui/css/modules/layer/default/icon.png
  32. 2 0
      public/static/home/lib/layui/css/modules/layer/default/layer.css
  33. BIN
      public/static/home/lib/layui/css/modules/layer/default/loading-0.gif
  34. BIN
      public/static/home/lib/layui/css/modules/layer/default/loading-1.gif
  35. BIN
      public/static/home/lib/layui/css/modules/layer/default/loading-2.gif
  36. 2 0
      public/static/home/lib/layui/lay/modules/carousel.js
  37. 2 0
      public/static/home/lib/layui/lay/modules/code.js
  38. 2 0
      public/static/home/lib/layui/lay/modules/element.js
  39. 2 0
      public/static/home/lib/layui/lay/modules/flow.js
  40. 2 0
      public/static/home/lib/layui/lay/modules/form.js
  41. 5 0
      public/static/home/lib/layui/lay/modules/jquery.js
  42. 2 0
      public/static/home/lib/layui/lay/modules/layedit.js
  43. 2 0
      public/static/home/lib/layui/lay/modules/layer.js
  44. 2 0
      public/static/home/lib/layui/lay/modules/laypage.js
  45. 2 0
      public/static/home/lib/layui/lay/modules/laytpl.js
  46. 2 0
      public/static/home/lib/layui/lay/modules/mobile.js
  47. 2 0
      public/static/home/lib/layui/lay/modules/tree.js
  48. 2 0
      public/static/home/lib/layui/lay/modules/upload.js
  49. 2 0
      public/static/home/lib/layui/lay/modules/util.js
  50. 2 0
      public/static/home/lib/layui/layui.all.js
  51. BIN
      public/static/images/06.gif
  52. BIN
      public/static/images/1.jpg
  53. BIN
      public/static/images/batb.png
  54. BIN
      public/static/images/beijing.jpg
  55. BIN
      public/static/images/bg.jpg
  56. BIN
      public/static/images/bg2.png
  57. BIN
      public/static/images/bg_shop (1).png
  58. BIN
      public/static/images/bg_shop.png
  59. BIN
      public/static/images/fuchuang.jpg
  60. BIN
      public/static/images/logo.png
  61. BIN
      public/static/images/logo20.png
  62. BIN
      public/static/images/logostbrain.png
  63. BIN
      public/static/images/main1.png
  64. BIN
      public/static/images/main2.png
  65. BIN
      public/static/images/mubu_1.jpg
  66. BIN
      public/static/images/mubu_1_s.jpg
  67. BIN
      public/static/images/mubu_2.png
  68. BIN
      public/static/images/mubu_2_s.png
  69. BIN
      public/static/images/mubu_3_s.png
  70. BIN
      public/static/images/mubu_left.jpg
  71. BIN
      public/static/images/mubu_left_s.jpg
  72. BIN
      public/static/images/mubu_right.jpg
  73. BIN
      public/static/images/mubu_right_s.jpg
  74. BIN
      public/static/images/mubu_yh_1.png
  75. BIN
      public/static/images/mubu_yh_2.png
  76. BIN
      public/static/images/nyear-wwwa5.png
  77. BIN
      public/static/images/people.png
  78. BIN
      public/static/images/timg.jpg
  79. BIN
      public/static/images/top_3.png
  80. BIN
      public/static/images/top_bg.png
  81. BIN
      public/static/images/zwfwlogo.png
  82. BIN
      public/static/images/测试图片.jpg
  83. 1114 0
      public/static/js/flowplayer-3.2.13.min.js
  84. 2 0
      public/static/js/jquery-1.8.3.min.js
  85. 11 0
      public/static/js/particles.min.js
  86. 32 0
      public/static/js/tabs.js
  87. 7 28
      src/views/index.vue
  88. 1 1
      src/views/live/parts/trainLive.vue

+ 550 - 0
public/home.html

@@ -0,0 +1,550 @@
+<!DOCTYPE html>
+<html>
+
+<head>
+  <meta charset="utf-8">
+  <title>中科在线(长春)</title>
+  <!-- layui -->
+  <link rel="stylesheet" href="static/home/lib/layui/css/layui.css">
+  <link rel="stylesheet" href="static/home/css/lib.css">
+  <link rel="stylesheet" href="static/home/css/road.css">
+  <link rel="stylesheet" href="static/home/css/index.css">
+  <style>
+    .canvas-stats {
+      display: none;
+    }
+    #a{
+      position: absolute;
+      bottom: -20px;
+      color: #fff;
+      right: 0;
+    }
+    #a:hover{
+      cursor: pointer;
+    }
+    .floating{
+      width: 350px;
+      height: 150px;
+      background-image: url(./static/images/fuchuang.jpg);
+      background-repeat: no-repeat;
+      background-size: 100%;
+    }
+    .floatingInfo{
+      color: #F6FE6A;
+      text-align: center;
+      height: 150px;
+      padding: 10px 0;
+      font-size: 30px;
+      font-family: cursive;
+      text-shadow: 5px 5px 5px #000;
+    }
+    .floatingInfo:hover{
+      cursor: pointer;
+      color: #76bdfe;
+    }
+    .floatingInfoSpan{
+      height: 150px;
+      padding: 10px 0;
+      text-shadow: 5px 5px 5px #000;
+    }
+    .floatingInfoSpan span {
+      font-size: 16px;
+      color: #fff;
+      display: inline-block;
+      width: 100%;
+      padding: 3px 10px;
+    }
+
+     .floatingInfoSpan span:hover{
+      cursor: pointer;
+      color: #76bdfe;
+    }
+  </style>
+</head>
+
+<body>
+  <div class="header">
+   <div class='left'>
+      <img class='image' src="static/images/logo.png" alt="">
+      <p class='title'>中科在线(长春)</p>
+   </div>
+   <div class='right'>
+      <button onclick="window.open('http://broadcast.waityou24.cn/live/login')">平台登录</button>
+      <button onclick="window.open('http://broadcast.waityou24.cn/liveadmin/login')">管理登录</button>
+   </div>
+  </div>
+  <img class="sci-wheel" src="static/home/images/sci.gif" alt="">
+  <!-- 导航 -->
+  <div class="center">
+    <a class="list fn_1 moveUpDownFla1"  href="/live/market/index">
+      <p>科技超市</p>
+    </a>
+    <a class="list fn_2 moveUpDownFla2"  href="/live/live/index">
+      <p>直播大厅</p>
+    </a>
+    <a class="list fn_3 moveUpDownFla1"  href="/live/dynamic/index">
+      <p>数据动态</p>
+    </a>
+    <a class="list fn_4 moveUpDownFla2"  href="/live/news/service">
+      <p>新闻资讯</p>
+    </a>
+    <a class="list fn_5 moveUpDownFla2"  href="/live/techolchat/index">
+      <p>技术交流</p>
+    </a>
+  </div>
+  <!-- 浮窗 -->
+  <div id="floatingDiv" style="position:absolute;left:50px;top:60px;z-index: 9999;">
+    <div id="a" onClick="javascript:this.parentNode.style.display='none';">关闭窗口</div>
+    <div class='floating' onclick="noticeBtn()">
+      <!-- <p id="floatingid" class='floatingInfo'></p> -->
+      <p class='floatingInfoSpan'>
+        <span>网站联系人:顾红伟</span>
+        <span>联系电话:</span>
+        <span>17319450324</span>
+        <span>微信号:</span>
+        <span>guhongwei324</span>
+      </p>
+    </div>
+  </div>
+  <!--流星-->
+  <div class="liuxing liuxing1 liuxingFla"></div>
+  <div class="liuxing liuxing2 liuxingFla2"></div>
+  <div class="liuxing liuxing3 liuxingFla3"></div>
+  <div class="liuxing liuxing4 liuxingFla4"></div>
+  <div id="canvas-container-1" class="canvas-container">
+    <canvas id="canvas-1"></canvas>
+  </div>
+  <script src="static/home/js/stats.min.js"></script>
+  <script src="static/home/js/three.min.js"></script>
+  <script src="static/js/jquery-1.8.3.min.js"></script>
+  <script>
+    window.onload = function () {
+      $.ajax({
+        url:'/api/market/notice?isenable=1',
+        type:"GET",
+        contentType:'application/json',
+        success:function(res){
+          // console.log(res);
+          if(res.errcode =='0') {
+            if(res.data.length>0) {
+              var head = res.data[0];
+              $('#floatingid').text(head.title)
+            } 
+          }
+        },
+        error:function (e) {
+          console.error(e)
+        }
+      })
+    }
+    function ThreeJSCanvas(CANVAS_ID) {
+
+      var SCREEN_HEIGHT = Math.min(window.innerWidth, window.innerHeight);
+      var SCREEN_WIDTH = SCREEN_HEIGHT;
+      var SCREEN_ASPECT_RATIO = SCREEN_WIDTH / SCREEN_HEIGHT;
+      var canvas, container;
+
+      var container, loader, stats;
+      var renderer, camera, scene;
+      var raycaster, controls;
+
+      var ANIMATION_FRAME_LENGTH = 30,
+        INTERACT_DISTANCE = 2.5;
+      var objetArray = [],
+        animationQueue = [];
+
+      var color1 = [0 / 255, 110 / 255, 255 / 255],
+        color2 = [0 / 255, 255 / 255, 140 / 255];
+
+      var bitmap = [];
+      var BITMAP_SKIP = 1;
+
+      var fov = 90;
+      var cameraPos = [0, 0, 30];
+      var cameraLookAt = [0, 0, 0];
+      var viewHeight = 2 * Math.tan(THREE.Math.degToRad(fov / 2)) * cameraPos[2],
+        viewWidth = viewHeight * SCREEN_ASPECT_RATIO;
+      var mouse = new THREE.Vector3(10000, 10000, -1),
+        mouseScaled = new THREE.Vector3(10000, 10000, -1);
+
+      var frame = 0;
+
+      function init() {
+
+        // Global Variables
+        container = document.getElementById("canvas-container-" + CANVAS_ID);
+        canvas = document.getElementById("canvas-" + CANVAS_ID);
+        canvas.addEventListener('mousemove', onDocumentMouseMove, false);
+
+        loader = new THREE.JSONLoader();
+        stats = new Stats();
+        stats.domElement.classList.add("canvas-stats");
+        stats.domElement.id = "canvas-stats-" + CANVAS_ID;
+
+        /* If you are familiar with python and opencv
+           you can use this python script to generate custom bitmaps 
+           --------------------
+           https://git.io/vdBAu 
+           --------------------
+        */
+        var data = '#000000000000000000011110000000000000000000' +
+          '#000000000000000011111111110000000000000000' +
+          '#000000000000001111111111111100000000000000' +
+          '#000000000000011111111111111110000000000000' +
+          '#000000000000111111111111111111000000000000' +
+          '#000000000001111111111111111111100000000000' +
+          '#000000000011111111111111111111110000000000' +
+          '#000000000011111111111111111111110000000000' +
+          '#000000000111111111111111111111111000000000' +
+          '#000000000111111111111111111111111000000000' +
+          '#000000001111111111111111111111111100000000' +
+          '#000000001111111111111111111111111100000000' +
+          '#000000001111111111111111111111111100000000' +
+          '#000000001111111111111111111111111100000000' +
+          '#000000001111111111111111111111111100000000' +
+          '#000000000111111111111111111111111000000000' +
+          '#000000000111111111111111111111111000000000' +
+          '#000000000111111111111111111111111000000000' +
+          '#000000000011111111111111111111110000000000' +
+          '#000000000011111111111111111111110000000000' +
+          '#000000000001111111111111111111100000000000' +
+          '#000000000001111111111111111111100000000000' +
+          '#000000000000111111111111111111000000000000' +
+          '#000000000000111111111111111110000000000000' +
+          '#000000000000011111111111111110000000000000' +
+          '#000000000000001111111111111100000000000000' +
+          '#000000000000001111111111111100000000000000' +
+          '#000000000000001111111111111000000000000000' +
+          '#000000000000000111111111111000000000000000' +
+          '#000000000000000111111111111000000000000000' +
+          '#000000000000000111111111111000000000000000' +
+          '#000000000000000111111111111000000000000000' +
+          '#000000000000000011111111110000000000000000' +
+          '#000000000000000010000000010000000000000000' +
+          '#000000000000000011111111110000000000000000' +
+          '#000000000000000010000000010000000000000000' +
+          '#000000000000000011111111110000000000000000' +
+          '#000000000000000010000000010000000000000000' +
+          '#000000000000000011111111110000000000000000' +
+          '#000000000000000000100001000000000000000000' +
+          '#000000000000000000110011000000000000000000' +
+          '#000000000000000000011110000000000000000000';
+
+        for (var i = 0; i < data.length; i++) {
+          if (data[i] == '#') {
+            bitmap.push([]);
+          } else {
+            bitmap[bitmap.length - 1].push(data[i] - '0');
+          }
+        }
+
+        container.appendChild(stats.domElement);
+
+        // Renderer
+        renderer = new THREE.WebGLRenderer({
+          alpha: true,
+          antialias: true,
+          canvas: canvas,
+        });
+        renderer.setClearColor(0x212121, 0);
+        renderer.setPixelRatio(window.devicePixelRatio);
+        renderer.shadowMap.enabled = true;
+        renderer.shadowMap.type = THREE.PCFSoftShadowMap;
+        renderer.setSize(SCREEN_WIDTH, SCREEN_HEIGHT);
+
+        // Camera and Controls
+        camera = new THREE.PerspectiveCamera(fov, SCREEN_ASPECT_RATIO, 0.1, 1000);
+        // camera = new THREE.OrthographicCamera(-viewWidth, viewWidth, viewHeight, -viewHeight, 1, 300);
+        camera.position.set(cameraPos[0], cameraPos[1], cameraPos[2]);
+        camera.lookAt(new THREE.Vector3(cameraLookAt[0], cameraLookAt[1], cameraLookAt[2]));
+        raycaster = new THREE.Raycaster();
+
+        // controls = new THREE.OrbitControls(camera);
+        // controls.rotateSpeed = 2.0;
+        // controls.zoomSpeed = 2.0;
+        // controls.enableZoom = true;
+        // controls.enablePan = true;
+        // controls.dampingFactor = 0.2;
+        // controls.addEventListener('change', render);
+
+        //Scene
+        scene = new THREE.Scene();
+
+
+        //Lights
+
+        // Making Object Array
+        var xOffset = -bitmap[0].length / (BITMAP_SKIP * 2);
+        var yOffset = bitmap.length / (BITMAP_SKIP * 2);
+        for (var i = 0; i < bitmap.length; i += BITMAP_SKIP) {
+          for (var j = 0; j < bitmap[i].length; j += BITMAP_SKIP) {
+            if (bitmap[i][j] == 1) {
+              planeGeometry = new THREE.PlaneGeometry(1, 1);
+              var circleGeometry = new THREE.CircleGeometry(1, 5);
+              var frac = i / bitmap.length;
+              // Materials
+              planeMaterial = new THREE.MeshBasicMaterial({
+                color: new THREE.Color(
+                  color1[0] * frac + color2[0] * (1 - frac),
+                  color1[1] * frac + color2[1] * (1 - frac),
+                  color1[2] * frac + color2[2] * (1 - frac)
+                ),
+                transparent: true,
+                opacity: THREE.Math.randFloat(0.4, 0.6),
+                side: THREE.DoubleSide
+              });
+
+              var circleMaterial = new THREE.MeshBasicMaterial({
+                color: new THREE.Color(1, 1, 1),
+                transparent: true,
+                opacity: THREE.Math.randFloat(0.8, 1),
+                side: THREE.DoubleSide
+              });
+
+              // Mesh
+              planeMesh = new THREE.Mesh(planeGeometry, planeMaterial);
+              planeMesh.position.set(xOffset + j / BITMAP_SKIP, yOffset - i / BITMAP_SKIP, 0);
+              var randWidth = THREE.Math.randFloat(0.6, 1.2);
+              var randHeight = randWidth
+              planeMesh.scale.set(randWidth, randHeight, 1);
+              scene.add(planeMesh);
+              objetArray.push([planeMesh, false]);
+
+
+              circleMesh = new THREE.Mesh(circleGeometry, circleMaterial);
+              circleMesh.position.set(xOffset + j / BITMAP_SKIP + THREE.Math.randFloat(-0.5, 0.5), yOffset - i / BITMAP_SKIP + THREE.Math.randFloat(-0.5, 0.5), 0.1);
+              var randRadius = THREE.Math.randFloat(0.05, 0.1);
+              circleMesh.scale.set(randRadius, randRadius, 1);
+              scene.add(circleMesh);
+              objetArray.push([circleMesh, false]);
+            }
+
+          }
+        }
+
+
+        //Geometry 
+
+        // Materials
+
+
+        // Mesh
+
+
+        // Helpers
+
+        //Add Stuff to Scene
+
+
+      }
+
+      function animate() {
+
+        requestAnimationFrame(animate);
+        render();
+        stats.update();
+        // controls.update();
+        frame++;
+      }
+
+      function render() {
+
+        while (animationQueue.length > 0) {
+          var obj_index = animationQueue[0][0];
+          var ani_frame = animationQueue[0][1];
+          if (ani_frame > ANIMATION_FRAME_LENGTH) {
+            objetArray[obj_index][1] = false;
+            animationQueue.shift();
+          } else {
+            break;
+          }
+        }
+
+        for (var i = 0; i < objetArray.length; i++) {
+          var obj = objetArray[i][0];
+          var isAnimating = objetArray[i][1];
+          if (isAnimating == false) {
+            var px = obj.position.x;
+            var py = obj.position.y;
+            var dist = Math.sqrt(Math.pow(px - mouseScaled.x, 2) + Math.pow(py - mouseScaled.y, 2));
+            if (dist < INTERACT_DISTANCE) {
+              var startPosVector = obj.position.clone();
+              var mouseRepelVector = new THREE.Vector3().subVectors(startPosVector, mouseScaled).multiplyScalar(THREE.Math.randFloat(INTERACT_DISTANCE + 0.5, INTERACT_DISTANCE + 2) - dist);
+              var endPosVector = new THREE.Vector3().addVectors(startPosVector, mouseRepelVector);
+              animationQueue.push([i, 0, startPosVector, endPosVector]);
+              objetArray[i][1] = true;
+            }
+          }
+        }
+
+        for (var i = 0; i < animationQueue.length; i++) {
+          var obj = objetArray[animationQueue[i][0]][0];
+          var ani_frame = animationQueue[i][1];
+          var startPosVector = animationQueue[i][2];
+          var endPosVector = animationQueue[i][3];
+          var curPosVector = new THREE.Vector3();
+          var frac = 1 - Math.abs(ani_frame - (ANIMATION_FRAME_LENGTH / 2)) / (ANIMATION_FRAME_LENGTH / 2);
+          frac = easeOutQuad(frac);
+          curPosVector.lerpVectors(startPosVector, endPosVector, frac);
+
+          obj.position.x = curPosVector.x;
+          obj.position.y = curPosVector.y;
+          obj.position.z = curPosVector.z;
+          animationQueue[i][1] += 1;
+        }
+
+        mouse = new THREE.Vector3(10000, 10000, -2);
+        mouseScaled = new THREE.Vector3(10000, 10000, -2);
+
+        renderer.render(scene, camera);
+      }
+
+      function onWindowResize() {
+        SCREEN_HEIGHT = Math.min(window.innerWidth, window.innerHeight);
+        SCREEN_WIDTH = SCREEN_HEIGHT;
+        SCREEN_ASPECT_RATIO = SCREEN_WIDTH / SCREEN_HEIGHT;
+        camera.aspect = SCREEN_ASPECT_RATIO;
+        camera.updateProjectionMatrix();
+        renderer.setSize(SCREEN_WIDTH, SCREEN_HEIGHT);
+        console.log(SCREEN_WIDTH + "x" + SCREEN_HEIGHT)
+      }
+
+      function onDocumentMouseMove(event) {
+
+        var rect = canvas.getBoundingClientRect();
+
+        mouse.x = event.clientX - rect.left;
+        mouse.y = event.clientY - rect.top;
+
+        mouseScaled.x = mouse.x * viewWidth / SCREEN_WIDTH - viewWidth / 2;
+        mouseScaled.y = -mouse.y * viewHeight / SCREEN_HEIGHT + viewHeight / 2;
+
+      }
+
+      function sigmoid(t) {
+        return 1 / (1 + Math.pow(Math.E, -t));
+      }
+
+      // no easing, no acceleration
+      function linear(t) {
+        return t;
+      }
+      // accelerating from zero velocity
+      function easeInQuad(t) {
+        return t * t;
+      }
+      // decelerating to zero velocity
+      function easeOutQuad(t) {
+        return t * (2 - t);
+      }
+      // acceleration until halfway, then deceleration
+      function easeInOutQuad(t) {
+        return t < .5 ? 2 * t * t : -1 + (4 - 2 * t) * t;
+      }
+      // accelerating from zero velocity 
+      function easeInCubic(t) {
+        return t * t * t;
+      }
+      // decelerating to zero velocity 
+      function easeOutCubic(t) {
+        return (--t) * t * t + 1;
+      }
+      // acceleration until halfway, then deceleration 
+      function easeInOutCubic(t) {
+        return t < .5 ? 4 * t * t * t : (t - 1) * (2 * t - 2) * (2 * t - 2) + 1;
+      }
+      // accelerating from zero velocity 
+      function easeInQuart(t) {
+        return t * t * t * t;
+      }
+      // decelerating to zero velocity 
+      function easeOutQuart(t) {
+        return 1 - (--t) * t * t * t;
+      }
+      // acceleration until halfway, then deceleration
+      function easeInOutQuart(t) {
+        return t < .5 ? 8 * t * t * t * t : 1 - 8 * (--t) * t * t * t;
+      }
+      // accelerating from zero velocity
+      function easeInQuint(t) {
+        return t * t * t * t * t;
+      }
+      // decelerating to zero velocity
+      function easeOutQuint(t) {
+        return 1 + (--t) * t * t * t * t;
+      }
+      // acceleration until halfway, then deceleration 
+      function easeInOutQuint(t) {
+        return t < .5 ? 16 * t * t * t * t * t : 1 + 16 * (--t) * t * t * t * t;
+      }
+
+      //Event Handlers
+      window.addEventListener("resize", onWindowResize);
+
+
+      init();
+      animate();
+
+    }
+
+    ThreeJSCanvas(1);
+  </script>
+  <script>
+    function noticeBtn() {
+      // window.location.href="../platlive/notice/index"
+      }
+  </script>
+  <script>
+    var xin = true,
+        yin = true;
+      var step = 2;
+      var delay = 10;
+      var $obj;
+      $(function () {
+        $obj = $('#floatingDiv');
+        var time = window.setInterval('move()', delay);
+        $obj.mouseover(function () {
+          clearInterval(time);
+        });
+        $obj.mouseout(function () {
+          time = window.setInterval('move()', delay);
+        });
+      });
+
+      function move() {
+        var left = $obj.offset().left;
+        // console.log(left);
+        var top = $obj.offset().top;
+        var L = (T = 0); //左边界和顶部边界
+        var R = $(window).width() - $obj.width(); // 右边界
+        var B = $(window).height() - $obj.height(); //下边界
+
+        //难点:怎样判断广告的4个边框有没有超出可视化范围!
+        if (left < L) {
+          xin = true; // 水平向右移动
+        }
+        if (left > R) {
+          xin = false;
+        }
+        if (top < T) {
+          yin = true;
+        }
+        if (top > B) {
+          yin = false;
+        }
+        //根据有没有超出范围来确定广告的移动方向
+        left += step * (xin == true ? 1 : -1);
+        top += step * (yin == true ? 1 : -1);
+        // 给div 元素重新定位
+        $obj.offset({
+          top: top,
+          left: left,
+        });
+      }
+
+  </script>
+</body>
+<!-- layui -->
+<script type="text/javascript" src="static/home/lib/layui/layui.all.js"></script>
+
+</html>

+ 251 - 0
public/static/home/css/index.css

@@ -0,0 +1,251 @@
+html {
+  margin: 0;
+  padding: 0;
+}
+
+html,
+body {
+  width: 100%;
+  height: 100%;
+  margin: 0px;
+  padding: 0px;
+  font-family: "Lato", sans-serif;
+  font-size: 16px;
+}
+
+.social-icon a {
+  position: fixed;
+  background: white;
+  color: white;
+  display: inline-block;
+  width: 100px;
+  height: 100px;
+  transform: translate(-50%, -50%) rotate(45deg);
+  transition: 0.15s ease;
+  z-index: 30;
+}
+
+.social-icon i {
+  position: absolute;
+  font-size: 1.8em;
+  pointer-events: none;
+  z-index: 1000;
+}
+
+.social-icon:hover a {
+  transform: translate(-50%, -50%) rotate(45deg) scale(1.05);
+}
+
+.youtube a {
+  top: 100%;
+  left: 0%;
+  box-shadow: 0px 0px 15px 5px rgba(230, 33, 23, 0.5);
+}
+
+.youtube i {
+  left: 8px;
+  bottom: 8px;
+  color: #e62117;
+}
+
+.github a {
+  top: 100%;
+  left: 100%;
+  box-shadow: 0px 0px 15px 3px rgba(126, 126, 126, 0.5);
+}
+
+.github i {
+  right: 8px;
+  bottom: 8px;
+}
+
+#canvas-container-1 {
+  height: 100%;
+  width: 80%;
+  margin: 0 auto;
+}
+
+#canvas-1 {
+  display: block;
+  position: relative;
+  top: 50%;
+  left: 50%;
+  transform: translate(-50%, -50%);
+}
+
+#site-link {
+  color: #0099ff;
+  display: inline-block;
+  position: fixed;
+  bottom: 4%;
+  left: 50%;
+  transform: translate(-50%, 0%);
+  font-variant: small-caps;
+}
+
+body {
+  background: url(../../home/images/bg_1.jpg);
+  background-size: cover;
+}
+
+.fn_1 {
+  width: 200px;
+  height: 170px;
+  background: url(../../home/images/fn_1.png) no-repeat;
+  background-size: 100%;
+}
+
+.fn_1:hover {
+  background: url(../../home/images/fn_1_h.png) no-repeat;
+  background-size: 100%;
+}
+
+.fn_2 {
+  width: 200px;
+  height: 170px;
+  background: url(../../home/images/fn_3.png) no-repeat;
+  background-size: 100%;
+}
+
+.fn_2:hover {
+  background: url(../../home/images/fn_3_h.png) no-repeat;
+  background-size: 100%;
+}
+
+.fn_3 {
+  width: 200px;
+  height: 170px;
+  background: url(../../home/images/fn_2.png) no-repeat;
+  background-size: 100%;
+}
+
+.fn_3:hover {
+  background: url(../../home/images/fn_2_h.png) no-repeat;
+  background-size: 100%;
+}
+
+.fn_4 {
+  width: 200px;
+  height: 170px;
+  background: url(../../home/images/fn_4.png) no-repeat;
+  background-size: 100%;
+}
+
+.fn_4:hover {
+  background: url(../../home/images/fn_4_h.png) no-repeat;
+  background-size: 100%;
+}
+
+.fn_5 {
+  width: 200px;
+  height: 170px;
+  background: url(../../home/images/fn_5.png) no-repeat;
+  background-size: 100%;
+}
+
+.fn_5:hover {
+  background: url(../../home/images/fn_5_h.png) no-repeat;
+  background-size: 100%;
+}
+
+.sci-wheel {
+  position: absolute;
+  top: 0;
+  right: 0;
+  width: 100px;
+}
+
+.header {
+  width: 100%;
+  height: 100px;
+  line-height: 100px;
+  padding: 0 40px;
+  background: rgba(0, 0, 0, 0.3);
+}
+.header .left {
+  float: left;
+  width: 50%;
+}
+.header .left .image {
+  float: left;
+  margin: 27px 10px;
+  width: 60px;
+}
+.header .left .title {
+  float: left;
+  font-size: 30px;
+  color: white;
+  letter-spacing: 3px;
+}
+.header .right {
+  float: left;
+  width: 50%;
+  text-align: right;
+  padding: 0 70px 0 0;
+}
+.header .right button {
+  background: #409eff;
+  color: #fff;
+  padding: 4px 4px;
+  font-size: 14px;
+  border-radius: 5px;
+}
+.header .right button:hover {
+  cursor: pointer;
+}
+
+.center {
+  position: absolute;
+  top: 20px;
+  bottom: 0;
+  left: 0;
+  right: 0;
+  margin: auto;
+  width: 930px;
+  height: 500px;
+  z-index: 999;
+  background: rgba(5, 19, 44, 0.6);
+}
+
+.center .list {
+  display: block;
+  float: left;
+  margin: 60px 29px;
+}
+
+.center .list:nth-child(1) {
+  position: relative;
+  left: 75px;
+  top: 60px;
+}
+
+.center .list:nth-child(2) {
+  position: relative;
+  left: 80px;
+  top: 0;
+}
+
+.center .list:nth-child(3) {
+  position: relative;
+  left: 85px;
+  top: 60px;
+}
+
+.center .list:nth-child(4) {
+  position: relative;
+  left: -187px;
+  top: -145px;
+}
+
+.center .list:nth-child(5) {
+  position: relative;
+  top: -145px;
+  left: 606px;
+}
+
+.center .list p {
+  text-align: center;
+  color: #00baf1;
+  font-size: 35px;
+  margin-top: 190px;
+}

+ 111 - 0
public/static/home/css/lib.css

@@ -0,0 +1,111 @@
+/* CSS Document */
+/**
+* +----------------------------------------------------------
+* 主样式
+* +----------------------------------------------------------
+*/
+*{
+	-webkit-box-sizing: border-box;
+	-moz-box-sizing: border-box;
+	box-sizing: border-box;
+	margin: 0;
+	padding: 0;
+	font-family: 微软雅黑;
+	letter-spacing: 1px;
+}
+html,body{
+	width: 100%; height: 100%;
+	overflow: hidden;
+	font-size: 14px;
+}
+
+li{
+	list-style: none;
+}
+a{
+	display: block;
+}
+a:hover{
+	color: #df621e;
+	-webkit-transition: all 0.2s ease-in-out;
+}
+
+iframe{
+	border: 0; width: 100%; height: 100%;
+}
+.pull-left{ float: left; }
+.pull-right{ float: right; }
+
+.show{ display: block; }
+.hide{ display: none; }
+
+.i-bold{
+	font-weight: bolder;
+}
+/*字体颜色*/
+.i-green{ color:#00c851 !important;}
+.i-yellow{ color:#e7592b !important;}
+.i-red{ color:#d90000 !important; font-weight: border;}
+.i-blue{ color:#2292ef !important;}
+.i-lightblue{ color:#00a5e0 !important;}
+.i-gray{ color:#6c6c6e !important;}
+
+/*背景颜色*/
+.bg-green{ background-color:#00c851 !important;}
+.bg-yellow{ background-color:#e7592b !important;}
+.bg-red{ background-color:#d90000 !important;}
+.bg-blue{ background-color:#2292ef !important;}
+.bg-white{ background-color: white !important;}
+.bg-gray{ background-color: #6c6c6e !important;}
+
+/*渐变色*/
+.shade-white{
+	display: block;
+	background-image:url(../../home/images/shade/white.png);
+	background-repeat:repeat-x;
+	background-size: 100% 100%;
+	background-position: 0 0;
+}
+.shade-menu{
+	display: block;
+	background-image:url(../../home/images/shade/menu.png);
+	background-repeat:repeat-x;
+	background-size: 100% 100%;
+	background-position: 0 0;
+}
+
+.shadow{
+	box-shadow:0px 4px 8px rgba(0,0,0,0.3);
+}
+.shadow1{
+	background: url(../../home/images/shadow.png);
+	width: 220px; height: 15px;
+	background-size: 100%;
+	background-position: 0 0;
+	position: absolute; bottom: -15px; left: 0;
+}
+.shadow2{
+	background: url(../../home/images/shadow.png);
+	width: 100%; height: 15px;
+	background-size: 100%;
+	background-position: 0 -15px;
+	position: absolute; bottom: -15px; left: 0;
+}
+
+/* 数字提示 */
+.num{
+  width: 15px; height: 15px; text-align: center; line-height: 15px;
+  border-radius: 99px;
+  color: white; font-weight: bolder;
+}
+.num-1{
+	margin-left: 5px;
+  padding: 5px 10px; text-align: center; line-height: 15px;
+  border-radius: 99px;
+  color: white; font-weight: bolder;
+}
+
+/* layui修改 */
+.layui-input-block{
+	margin-left: 0;
+}

+ 146 - 0
public/static/home/css/road.css

@@ -0,0 +1,146 @@
+/* CSS Document */
+/**
+* +----------------------------------------------------------
+* 主样式
+* +----------------------------------------------------------
+*/
+.layui-form-checkbox[lay-skin=primary]:hover i{
+  border-color: #407CD5;
+}
+.layui-form-checked[lay-skin=primary] i{
+  background-color: #407CD5;
+  border-color: #407CD5;
+}
+
+.layui-btn{
+    height: 45px;
+    line-height: 45px;
+}
+.layui-btn-normal{
+  background-color: #407CD5;
+}
+
+
+/*流星*/
+.liuxing{
+  width: 85px;
+	height: 85px;
+	position: absolute;
+	background: url(../../home/images/line.png) no-repeat;
+	background-size: contain;
+}
+.liuxing1 {
+  top: 200px;
+	left: 200px;
+}
+
+.liuxing2 {
+  top: 200px;
+	left: 50%;
+	margin-left: 200px;
+}
+
+.liuxing3 {
+  top: 100px;
+	right: 300px;
+}
+
+.liuxing4 {
+  top: 150px;
+	right: 300px;
+}
+
+.liuxingFla {
+	animation: liuxing 5s ease-in infinite;
+}
+
+.liuxingFla2 {
+	animation: liuxing2 4s ease-in infinite;
+}
+
+.liuxingFla3 {
+	animation: liuxing3 3s linear infinite;
+}
+
+.liuxingFla4 {
+	animation: liuxing4 2s linear infinite;
+}
+
+/* 流星动画 */
+@keyframes liuxing {
+	0% {
+		transform: translate(200px, -200px)
+	}
+	90% {
+		transform: translate(-180px, 180px);
+		opacity: 1;
+	}
+	100% {
+		transform: translate(-200px, 200px);
+		opacity: 0;
+	}
+}
+
+@keyframes liuxing2 {
+	0% {
+		transform: translate(200px, -200px)
+	}
+	90% {
+		transform: translate(-480px, 480px);
+		opacity: 1;
+	}
+	100% {
+		transform: translate(-500px, 500px);
+		opacity: 0;
+	}
+}
+
+@keyframes liuxing3 {
+	0% {
+		transform: translate(200px, -200px)
+	}
+	90% {
+		transform: translate(-480px, 480px);
+		opacity: 1;
+	}
+	100% {
+		transform: translate(-500px, 500px);
+		opacity: 0;
+	}
+}
+
+@keyframes liuxing4 {
+	0% {
+		transform: translate(200px, -200px)
+	}
+	90% {
+		transform: translate(-180px, 180px);
+		opacity: 1;
+	}
+	100% {
+		transform: translate(-200px, 200px);
+		opacity: 0;
+	}
+}
+
+/*菜单*/
+.moveUpDownFla1 {
+	animation: moveUpDown 5s ease infinite;
+}
+
+.moveUpDownFla2 {
+	animation: moveUpDown 4s linear infinite;
+}
+
+/* 菜单动画 */
+@keyframes moveUpDown {
+	0% {
+		transform: translate(0px, -20px)
+	}
+	50% {
+		transform: translate(0px, 20px)
+	}
+	100% {
+		transform: translate(0px, -20px);
+	}
+}

BIN
public/static/home/images/bg_1.jpg


BIN
public/static/home/images/fn_1.png


BIN
public/static/home/images/fn_1_h.png


BIN
public/static/home/images/fn_2.png


BIN
public/static/home/images/fn_2_h.png


BIN
public/static/home/images/fn_3.png


BIN
public/static/home/images/fn_3_h.png


BIN
public/static/home/images/fn_4.png


BIN
public/static/home/images/fn_4_h.png


BIN
public/static/home/images/fn_5.png


BIN
public/static/home/images/fn_5_h.png


BIN
public/static/home/images/footer_bg.png


BIN
public/static/home/images/index-head.png


BIN
public/static/home/images/line.png


BIN
public/static/home/images/login-color.png


BIN
public/static/home/images/login_bg_1.png


BIN
public/static/home/images/logo.png


BIN
public/static/home/images/sci.gif


BIN
public/static/home/images/登录.png


ファイルの差分が大きいため隠しています
+ 5 - 0
public/static/home/js/stats.min.js


ファイルの差分が大きいため隠しています
+ 927 - 0
public/static/home/js/three.min.js


ファイルの差分が大きいため隠しています
+ 5 - 0
public/static/home/lib/jquery/jquery-2.1.1.min.js


ファイルの差分が大きいため隠しています
+ 2 - 0
public/static/home/lib/layui/css/layui.css


ファイルの差分が大きいため隠しています
+ 2 - 0
public/static/home/lib/layui/css/layui.mobile.css


ファイルの差分が大きいため隠しています
+ 2 - 0
public/static/home/lib/layui/css/modules/code.css


BIN
public/static/home/lib/layui/css/modules/layer/default/icon-ext.png


BIN
public/static/home/lib/layui/css/modules/layer/default/icon.png


ファイルの差分が大きいため隠しています
+ 2 - 0
public/static/home/lib/layui/css/modules/layer/default/layer.css


BIN
public/static/home/lib/layui/css/modules/layer/default/loading-0.gif


BIN
public/static/home/lib/layui/css/modules/layer/default/loading-1.gif


BIN
public/static/home/lib/layui/css/modules/layer/default/loading-2.gif


ファイルの差分が大きいため隠しています
+ 2 - 0
public/static/home/lib/layui/lay/modules/carousel.js


ファイルの差分が大きいため隠しています
+ 2 - 0
public/static/home/lib/layui/lay/modules/code.js


ファイルの差分が大きいため隠しています
+ 2 - 0
public/static/home/lib/layui/lay/modules/element.js


ファイルの差分が大きいため隠しています
+ 2 - 0
public/static/home/lib/layui/lay/modules/flow.js


ファイルの差分が大きいため隠しています
+ 2 - 0
public/static/home/lib/layui/lay/modules/form.js


ファイルの差分が大きいため隠しています
+ 5 - 0
public/static/home/lib/layui/lay/modules/jquery.js


ファイルの差分が大きいため隠しています
+ 2 - 0
public/static/home/lib/layui/lay/modules/layedit.js


ファイルの差分が大きいため隠しています
+ 2 - 0
public/static/home/lib/layui/lay/modules/layer.js


ファイルの差分が大きいため隠しています
+ 2 - 0
public/static/home/lib/layui/lay/modules/laypage.js


ファイルの差分が大きいため隠しています
+ 2 - 0
public/static/home/lib/layui/lay/modules/laytpl.js


ファイルの差分が大きいため隠しています
+ 2 - 0
public/static/home/lib/layui/lay/modules/mobile.js


ファイルの差分が大きいため隠しています
+ 2 - 0
public/static/home/lib/layui/lay/modules/tree.js


ファイルの差分が大きいため隠しています
+ 2 - 0
public/static/home/lib/layui/lay/modules/upload.js


ファイルの差分が大きいため隠しています
+ 2 - 0
public/static/home/lib/layui/lay/modules/util.js


ファイルの差分が大きいため隠しています
+ 2 - 0
public/static/home/lib/layui/layui.all.js


BIN
public/static/images/06.gif


BIN
public/static/images/1.jpg


BIN
public/static/images/batb.png


BIN
public/static/images/beijing.jpg


BIN
public/static/images/bg.jpg


BIN
public/static/images/bg2.png


BIN
public/static/images/bg_shop (1).png


BIN
public/static/images/bg_shop.png


BIN
public/static/images/fuchuang.jpg


BIN
public/static/images/logo.png


BIN
public/static/images/logo20.png


BIN
public/static/images/logostbrain.png


BIN
public/static/images/main1.png


BIN
public/static/images/main2.png


BIN
public/static/images/mubu_1.jpg


BIN
public/static/images/mubu_1_s.jpg


BIN
public/static/images/mubu_2.png


BIN
public/static/images/mubu_2_s.png


BIN
public/static/images/mubu_3_s.png


BIN
public/static/images/mubu_left.jpg


BIN
public/static/images/mubu_left_s.jpg


BIN
public/static/images/mubu_right.jpg


BIN
public/static/images/mubu_right_s.jpg


BIN
public/static/images/mubu_yh_1.png


BIN
public/static/images/mubu_yh_2.png


BIN
public/static/images/nyear-wwwa5.png


BIN
public/static/images/people.png


BIN
public/static/images/timg.jpg


BIN
public/static/images/top_3.png


BIN
public/static/images/top_bg.png


BIN
public/static/images/zwfwlogo.png


BIN
public/static/images/测试图片.jpg


ファイルの差分が大きいため隠しています
+ 1114 - 0
public/static/js/flowplayer-3.2.13.min.js


ファイルの差分が大きいため隠しています
+ 2 - 0
public/static/js/jquery-1.8.3.min.js


ファイルの差分が大きいため隠しています
+ 11 - 0
public/static/js/particles.min.js


+ 32 - 0
public/static/js/tabs.js

@@ -0,0 +1,32 @@
+window.onload = function() {
+    var oDiv = document.getElementById("tab");
+    var oLi = oDiv.getElementsByTagName("div")[0].getElementsByTagName("li");
+    var aCon = oDiv.getElementsByTagName("div")[1].getElementsByTagName("div");
+    var timer = null;
+    for (var i = 0; i < oLi.length; i++) {
+        oLi[i].index = i;
+        oLi[i].onmouseover = function() {
+            show(this.index);
+        }
+    }
+    function show(a) {
+        index = a;
+        var alpha = 0;
+        for (var j = 0; j < oLi.length; j++) {
+            oLi[j].className = "";
+            aCon[j].className = "";
+            aCon[j].style.opacity = 0;
+            aCon[j].style.filter = "alpha(opacity=0);";
+        }
+        oLi[index].className = "cur";
+        clearInterval(timer);
+        timer = setInterval(function() {
+            alpha += 2;
+            alpha > 100 && (alpha = 100);
+            aCon[index].style.opacity = alpha / 100;
+            aCon[index].style.filter = "alpha(opacity=" + alpha + ")";
+            alpha == 100 && clearInterval(timer);
+        },
+        5)
+    }
+}

+ 7 - 28
src/views/index.vue

@@ -1,47 +1,26 @@
 <template>
-  <div id="index">
-    <el-row>
-      <el-col :span="24">
-        <div class="w_1200">
-          <el-col :span="24">
-            <el-button type="primary" size="mini" @click="loginBtn">平台登录</el-button>
-            <el-button type="primary" size="mini">管理登录</el-button>
-          </el-col>
-          <el-col :span="24">
-            <el-button type="primary" size="mini" @click="$router.push({ path: '/news/index' })">新闻资讯</el-button>
-            <el-button type="primary" size="mini" @click="$router.push({ path: '/market/index' })">科技超市</el-button>
-            <el-button type="primary" size="mini" @click="$router.push({ path: '/live/index' })">直播大厅</el-button>
-            <el-button type="primary" size="mini" @click="$router.push({ path: '/dynamic/index' })">数据动态</el-button>
-            <el-button type="primary" size="mini" @click="$router.push({ path: '/techolchat/index' })">技术交流</el-button>
-          </el-col>
-        </div>
-      </el-col>
-    </el-row>
-  </div>
+  <div id="index"></div>
 </template>
 
 <script>
 import { mapState, createNamespacedHelpers } from 'vuex';
 export default {
-  metaInfo() {
-    return { title: this.$route.meta.title };
-  },
   name: 'index',
   props: {},
   components: {},
   data: function() {
     return {};
   },
-  created() {},
-  methods: {
-    // 登录
-    loginBtn() {
-      this.$router.push({ path: '/login' });
-    },
+  created() {
+    window.location.href = 'home.html';
   },
+  methods: {},
   computed: {
     ...mapState(['user']),
   },
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
   watch: {},
 };
 </script>

+ 1 - 1
src/views/live/parts/trainLive.vue

@@ -18,7 +18,7 @@
             <el-col :span="24" class="btn">
               <el-button type="warning" size="mini" @click="toAdmin(item.room_id)">管理进入</el-button>
               <el-button type="primary" size="mini" @click="inChannel(item)">进入频道</el-button>
-              <el-button type="primary" size="mini" @click="logout">退出登录</el-button>
+              <!-- <el-button type="primary" size="mini" @click="logout">退出登录</el-button> -->
             </el-col>
           </el-col>
         </el-col>