attr(),css(),width(),height(),offset(),position()的完整用法
一、attr()
知识点: 读取器,设置器
1. 有一些函数,可以根据参数的数量不同,执行不同的功能,返回不同的值,类似于功能重载
2. 传入一个参数,执行读取操作getter,返回该参数的当前值,叫:读取器/获取器
3. 传入二个参数,执行赋值操作setter,修改当前参数的值,叫:设置器/修改器
4. 这种根据参数个数决定执行操作类型的方法,在jQuery中非常多,大家要留意
5.attr():元素属性的获取与设置,必须传参
6.单参数为获取:当前属性的值
7.双参数为获取,第一个是属性名,第二个是要设置的新值
8. 由此可见,attr()是典型的集读取器与设置器二合一的方法
实例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>属性与自定义属性操作:attr()</title>
</head>
<body>
<img src="../images/zly.jpg" width="200" alt="美女" title="明星" id="pic" data-nation="中国">
</body>
</html>
<script type="text/javascript" src="../js/jquery-3.3.1.js"></script>
<script type="text/javascript">
var res = $('img').attr()
//单参数为获取:当前属性的值
var res = $('#pic').attr('src')
//双参数为获取,第一个是属性名,第二个是要设置的新值
$('#pic').attr('src', '../images/gyy.jpg')
$('#pic').attr('style', 'border-radius: 50%;box-shadow:2px 2px 2px #888')
// 由此可见,attr()是典型的集读取器与设置器二合一的方法
//attr()可以获取到元素的自定义属性
//html5中,可以通过data-前缀给标签添加用户自定义属性
var res = $('#pic').attr('data-nation')
//attr()的属性值,还支持回调函数
$('#pic').attr('width', function(){return 100+50})
//注意: 回调返回的数值类型,会自动转为字符类型再赋值给width属性
var res = $('#pic').attr('width')
//在控制台查看运行结果
console.log(res)
</script>点击 "运行实例" 按钮查看在线实例
二、css()方法及width(),height(),offset(),position()
知识点:
1、css()方法与attr()方法很相似,也是自带读到与设置特征
根据参数数量确定要执行的操作,一个参数是读取,二个参数是设置
功能相当于读到或设置当前元素的style属性的值,其实就是内联样式
2、 设置样式 css(name,value)
3、读取样式 css(name),返回的都是字符串类型,因为返回的是字符串,所以对于宽高等数据,如果要计算,就必须先转为数值型
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>设置内联样式css()</title>
<style type="text/css">
.box1 {
width: 300px;
height: 300px;
background-color: wheat;
position: relative;
}
.box2 {
width: 100px;
height: 100px;
background-color: coral;
position: absolute;
top: 50px;
left: 100px;
}
</style>
</head>
<body>
<img src="../images/jsy.jpg">
<div class="box1">
<div class="box2"></div>
</div>
</body>
</html>
<script type="text/javascript" src="../js/jquery-3.3.1.js"></script>
<script type="text/javascript">
//css()方法与attr()方法很相似,也是自带读到与设置特征
//根据参数数量确定要执行的操作,一个参数是读取,二个参数是设置
//功能相当于读到或设置当前元素的style属性的值,其实就是内联样式
//1.设置样式 css(name,value)
var res = $('img').css('width',200)
var res = $('img').css('border-radius', '10%')
var res = $('img').css('box-shadow', '3px 3px 3px #888')
var res = $('img').css({
'width': '200',
'border-radius': '10%',
'box-shadow': '3px 3px 3px #888'
})
//2.读取样式 css(name),返回的都是字符串类型
var res = $('img').css('box-shadow')
var res = $('img').css('width')
//因为返回的是字符串,所以对于宽高等数据,如果要计算,就必须先转为数值型
var res = parseInt($('img').css('width'), 10) //200
res += 50
var res = $('img').css('width',res+'px')
//可以看出这样的操作是很麻烦的,但是宽高计算又使用的非常频繁
//所以jquery针对宽高样式有二个专用方法: width()和height()
//3.width()和height()方法
//将图片宽高设置为200,单位默认为px
var res = $('img').width(200)
var res = $('img').width('200')
var res = $('img').width('200px')
var res = $('img').width('200pt')
//等价于:
var res = $('img').css('width',200)
//设置宽高就更简单了,支持运算符的简写
var res = $('img').width('+=100')
var res = $('img').width() //300
//等价于:
var res = $('img').css('width','+=50')
var res = $('img').width() //250
//height()高度方法,用法与width()完全一致,请大家自行测试
// 除了宽高之年,获取元素当前的位置也是经常要用到的操作,jquery也定义了快捷方法
//4.获取元素的位置:offset(),返回的是一个对象
var res = $('img').offset()
//查询距离左边和顶部的偏移量
var res = $('img').offset().left
var res = $('img').offset().top
//可以看到这个操作反映的是元素在普通文档流的位置
//如果元素采用了绝对定位,那么如何查看它在父级区块中的偏移量呢?
//5.查看绝对定位元素的偏移量: position()
var res = $('.box2').position().left
var res = $('.box2').position().top
//offset()和position()方法仅适用于页面中的可视元素,并且仅能获取,不能设置
//类似的还有scrollLeft()返回水平滚动条位置,scrollTop()返回垂直滚动条的位置,大家自行测试
//控制台查看结果
console.log(res)
</script>点击 "运行实例" 按钮查看在线实例
手抄css()图:

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号