Difference between revisions of "Template:CPU CHINA/common JS"

Line 1: Line 1:
@font-face {
+
// 菜单页
   font-family: MONTSERRAT-BLACK1;
+
var header = new Vue({
  src: url("https://static.igem.org/mediawiki/2021/0/04/T--CPU_CHINA--MONTSERRAT-BLACK1.woff")
+
   el: "#header",
     format("woff");
+
  data: {
}
+
    menu: "https://static.igem.org/mediawiki/2021/2/22/T--CPU_CHINA--face.png", //菜单按钮
 +
    isOpen: false, //背景变化
 +
    classA: false, //一级菜单是否打开
 +
    classB: false, //二级菜单是否打开
 +
    isActive: "", //背景变色
 +
    isActiveA: -1, //一级菜单悬停效果
 +
    isActiveB: -1, //二级菜单悬停效果
 +
    open: false, //菜单是否是打开状态
 +
    clickon: true, //鼠标是否位于菜单上
 +
    ifon: true, //离开是否会关闭按钮
 +
    // 一级菜单列表
 +
    classList: ["Project", "Parts", "Model", "Human Practices", "Team"],
 +
    // 二级菜单刘表
 +
    classList2: [
 +
      [
 +
        {
 +
          text: "Description",
 +
          url: "",
 +
          num: 0,
 +
        },
 +
        {
 +
          text: "Design",
 +
          url: "",
 +
          num: 1,
 +
        },
 +
        {
 +
          text: "Proof of Concept",
 +
          url: "",
 +
          num: 2,
 +
        },
 +
        {
 +
          text: "Proposed Implementation",
 +
          url: "",
 +
          num: 3,
 +
        },
 +
        {
 +
          text: "Art Design",
 +
          url: "",
 +
          num: 4,
 +
        },
 +
        {
 +
          text: "Lab",
 +
          url: "",
 +
          num: 5,
 +
        },
 +
        {
 +
          text: "General Safety",
 +
          url: "",
 +
          num: 6,
 +
        },
 +
      ],
 +
      [
 +
        {
 +
          text: "Parts Overview",
 +
          url: "",
 +
          num: 0,
 +
        },
 +
        {
 +
          text: "Contributions",
 +
          url: "",
 +
          num: 1,
 +
        },
 +
        {
 +
          text: "Engineering Success",
 +
          url: "",
 +
          num: 2,
 +
        },
 +
        {
 +
          text: "Improvement",
 +
          url: "",
 +
          num: 3,
 +
        },
 +
      ],
 +
      [
 +
        {
 +
          text: "Summary",
 +
          url: "",
 +
          num: 0,
 +
        },
 +
        {
 +
          text: "Mathematical Modeling",
 +
          url: "",
 +
          num: 1,
 +
        },
 +
        {
 +
          text: "Molecular Modeling",
 +
          url: "",
 +
          num: 2,
 +
        },
 +
      ],
 +
      [
 +
        {
 +
          text: "Summary",
 +
          url: "",
 +
          num: 0,
 +
        },
 +
        {
 +
          text: "Integrated Human Practices",
 +
          url: "",
 +
          num: 1,
 +
        },
 +
        {
 +
          text: "Education and Public Engagement",
 +
          url: "",
 +
          num: 2,
 +
        },
 +
      ],
 +
      [
 +
        {
 +
          text: "Members",
 +
          url: "https://2021.igem.org/Team:CPU_CHINA/Team/Members",
 +
          num: 0,
 +
        },
 +
        {
 +
          text: "Attributions",
 +
          url: "",
 +
          num: 1,
 +
        },
 +
        {
 +
          text: "Collaboration",
 +
          url: "",
 +
          num: 2,
 +
        },
 +
        {
 +
          text: "Cartnership",
 +
          url: "",
 +
          num: 3,
 +
        },
 +
      ],
 +
    ],
 +
  },
 +
  methods: {
 +
    // 鼠标悬停到菜单按钮上
 +
    mouseover() {
 +
      if (!this.open) {
 +
        this.menu =
 +
          "https://static.igem.org/mediawiki/2021/9/91/T--CPU_CHINA--zheng.gif";
 +
        this.isOpen = true;
 +
        this.isActive = "menu";
 +
        setTimeout(() => {
 +
          this.open = true;
 +
          this.classA = true;
 +
          this.menu =
 +
            "https://static.igem.org/mediawiki/2021/a/a4/T--CPU_CHINA--.png";
 +
        }, 1100);
 +
      }
 +
    },
 +
    // 关闭菜单
 +
     close() {
 +
      if (this.open) {
 +
        this.menu =
 +
          "https://static.igem.org/mediawiki/2021/5/5b/T--CPU_CHINA--fan.gif";
 +
        this.isActive = "";
 +
        this.open = false;
 +
        this.classB = false;
 +
        this.classA = false;
 +
        this.isActiveA = -1;
 +
        setTimeout(() => {
 +
          this.isOpen = false;
 +
          this.menu =
 +
            "https://static.igem.org/mediawiki/2021/2/22/T--CPU_CHINA--face.png";
 +
        }, 1100);
 +
      }
 +
    },
 +
    // 点击菜单按钮
 +
    click() {
 +
      if (this.open) {
 +
        this.close();
 +
      } else {
 +
        this.mouseover();
 +
      }
 +
    },
 +
    // 鼠标移动到菜单上
 +
    on() {
 +
      this.clickon = false;
 +
      this.ifon = false;
 +
    },
 +
    // 鼠标离开菜单
 +
    leave() {
 +
    //  setTimeout(() => {
 +
    //    if (this.clickon) {
 +
    //      this.ifon = true;
 +
    //      if (this.ifon && this.open) {
 +
    //        this.close();
 +
    //      } else {
 +
    //        return;
 +
    //      }
 +
    //    }
 +
    //  }, 3000);
 +
      this.clickon = true;
 +
    },
 +
    // 鼠标点击空白关闭菜单
 +
    ifclick() {
 +
      if (this.clickon && this.open) {
 +
        this.close();
 +
      } else {
 +
        return;
 +
      }
 +
    },
 +
    // 鼠标点击一级菜单
 +
    classAClick(index) {
 +
      this.isActiveB = -1;
 +
      this.isActiveA = index;
 +
      this.classB = true;
 +
    },
 +
    // 鼠标悬停到二级菜单
 +
    classBOver(num) {
 +
      setTimeout(() => {
 +
        this.isActiveB = num;
 +
      }, 300);
 +
    },
 +
    // 鼠标离开二级菜单
 +
    classBLeave(num) {
 +
      setTimeout(() => {
 +
        this.isActiveB = -1;
 +
      }, 300);
 +
    },
 +
  },
 +
});
  
