WEB实战原生JS开发

1.效果一:实现鼠标放在文字上的时候,文字的颜色逐渐发生变化
    原理:字体准备颜色不同的两份,然后进行定位来覆盖,实际上就是hover的时候字体的宽度发生变化,并设置transition实现渐变的效果
html:
<ul id= "nav" >
    <li>
        <a href= "javascript:;" >
            <div class= "up" > Course </div>
            <div class= "down" > Course </div>
        </a>
    </li>
</ul>

css:
#nav li . up{
    position: absolute ;
    left: 0 ;
    top: 0 ;
    color: black ;
    width: 0% ;
    overflow: hidden ;
    transition: .5 s width ;     //控制变化的只有宽度  
}
#nav li: hover . up{
    width: 100% ;
}


2.在设置高度:xxx.style.height = xxxHeight的时候一定要注意带上+ 'px',不然就会出错

3.元素如果设置了float属性,就很难做到居中操作了,这时就可以用display:inle-block代替float浮动
(1)如果没有获得居中的效果的话,检查position是否正确,或者是加上width:100%看看

4.手型点击  ——  cursor:pointer
   手型不能点击  ——  cursor:default

5.180翻转之后转过去的元素隐藏的属性:
backface-visibility: hidden;

6.让一个背景图居中的话,背景图与父级的高度保持奇偶性,否则会出现抖动的现象

7.一定要注意浏览器的兼容性问题:-webkit- 

8.1弧度 = 360 / 2π   ——>  180 / π
    1角度 = 2π / 360  —— >  π / 180

9.在canvas中如何让多个物体进行运动
    开两个定时器,一个定时器负责连续绘制+改要连续绘制的数据;一个定时器用来添加相关的元素 








1.写网页的时候首先写重置样式(css)
(1).在css最开始的时候先写一些重置样式(因为css会自带一些样式是我们不需要的),注释
    /*reset start*/
     /*reset start*/

(2).设置公共样式
 <1>清除浮动
. clear { zoom : 1 }
. clear : after { content : "" ; display : block ; clear : both ; }

2.写完重置样式之后再来写网页的html框架,写框架的时候可以先把容易部分的css样式写了

3.<a href="javascript:;"></a>中的 javascript:;是一个伪协议,可以让我们通过一个链接来调用js函数,在保留a标签特征的前提下禁止跳转功能(因为一般html中a标签是让点击链接就打开一个网页,如果写href="# "的话点击a标签之后就会跳转到首页,但很多时候a标签只是作为一个按钮,并不希望实现跳转的功能

4.如果一个元素里面有可能会出现相对于这个元素的相对定位的话,就给这个元素设置position:relative

5.加了绝对定位“position:absolute”的元素不占位置,前提是必须要给直接父级元素加相对定位“position:relative”

4.margin、padding是不用搭配position使用的,也不会受到float的影响

5.如果一个操作里面包含了多个功能,就不要在这个操作里面写全部功能的实现代码,应该在这个操作外面定义实现每个功能的函数,然后在该操作里面调用函数就好

6.获取可视区的宽高的浏览器兼容写法:
    window.innerWidth || document.documentElement.clientWidth 
每个li的高度和可视区域的高度是相关的,在js中用可视区域的高度减去header的高度就能得到每个li的高度了

7.当你想要获取所有特定元素,但是有不需要特定元素下的子元素时可以在js中封装一个专门用来获取类名的函数
function getByClass(oParent,sClass){}         //参数1:父级           参数2:类名

//因为li里面可能还会有li,所以如果直接用上面定义的$()方法的话有可能就会获取所有li下的子li,所以需要封装一个获取类名的函数
function getByClass (oParent , sClass){
     //获取所有的元素
     var aElem = oParent.getElementsByTagName( '*' ) ;
    var
arr = [] ; //把想要的元素添加到数组中
     for ( var i = 0 ; i < aElem. length ; i ++){
          if (aElem[i].className === sClass){ //如果每一个元素的className都等于传进去的sClass
               arr. push (aElem[i]) ; //匹配成功的就加入数组中
          }
     }
     return arr ; //最后返回这个数组
}


8.背景图分辨率较大时默认是从左侧开始平铺的,如何让分辨率较大的背景图居中?
    给背景图所在的元素添加:
              width:图片的宽
              position:relative;
              left:50%;
              margin-left:-背景图片的宽度/2;
例如:
     #list . liList {
          width : 200 px ;
          position : relative ;
          left : 50 % ;
          margin-left : - 1000 px ;
     }


