dom操作&& 脚本化CSS

在这里插入图片描述

function getScrollOffset(){
if(window.pageXOffset){
return{
x : window.pageXOffset,
y : window.pageYOffset
}
}else{
return{
x : document.body.scrollLeft + document.documentElement.scrollLeft,
y : document.body.scrollTop + document.documentElement.scrollTop
}
}
} 

在这里插入图片描述

在这里插入图片描述
脚本化CSS
在这里插入图片描述

1,dom.style.prop

可读写行间样式,没有兼容性问题,碰到float这种的保留字属性,前面应加css
eg:dom.style.float---->dom.style.cssFloat
复合属性必须拆解
eg:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
div.style会返回一个样式声明表,并且这个样式表可读可写
在这里插入图片描述
在这里插入图片描述
注意在JS中没有中划线
在这里插入图片描述
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200725163329452.png
在这里插入图片描述

在CSS中是中划线的,改成小驼峰式

但是要注意,这种方法读取不到页面级CSS,只能读或写到行间样式中
在这里插入图片描述
在这里插入图片描述

2,查询计算样式

window.getComputedStyle(div, null)

在这里插入图片描述

获得的是当前元素获得的CSS的显示值

所以对于上面style无法读取的情况,可以使用这种方法
在这里插入图片描述

只读,无法写入

返回的最后计算样式都是绝对值,

在这里插入图片描述

IE8 以及IE8以下不兼容

window.getComputedStyle(div, null)

后面的null是用来获得伪元素的

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3,div.currentStyle

计算样式只读

返回的计算样式的值不是经过转换的值

封装兼容性方法,getStyle(elem, prop);

function getStyle (elem, prop) {
	if(window.getComputedStyle) {
		return window.getComputedStyle(elem, null)[prop];
	}else{
		return elem.currentStyle[prop];
	}
}

实现点击一个方块让他变色
在这里插入图片描述
在这里插入图片描述

对于这种静态的状态改变,可以先把要变成的状态用css写出来,然后改变className,通过这种方法可以增加效率,并且易于维护

让小方块自己移动

在这里插入图片描述

function getStyle (elem, prop) {
	if(window.getComputedStyle) {
		return window.getComputedStyle(elem, null)[prop];
	}else{
		return elem.currentStyle[prop];
	}
}
var div = document.getElementsByTagName('div')[0];
var timer = setInterval(function () {
	div.style.left = parseInt(getStyle(div, 'left')) + 1 + 'px';
	if(parseInt(getStyle(div, 'left')) > 500) {
		clearInterval(timer);
	}
}, 100);
实现滚动条

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值