@font-face {
+
// 页面滚动响应
  font-family: MONTSERRAT-BLACKITALIC2;
+
var $navs = $("nav li"), // 导航
   src: url("https://static.igem.org/mediawiki/2021/d/d4/T--CPU_CHINA--MONTSERRAT-BLACKITALIC2.woff")
+
   $sections = $(".section"), // 模块
    format("woff");
+
  $window = $(window),
}
+
  navLength = $navs.length - 1;
  
@font-face {
+
$window.scroll(function () {
   font-family: CABIN-REGULAR;
+
   var scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
   src: url("https://static.igem.org/mediawiki/2021/b/b3/T--CPU_CHINA--CABIN-REGULAR.woff")
+
   len = navLength;
     format("woff");
+
  for (; len > -1; len--) {
}
+
    var that = $sections.eq(len);
 +
     if (scrollTop >= that.offset().top - 10) {
 +
      $navs.removeClass("current").eq(len).addClass("current");
 +
      break;
 +
    }
 +
  }
 +
});
  
@font-face {
+
$navs.on("click", function (e) {
  font-family: CABIN-ITALIC;
+
   e.preventDefault();
  src: url("https://static.igem.org/mediawiki/2021/7/75/T--CPU_CHINA--CABIN-ITALIC.woff")
+
   $("html, body").animate(
    format("woff");
+
     {
}
+
      scrollTop: $($(this).find("a").attr("href")).offset().top,
 
+
     },
body {
+
     400
   background-color: #fafafa;
+
   );
}
+
});
 
+
* {
+
  box-sizing: border-box;
+
}
+
 
+
#contain {
+
  margin-top: -12px;
+
  padding: 0 3% 10%;
+
  width: 100%;
+
  background-color: #fafafa;
+
  z-index: 1;
+
  text-align: left;
+
  box-sizing: border-box;
+
}
+
 
+
.background {
+
  position: fixed;
+
   width: 100%;
+
  top: 0;
+
  z-index: -1;
+
  box-sizing: border-box;
+
}
+
 
+
#header #title {
+
  position: fixed;
+
  top: 10%;
+
  font-family: "MONTSERRAT-BLACKITALIC2";
+
  line-height: normal;
