zoukankan      html  css  js  c++  java
  • 一阶段项目总结

    1.实用CSS属性

    1 background-color: rgba(34,38,44,0.3) 背景半透明化
    1 background-image: url(../img/W7DDWUACKJ1A1517317609671.jpg);
    2 background-position: -260px -0px;//图片位置
    3 background-size: 119.5% 400px ;//图片大小
    4 background-repeat: no-repeat;//图片重复
    1 transition: all 1.2s; //高宽同时放大,1.2秒内执行完毕
    2 transform:scale(1.1);图片放大 数字为放大倍数
    3 上面两条属性需要结合使用
    1 overflow:hidden;//隐藏超出元素范围的内容
    2 display: none;//隐藏元素
    3 display: block;//转为块级元素
    4 这三条属性结合使用可以实现元素的隐藏与再现,非常适合用来做交互式导航等内容

    2.JS效果思路

    利用数字来判断点击次数:

     1 var i = 1;
     2 var j = 2;
     3 var a = document.getElementById("game");
     4 var b = document.getElementById("gamei");
     5 var c = document.getElementById("story");
     6 var d = document.getElementById("storyi");
     7 var hg = document.getElementById("hg");
     8 var hs = document.getElementById("hs"); 
     9 function sel1(){
    10         if(i%2==1){
    11             a.style.color="white";
    12             b.style.right="48px";
    13             hg.style.display="block";
    14         } 
    15         if(i%2==0){
    16             hg.style.display="none";
    17             a.style.color="#f4d04d";
    18             b.style.right="0px";
    19         } 
    20         if(hs.style.display=="block"){ //检测另一个隐藏元素是否显示,如果显示则令其隐藏,使得两个元素不会同时显示
    21             hs.style.display="none";
    22             c.style.color="#f4d04d";
    23             d.style.right="0px";
    24         } 
    25         j=2;  //可使另外一个元素处于第一次点击的状态
    26         i++;
    27 }
    28 function sel2(){
    29 
    30         if(j%2==0){
    31             c.style.color="white";
    32             d.style.right="48px";
    33             hs.style.display="block";
    34         }
    35         if(j%2==1){
    36             hs.style.display="none";
    37             c.style.color="#f4d04d";
    38             d.style.right="0px";
    39         } 
    40         if(hg.style.display=="block"){
    41              hg.style.display="none";
    42              a.style.color="#f4d04d";
    43              b.style.right="0px";
    44         }
    45         i=1;
    46         j++;
    47 }

    判断侧面滑动栏滑动距离来改变导航位置:

     1 var na = document.getElementById("mnav"); 
     2 function mnav(){
     3                 var tp = document.documentElement.scrollTop;
     4                 if(tp>0){
     5                     na.style.top="0px";
     6                 }
     7                 if(tp==0){
     8                     na.style.top="41px";
     9                 }
    10                 
    11             }
    12 var timer = setInterval(
    13         function(){
    14             mnav();
    15         },300);  //实时监测滑动栏滑动距离

    PS:上面方法的改进版

     1 window.onscroll=function(){
     2     function mnav(){
     3     var h = window.scrollY; //获取滚动条Y轴即垂直滚动条滚动距离
     4     if(tp>0){
     5         na.style.top="0px";
     6     }
     7     if(tp==0){
     8         na.style.top="41px";
     9         }
    10                 
    11     }
    12 }
    13  window.scrollY 优势在于可做到实时检测,满足条件只执行一次函数,避免了使用定时器占用资源,以及函数被错误的重复调用的问题。
    缺点在于,只有页面滚动时才会调用函数,如果页面一直不滚动,则函数一直不调用,而
    document.documentElement.scrollTop
    配合定时器,可实现实时监测滚动条的距离。
    
    

    均分图片移动距离实现图片滚动动画:

     1 var nico1 = document.getElementById("nico1");
     2 var nico2 = document.getElementById("nico2");
     3 var nico3 = document.getElementById("nico3");
     4 
     5 var m = 0;
     6 var n = -25;
     7 var timer1;
     8 var timer2;
     9 function mover1(){
    10         function mv1(){
    11             m=m-2.5;//距离均分,多次移动
    12             nico1.style.top = m+"px";
    13             if(m==-25){
    14                 clearInterval(timer1);
    15                 return m = 0;  //数值还原,否则下一次移动会按照m=-25来进行计算
    16             }
    17         }
    18         timer1 = setInterval(function(){mv1();},20);//连续调用函数
    19 }
    20 function mout1(){
    21         function mo1(){
    22             n=n+2.5;
    23             nico1.style.top = n+"px";
    24             if(n==0){
    25                 clearInterval(timer2);
    26                 return n = -25;
    27             }
    28         }
    29         timer2 = setInterval(function(){mo1();},20);
    30 }

    PS:<a href="javascript:void(0)"></a> 避免点击链接后,自动跳到页面顶部。

    3.总结

    position:relative 元素原来占用位置依旧存在,慎用。

    注意细节设计,一些小小的效果实现能显著提高网页的实用性。

    多做注释,提高代码可读性,也方便其他人接手自己当前的项目。

    JS变量、CSS选择器命名要规范,提高可读性,也能防止代码量提高后造成的命名混乱问题。

    CSS选择器可多采用分组设计,具有同样属性的选择器分为一组,不同的属性再单独定义,可以减少代码量。

    如果一个网页的顶部导航和底部信息等样式相同,则可以先设计好模板,再填写内容,可大大提高网页制作效率。

  • 相关阅读:
    Java 第十一届 蓝桥杯 省模拟赛 梅花桩
    Java 第十一届 蓝桥杯 省模拟赛 梅花桩
    Java 第十一届 蓝桥杯 省模拟赛 梅花桩
    Java 第十一届 蓝桥杯 省模拟赛 元音字母辅音字母的数量
    Java 第十一届 蓝桥杯 省模拟赛 元音字母辅音字母的数量
    Java 第十一届 蓝桥杯 省模拟赛 元音字母辅音字母的数量
    Java 第十一届 蓝桥杯 省模拟赛 最大的元素距离
    Java 第十一届 蓝桥杯 省模拟赛 递增序列
    Java 第十一届 蓝桥杯 省模拟赛 递增序列
    Java 第十一届 蓝桥杯 省模拟赛 最大的元素距离
  • 原文地址:https://www.cnblogs.com/whwjava/p/8540538.html
Copyright © 2011-2022 走看看