初入前端小问题(html,css,js部分相关问题)

91 阅读2分钟

1-解决第一次点击或轮播时,没有transition效果

/* left=0解决第一次点击没有轮播效果 
(原因:未设置的话,初始left未知,
点击按钮后相当于给#Photo1-1添加imgList.style.left=-1200*i +"px",
只有修改left属性才会产生transition效果)*/

2-解决a标签跳转链接为空时,取消自动刷新页面

<!-- 一个#会滚到顶部,改成###则不会 -->
<!-- <a href='javascriptL:;'></a> -->

3-解决var声明后,后续的js事件,i不被保存

改成let i;产生块级作用域,此时i存在局部变量的块级作用域i

4-“./”代表当前路径 "../"代表上级目录 "/"代表根目录

5-获取和设置元素的top和left值

第一种方法,比较简单,就是直接通过obj.style.left和obj.style.top,
但是有局限性,这种获取的方法只能获取到行内样式的lefttop的属性值,不能获取到style标签和link 外部引用的lefttop属性值

第二种方法 只读,可以获取所有style样式,存在兼容性问题,在标准浏览器中可以通过window.getComputedStyle(对象,null).left方法来获取元素的lefttop的属性值。而在IE浏览器上则是采用obj.currentStyle.left方法来获取属性值。这两种方式都是只读的。

6-在js中获取元素注意事项

通过let box1=document.getElementsByClassName('box1')  获取的是一个伪数组对象
    注意:类不唯一,可能多个元素使用,所以使用时先确定
    例如只有一个时 
    let box1=document.getElementsByClassName('box1')[0]===let box1=document.getElementById('bb')
通过let box1=document.getElementById('bb')是一个document对象的方法,可以通过它来获得指定id的html元素。

7-解决多个js中,只有最后一个js才生效

1.如果放在head中,则把所有js代码统一放到一个js中(放head中,js内部要写...window.onload()=funciton(){})
2.如果放在body中,则成立(js内部不需要加....window.onload....)
3.使用jquery

8-(===与Object.is(),两种比较两个值是否完全相等的方法)

Object.is()类似于===,
    但是,===不能比较NaNNaN===NaN->false(NaN于任意数值用===比较都为false)
    而Objec.is(NaN,NaN)->true

9-obj[key].obj['key'],obj.key的区别

1.obj[key] : key代表的是循环中的一个(变量)
2.obj['key'] : key代表的是obj的一个属性,obj['key']即代表的是取objkey(属性值)
3.obj.key : 此时obj.key相当于obj['key'],key代表的是obj的一个(属性)