+
  font-weight: bolder;
+
  font-size: 800%;
+
  color: #fafafa;
+
  z-index: -1;
+
}
+
 
+
#header #menu {
+
  z-index: 10;
+
}
+
 
+
#header #menu #menuBack {
+
  position: fixed;
+
  width: 100%;
+
  height: 100%;
+
  box-sizing: border-box;
+
  z-index: 10;
+
}
+
 
+
#header #menu .menu {
+
  background: #000000ad;
+
}
+
 
+
#header #menu #logo {
+
  position: fixed;
+
  top: 3vmin;
+
  left: 1vmin;
+
  width: 25vmin;
+
  z-index: 11;
+
}
+
 
+
#header #menu #menuImg {
+
  position: fixed;
+
  top: 2vmin;
+
  right: 1vmin;
+
  width: 15vmin;
+
  z-index: 11;
+
}
+
 
+
#header #menu .class {
+
  position: fixed;
+
  top: 13vmin;
+
  z-index: 11;
+
}
+
 
+
#header #menu .class li {
+
  padding: 6% 0;
+
  margin: 2vmin;
+
  border-radius: 30px;
+
  text-align: center;
+
  font-family: "MONTSERRAT-BLACKITALIC2";
+
  font-size: 1.5em;
+
  font-weight: bolder;
+
}
+
 
+
#header #menu #class-a {
+
  right: 1vmin;
+
}
+
 
+
#header #menu #class-a li {
+
  width: 30vmin;
+
  background-color: #fafafa;
+
  border: #fafafa solid 3px;
+
}
+
 
+
#header #menu #class-a li:hover {
+
  border: #0072fe solid 3px;
+
}
+
 
+
#header #menu #class-a .class-a {
+
  background-color: #0072fe;
+
  border: #0072fe solid 3px;
+
  color: #fafafa;
+
}
+
 
+
#header #menu #class-b {
+
  right: 37vmin;
+
}
+
 
+
#header #menu #class-b li {
+
  border: #0072fe solid 2px;
+
  width: 38vmin;
+
}
+
 
+
#header #menu #class-b li a{
+
     color: #FAFAFA;
+
}
+
 
+
#header #menu #class-b li:active {
+
  background-color: #0000008f;
+
}
+
#header #menu #class-b .class-b {
+
  background-color: #00000047;
+
}
+
 
+
footer {
+
  position: -webkit-sticky;
+
  left: 0;
+
  width: 100%;
+
  background-color: black;
+
}
+
 
+
footer #sponsor {
+
  position: relative;
+
  top: -10px;
+
  width: 100%;
+
  border-radius: 10px;
+
  -webkit-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.3),
+
    0 0 40px rgba(0, 0, 0, 0.1) inset;
+
  -moz-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.3),
+
    0 0 40px rgba(0, 0, 0, 0.1) inset;
+
  box-shadow: 0 1px 8px rgba(0, 0, 0, 0.3), 0 0 40px rgba(0, 0, 0, 0.1) inset;
+
  -o-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.3), 0 0 40px rgba(0, 0, 0, 0.1) inset;
+
  z-index: 1;
+
}
+
 
+
footer #connect {
+
  position: relative;
+
  top: -30px;
+
  width: 100%;
+
  height: 150px;
+
  background-color: black;
+
  border-radius: 10px;
+
  -webkit-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.3),
+
     0 0 40px rgba(0, 0, 0, 0.1) inset;
+
  -moz-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.3),
+
     0 0 40px rgba(0, 0, 0, 0.1) inset;
+
   box-shadow: 0 1px 8px rgba(0, 0, 0, 0.3), 0 0 40px rgba(0, 0, 0, 0.1) inset;
+
  -o-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.3), 0 0 40px rgba(0, 0, 0, 0.1) inset;
+
  z-index: 2;
+
}
+

Revision as of 13:22, 12 September 2021

