1.效果一:实现鼠标放在文字上的时候,文字的颜色逐渐发生变化
原理:字体准备颜色不同的两份,然后进行定位来覆盖,实际上就是hover的时候字体的宽度发生变化,并设置transition实现渐变的效果
html:
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.中的
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.背景图分辨率较大时默认是从左侧开始平铺的,如何让分辨率较大的背景图居中?
给背景图所在的元素添加:
left:50%;
例如:
#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轴方向的偏移
rotate(数值deg) 有rotateY()绕y轴旋转,rotateX()绕x轴旋转,顺时旋转为负值,逆时针旋转为正值
14.设置动画的3D属性
15.设置了自定义属性data-src的时候在js里面
dataset.src获取
16.如果多个定位的话一定要注意层级问题