9.使背景图分辨率自适应浏览器大小变化:
    window.onresize = fnResize;

10.鼠标滚轮事件:
·火狐:DOMMouseScroll(DOM事件必须要通过绑定的方式去写  addEventListener)
·IE、google:onmousewheel
所以绑定鼠标滚轮事件的时候一定要作兼容处理
oContent. addEventListener ( 'DOMMouseScroll' , function (){} , false ) ;


//做不同浏览器兼容的时候一般用if语句
if (oContent. addEventListener ){
     oContent. addEventListener ( 'DOMMouseScroll' , function (){
          alert ( 123 ) ;
     } , false ) ;
}
oContent. onmousewheel = function (){
     alert ( 444 ) ;
} ;

10.如果不加以限制的话,鼠标滚轮滚动的时候滑屏会进行快速的切换,这是因为鼠标滚轮是连续触发的,会导致代码的执行非常快,要解决就要用到“延迟处理”思想,用定时器控制

11.改变盒模型
        box-sizing:border-box

12.animation动画是没有办法设置display的,只能设置visibility,所以在切换显示隐藏并且要求边运动边隐藏的时候不能设置display,而是要用visibility
visibility : visible;            显示

visibility : hidden ;        隐藏

13.在animation属性中translateZ(具体数值px)旋转操作,其中Z轴是表示离我们远近的轴,离我们远就是负的,近就是正的
         translate( , )     前面的参数是x轴方向的偏移,后面的参数是y轴方向的偏移
         scale()         设置放大/缩小的倍数
         rotate(数值deg)       有rotateY()绕y轴旋转,rotateX()绕x轴旋转,顺时旋转为负值,逆时针旋转为正值

14.设置动画的3D属性
          perspective:800px;
15.设置了自定义属性data-src的时候在js里面 dataset.src获取

16.如果多个定位的话一定要注意层级问题
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
原生JS开发管理后台是一种利用JavaScript语言进行开发的管理后台系统。在开发过程中,我们可以利用原生JS来完成页面的交互、数据的处理、以及与后端的数据交互等功能。相比于使用一些框架或库,原生JS开发管理后台可以更加灵活地满足项目的需求,并且可以提高页面性能和响应速度。 在开发原生JS管理后台时,我们需要充分了解JavaScript语言的特性和技术,熟悉DOM操作、事件处理、AJAX数据交互以及模块化开发等技术,同时也需要了解一些最新的ES6+语法和特性来保持开发的效率和质量。 在项目架构上,我们可以采用模块化的开发方式,将不同功能模块拆分成独立的文件,利用ES6模块化的特性进行管理和引用,使代码结构清晰,便于维护和扩展。同时,可以结合一些现代化的前端工具和构建工具来提升开发效率,比如webpack、babel等。 另外,对于管理后台系统而言,数据的处理和展示是一个关键的部分。我们可以通过原生JS来进行数据的请求和处理,并且利用JavaScript操作DOM来实现页面的展示和交互。同时,还可以通过一些通用的UI组件或者自定义组件来提高用户体验。 总的来说,原生JS开发管理后台需要对JavaScript语言有深入的了解和掌握,同时需要有良好的架构设计和开发规范,这样才能保证项目的质量和可维护性,并且更好地满足项目的需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值