// 菜单页 var header = new Vue({

 el: "#header",
 data: {
   menu: "T--CPU_CHINA--face.png", //菜单按钮
   isOpen: false, //背景变化
   classA: false, //一级菜单是否打开
   classB: false, //二级菜单是否打开
   isActive: "", //背景变色
   isActiveA: -1, //一级菜单悬停效果
   isActiveB: -1, //二级菜单悬停效果
   open: false, //菜单是否是打开状态
   clickon: true, //鼠标是否位于菜单上
   ifon: true, //离开是否会关闭按钮
   // 一级菜单列表
   classList: ["Project", "Parts", "Model", "Human Practices", "Team"],
   // 二级菜单刘表
   classList2: [
     [
       {
         text: "Description",
         url: "",
         num: 0,
       },
       {
         text: "Design",
         url: "",
         num: 1,
       },
       {
         text: "Proof of Concept",
         url: "",
         num: 2,
       },
       {
         text: "Proposed Implementation",
         url: "",
         num: 3,
       },
       {
         text: "Art Design",
         url: "",
         num: 4,
       },
       {
         text: "Lab",
         url: "",
         num: 5,
       },
       {
         text: "General Safety",
         url: "",
         num: 6,
       },
     ],
     [
       {
         text: "Parts Overview",
         url: "",
         num: 0,
       },
       {
         text: "Contributions",
         url: "",
         num: 1,
       },
       {
         text: "Engineering Success",
         url: "",
         num: 2,
       },
       {
         text: "Improvement",
         url: "",
         num: 3,
       },
     ],
     [
       {
         text: "Summary",
         url: "",
         num: 0,
       },
       {
         text: "Mathematical Modeling",
         url: "",
         num: 1,
       },
       {
         text: "Molecular Modeling",
         url: "",
         num: 2,
       },
     ],
     [
       {
         text: "Summary",
         url: "",
         num: 0,
       },
       {
         text: "Integrated Human Practices",
         url: "",
         num: 1,
       },
       {
         text: "Education and Public Engagement",
         url: "",
         num: 2,
       },
     ],
     [
       {
         text: "Members",
         url: "https://2021.igem.org/Team:CPU_CHINA/Team/Members",
         num: 0,
       },
       {
         text: "Attributions",
         url: "",
         num: 1,
       },
       {
         text: "Collaboration",
         url: "",
         num: 2,
       },
       {
         text: "Cartnership",
         url: "",
         num: 3,
       },
     ],
   ],
 },
 methods: {
   // 鼠标悬停到菜单按钮上
   mouseover() {
     if (!this.open) {
       this.menu =
         "T--CPU_CHINA--zheng.gif";
       this.isOpen = true;
       this.isActive = "menu";
       setTimeout(() => {
         this.open = true;
         this.classA = true;
         this.menu =
           "T--CPU_CHINA--.png";
       }, 1100);
     }
   },
   // 关闭菜单
   close() {
     if (this.open) {
       this.menu =
         "T--CPU_CHINA--fan.gif";
       this.isActive = "";
       this.open = false;
       this.classB = false;
       this.classA = false;
       this.isActiveA = -1;
       setTimeout(() => {
         this.isOpen = false;
         this.menu =
           "T--CPU_CHINA--face.png";
       }, 1100);
     }
   },
   // 点击菜单按钮
   click() {
     if (this.open) {
       this.close();
     } else {
       this.mouseover();
     }
   },
   // 鼠标移动到菜单上
   on() {
     this.clickon = false;
     this.ifon = false;
   },
   // 鼠标离开菜单
   leave() {
   //   setTimeout(() => {
   //     if (this.clickon) {
   //       this.ifon = true;
   //       if (this.ifon && this.open) {
   //         this.close();
   //       } else {
   //         return;
   //       }
   //     }
   //   }, 3000);
     this.clickon = true;
   },
   // 鼠标点击空白关闭菜单
   ifclick() {
     if (this.clickon && this.open) {
       this.close();
     } else {
       return;
     }
   },
   // 鼠标点击一级菜单
   classAClick(index) {
     this.isActiveB = -1;
     this.isActiveA = index;
     this.classB = true;
   },
   // 鼠标悬停到二级菜单
   classBOver(num) {
     setTimeout(() => {
       this.isActiveB = num;
     }, 300);
   },
   // 鼠标离开二级菜单
   classBLeave(num) {
     setTimeout(() => {
       this.isActiveB = -1;
     }, 300);
   },
 },

});

// 页面滚动响应 var $navs = $("nav li"), // 导航

 $sections = $(".section"), // 模块
 $window = $(window),
 navLength = $navs.length - 1;

$window.scroll(function () {

 var scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
 len = navLength;
 for (; len > -1; len--) {
   var that = $sections.eq(len);
   if (scrollTop >= that.offset().top - 10) {
     $navs.removeClass("current").eq(len).addClass("current");
     break;
   }
 }

});

$navs.on("click", function (e) {

 e.preventDefault();
 $("html, body").animate(
   {
     scrollTop: $($(this).find("a").attr("href")).offset().top,
   },
   400
 );

});