Blogger Information
Blog 26
fans 0
comment 1
visits 20638
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
attr(),css(),width(),height(),offset(),position()的完整用法2018-4-4
木易阳的博客
Original
1106 people have browsed it

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()图:

微信图片_20180408165650.jpg

Correction status:qualified

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post