前端 _ jQuery 之 小白版 ( 中 )

4 篇文章 0 订阅

目录

1 . jQuery 操作元素内容 :

2 . jQuery 获取元素尺寸 :

3 . jQuery 获取元素偏移量 :

4 . jQuery 操作元素节点 : 

4-1.创建节点

4-2.插入节点

4-3.删除节点

4-4.替换节点  

4-5.克隆节点

5 . jQuery 的动画函数 :

5-1. jQuery 的基础动画

5-2. jQuery 的折叠动画

5-3. jQuery 的渐隐渐显动画

5-4. jQuery 的综合动画

5-5. jQuery 的停止动画

jQuery 简图 : ( 中 ) 


1 . jQuery 操作元素内容 :

<div>
  hello
  <p>你好 世界</p>
  world
</div>

<input type="text">

<script src="./jquery/jquery.min.js"></script>

1. html( )

+ 等价于原生 js 的 innerHTML

  1-1. html 获取 :

    => 语法: 元素集合.html( )

    => 返回值: 该元素内的所有 内容, 以字符串的形式返回给你

  1-2. html 设置 :

    => 语法: 元素集合.html('内容')

    => 注意: 完全覆盖式的设置元素内的所有内容

// 1-1. html() 获取
console.log($('div').html())
// 1-2. html() 设置
$('div').html('<h1>你好 世界</h1>')

2. text( )

+ 等价于原生 js 的 innerText

  2-1. text 获取 :

    => 语法: 元素集合.text( )

    => 返回值: 该元素内的所有 文本内容, 以字符串的形式返回给你

  2-2. text 设置 :

    => 语法: 元素集合.text('文本内容')

    => 注意: 完全覆盖式的设置元素内的所有内容

// 2-1. text 获取
console.log($('div').text())
// 2-2. text 设置
$('div').text('<h1>你好 世界</h1>')

3. val( )

+ 等价于原生 js 的 value

  3-1. val 获取 :

    => 语法: 元素集合.val( )

    => 返回值: 该表单元素的 value 值

  3-2. val 设置 :

    => 语法: 元素集合.val('内容')

    => 注意: 完全覆盖式的设置元素内的 value 值

// 3-1. val 获取
console.log($('input').val())
// 3-2. val 设置
$('input').val('hello world')
console.log($('input').val())


2 . jQuery 获取元素尺寸 :

+ 获取元素占地面积
+ 原生 JS 如何获取元素尺寸
  => offsetWidth 和 offsetHeight: 内容 + padding + border
  => clientWidth 和 clientHeight: 内容 + padding

<div></div>
<script src="./jquery/jquery.min.js"></script>
* {
  margin: 0;
  padding: 0;
}

div {
  width: 200px;
  height: 200px;
  padding: 20px;
  border: 20px solid pink;
  background-color: skyblue;
  background-clip: content-box;
  margin: 20px;
  /* box-sizing: border-box; */
  /* display: none; */
}

1. width( ) 和 height( )

  + 语法:

    => 元素集合.width( )

    => 元素集合.height( )

  + 作用: 获取元素 内容 区域的尺寸

2. innerWidth( ) 和 innerHeight( )

  + 语法:

    => 元素集合.innerWidth( )

    => 元素集合.innerHeight( )

  + 作用: 获取元素 内容 + padding 区域的尺寸

3. outerWidth( ) 和 outerHeight( )

  + 语法:

    => 元素集合.outerWidth( )

    => 元素集合.outerHeight( )

  + 作用: 获取元素 内容 + padding + border 区域的尺寸

4. outerWidth(true) 和 outerHeight(true)

  + 语法:

    => 元素集合.outerWidth(true)

    => 元素集合.outerHeight(true)

  + 作用: 获取元素 内容 + padding + border + margin 区域的尺寸

// 1. width() 和 height()
console.log('宽度 : ', $('div').width())
console.log('高度 : ', $('div').height())
console.log('----------------------------')
// 2. innerWidth() 和 innerHeight()
console.log('宽度 : ', $('div').innerWidth())
console.log('高度 : ', $('div').innerHeight())
console.log('----------------------------')
// 3. outerWidth() 和 outerHeight()
console.log('宽度 : ', $('div').outerWidth())
console.log('高度 : ', $('div').outerHeight())
console.log('----------------------------')
// 4. outerWidth(true) 和 outerHeight(true)
console.log('宽度 : ', $('div').outerWidth(true))
console.log('高度 : ', $('div').outerHeight(true))


3 . jQuery 获取元素偏移量 :

1. offset( )

        => 语法: 元素集合.offset( )

        => 作用: 获取元素相对于文档流左上角的绝对坐标位置

        => 返回值: 是一个对象数据类型 { top: xxx, left: xxx }

        => 注意: 参考位置就是页面左上角

        => offset( )设置语法: 元素集合.offset({ top: xxx, left: xxx })

        => 注意: 设置元素相对于页面左上角的绝对位置

      2. position( )

        => 是一个只读的方法

        => 只能获取不能设置

        => 语法: 元素集合.position( )

        => 返回值: 就是获取元素的定位位置关系, 是一个对象数据结构 { left: xxx, top: xxx }

        => 元素的 定位位置关系, 当你的定位书写的是 right 或者 bottom 的时候, 

会自动换算成 left 和 top

 console.log($('p').position( )) 

* {
  margin: 0;
  padding: 0;
}
div {
  width: 500px;
  height: 500px;
  background-color: skyblue;
  margin: 50px;
  padding: 10px;
  position: relative;
}
p {
  width: 200px;
  height: 200px;
  background-color: pink;
  margin: 30px;
  position: absolute;
  right: 30px;
  bottom: 30px;
}
<div>
  <p></p>
</div>
<script src="./jquery/jquery.min.js"></script>
// 1. offset()
console.log($('p').offset())
// 1-2. offset() 设置
// 不管你的 p 在什么位置, 不管是否有定位
// 绝对把 p 设置在距离页面左上角 10 10 的位置
$('p').offset({ top: 10, left: 10 })
// 小练习
// 注意: 当你需要给父子级设置 offset 的时候, 考虑先移动谁
$('p').offset({ left: 10, top: 10 })
$('div').offset({ left: 300, top: 300 })


4 . jQuery 操作元素节点 : 

<div>
  <p>我是 div 内部本身的 p 标签</p>
  <span>我是 div 内部的 span 标签</span>
</div>

<script src="./jquery/jquery.min.js"></script>

4-1.创建节点

 语法 => $('html 结构字符串')

// 1. 创建一个 div 标签
console.log($('<div></div>'))

4-2.插入节点

内部插入 - 父子级关系的插入

  1. append( )

    => 语法: 父节点.append(子节点)

    => 作用: 把该子节点插入到父节点内部, 并且排列在最后的位置

  2. appendTo( )

    => 语法: 子节点.appendTo(父节点)

    => 作用: 把该子节点插入到父节点内部, 并且排列在最后的位置

  3. prepend( )

    => 语法: 父节点.prepend(子节点)

    => 作用: 把该子节点插入到父节点内部, 并且排列在最前的位置

  4. prependTo( )

    => 语法: 子节点.prependTo(父节点)

    => 作用: 把该子节点插入到父节点内部, 并且排列在最前的位置

外部插入 - 兄弟级关系的插入

  5. insertBefore( )

    => 语法: 插入节点.insertBefore(已知节点)

    => 作用: 把 插入节点 放在 已知节点 的上一个兄弟元素的位置

  6. before( )

    => 语法: 已知节点.before(插入节点)

    => 作用: 把 插入节点 放在 已知节点 的上一个兄弟元素的位置

  7. insertAfter( )

    => 语法: 插入节点.insertAfter(已知节点)

    => 作用: 把 插入节点 放在 已知节点 的下一个兄弟元素的位置

  8. after( )

    => 语法: 已知节点.after(插入节点)

    => 作用: 把 插入节点 放在 已知节点 的下一个兄弟元素的位置

// 0. 创建一个节点
const box = $('<h1>我是创建的一个 h1 标签</h1>')
// 1. append()
$('div').append(box)
// 2. appendTo()
box.appendTo($('div'))
// 3. prepend()
$('div').prepend(box)
// 4. prependTo()
box.prependTo($('div'))
// 5. insertBefore()
box.insertBefore($('div'))
// 6. before()
$('div').before(box)
// 7. insertAfter()
box.insertAfter($('div'))
// 8. after()
$('div').after(box)

4-3.删除节点

1. remove( )

  => 语法: 元素集合.remove( )

  => 作用: 把自己删除

2. empty( )

  => 语法: 元素集合.empty( )

  => 作用: 把自己变成空标签(删除所有后代元素)

// 1. remove()
$('div').remove()
// 2. empty()
$('div').empty()

4-4.替换节点  

1. replaceAll( )

  + 语法: 换上节点.replaceAll(换下节点)

  + 作用: 把所有换下节点全部替换成换上节点

2. replaceWith( )

  + 语法: 换下节点.replaceWith(换上节点)

  + 注意: 换下节点位置能获取到多少个元素就替换多少个

// 0. 准备一个节点
const box = $('<h1>我是一个创建出来的 h1 标签</h1>')
// 1. replaceAll()
box.replaceAll($('p'))
// 2. replaceWith()
$('p').replaceWith(box)

4-5.克隆节点

+ 语法: 元素集合.clone( )

+ 作用: 把该节点克隆一份一模一样的

    => 参数1: 表示是否克隆该元素自己本身的 事件, 默认是 false

    => 参数2: 表示是否克隆该元素的后代元素身上的事件, 默认是 跟随第一个 

+ 注意 : 1. 必然克隆后代节点

          2. 当你传递第二个参数的时候, 如果第一个参数是 false, 那么第二个参数没有意义

=> true true

  => false false

  => true false

            => false true 这个时候是没有意义的

<div>
  <button>按钮</button>
</div>
<hr>
<script src="./jquery/jquery.min.js"></script>
// 给 div 添加一个点击事件
$('div').click(() => console.log('div 的事件'))
// 给 button 添加一个点击事件
$('button').click(() => console.log('button 的事件'))
// 表示克隆 div 自己本身的事件
$('div').clone(true).insertAfter($('hr'))
// 表示克隆 div 和 后代元素的事件
$('div').clone(true, true).insertAfter($('hr'))
// 表示克隆 div 的事件, 不克隆 后代元素的事件
$('div').clone(true, false).insertAfter($('hr'))
// 这表示 div 和后代元素的事件都不克隆, 因为第一个参数是 false, 第二个没有意义了
$('div').clone(false, true).insertAfter($('hr'))


5 . jQuery 的动画函数 :

5-1. jQuery 的基础动画

<button>显示</button>
<button>隐藏</button>
<button>切换</button>
<style>
* {
  margin: 0;
  padding: 0;
}
div {
  width: 300px;
  height: 300px;
  background-color: pink;
}
</style>
<div></div>
<script src="./jquery/jquery.min.js"></script>

1. show( ) - 显示

2. hide( ) - 隐藏

3. toggle( ) - 切换显示和隐藏

语法:

=> 元素集合.方法名(时间, 运动曲线, 运动结束的函数)

以上三个方法的参数

  => 参数1: 运动时间, 单位是 ms

  => 参数2: 运动曲线

  => 参数3: 运动结束的回调函数

// 1. show() - 显示
$('button:first').click(() => {
  $('div').show(500, 'linear', () => console.log('显示结束了'))
})
// 2. hide() - 隐藏
$('button').eq(1).click(() => {
  $('div').hide(500, 'linear', () => console.log('隐藏结束了'))
})
// 3. toggle() - 切换
$('button:last').click(() => {
  $('div').toggle(500, 'linear', () => console.log('切换结束了'))
})

5-2. jQuery 的折叠动画

<button>显示</button>
<button>隐藏</button>
<button>切换</button>
<style>
* {
  margin: 0;
  padding: 0;
}
div.inner {
  width: 300px;
  height: 300px;
  background-color: pink;
  position: absolute;
  left: 0;
  bottom: 0;
}
div.outer {
  width: 300px;
  height: 300px;
  position: relative;
}
</style>
<div class="outer">
<div class="inner"></div>
</div>
<script src="./jquery/jquery.min.js"></script>

1. slideDown( ) - 下拉显示

      2. slideUp( ) - 上拉隐藏

      3. slideToggle( ) - 切换显示和隐藏

语法:

        => 元素集合.方法名(时间, 运动曲线, 运动结束的函数)

      以上三个方法的参数

        => 参数1: 运动时间, 单位是 ms

        => 参数2: 运动曲线

        => 参数3: 运动结束的回调函数

// 1. show() - 显示
$('button:first').click(() => {
  $('div.inner').slideDown(500, 'linear', () => { console.log('显示结束') })
})
// 2. hide() - 隐藏
$('button:eq(1)').click(() => {
  $('div.inner').slideUp(500, 'linear', () => { console.log('隐藏结束') })
})
// 3. toggle() - 切换
$('button:last').click(() => {
  $('div.inner').slideToggle(500, 'linear', () => { console.log('切换结束') })
})

5-3. jQuery 的渐隐渐显动画

<button>显示</button>
<button>隐藏</button>
<button>切换</button>
<button>指定</button>
<style>
* {
  margin: 0;
  padding: 0;
}
div {
  width: 300px;
  height: 300px;
  background-color: pink;
}
</style>
<div></div>
<script src="./jquery/jquery.min.js"></script>

1. fadeIn( ) - 渐显

2. fadeOut( ) - 渐隐

3. fadeToggle( ) - 渐渐的切换

语法:

  => 元素集合.方法名(时间, 运动曲线, 运动结束的函数)

以上三个方法的参数

  => 参数1: 运动时间, 单位是 ms

  => 参数2: 运动曲线

  => 参数3: 运动结束的回调函数

4. fadeTo( )

=> 去到指定的透明度

    => 语法: fadeTo(时间, 指定透明度, 运动曲线, 运动结束的函数)

  => 参数1: 运动时间, 单位是 ms

  => 参数2: 指定 透明度

  => 参数3: 运动曲线

  => 参数4: 运动结束的回调函数

// 1. show() - 渐显
$('button:first').click(() => {
  $('div').fadeIn(1000, 'linear',() => console.log('显示结束'))
})
// 2. hide() - 渐隐
$('button:eq(1)').click(() => {
  $('div').fadeOut(1000, 'linear',() => console.log('隐藏结束'))
})
// 3. toggle() - 切换
$('button:eq(2)').click(() => {
  $('div').fadeToggle(1000, 'linear',() => console.log('切换结束'))
})
// 4. fadeTo() - 透明
$('button:last').click(() => {
  $('div').fadeTo(1000, 0.5, 'linear',() => console.log('运动结束'))
})

5-4. jQuery 的综合动画

animate( )

          => 语法: 元素集合.animate(对象, 时间, 运动曲线, 运动结束的函数)

          => 对象: 你需要运动的所有的样式

+ 什么样式都能运动

        + 但是 颜色不行, 2D和3D 变化不行, transform 相关的样式不行

=> 参数1: 对象数据类型, 你要运动的样式

          => 参数2: 运动时间, 单位是 ms

          => 参数3: 运动曲线

          => 参数4: 运动结束的回调函数

<button>切换</button>
<button>停止</button>
<button>完成</button>
<style>
div {
  width: 200px;
  height: 200px;
  background-color: pink;
  position: fixed;
}
</style>
<div></div>
<script src="./jquery/jquery.min.js"></script>
$('button').click(() => {
  // 使用 animate 函数来运动 div
  $('div').animate({
	width: 500,
	height: 300,
	opacity: 0.7,
	borderRadius: '50%',
	left: 100,
	top: 100
  }, 1000)
})

5-5. jQuery 的停止动画

jQuery 提供运动结束的函数

+ stop( )
  => 语法: 元素集合.stop( )
  => 作用: 当这句代码执行的时候,马上停止元素集合内所有元素的当前动画
  => 不管动画运动到什么阶段 , 运动到什么位置就停止在什么位置
+ finish( )
  => 语法: 元素集合.finish( )
  => 作用: 当这句代码执行的时候,马上停止元素集合内所有元素的当前动画
  => 不管动画运动到什么位置, 直接去到动画结束位置

用法:

        + 当你需要给一个元素添加动画的时候

        + 都会在前面先书写一次 stop 或者 finish

$('button:first').click(() => {
  // 让 div 切换显示和隐藏
  $('div').stop().slideToggle(1000)
  // $('div').finish().slideToggle(1000)
})
// stop()
$('button:eq(1)').click(() => {
  // 这个代码一旦执行, div 的运动马上停止
  $('div').stop()
})
// finish()
$('button:eq(2)').click(() => {
  // 这个代码一旦执行, div 的运动马上完成
  $('div').finish()
})


jQuery 简图 : ( 中 ) 

总结一下 : $( ) 的作用
        + $('选择器') : 获取页面元素
        + $(DOM 元素) : 把 DOM 元素转换成  jquery 元素集合
        + $('html格式字符串') : 创建节点


前端 _ jQuery 之 小白版 ( 上 ) : https://blog.csdn.net/weixin_58099903/article/details/119208398

前端 _ jQuery 之 小白版 ( 下 ) : https://blog.csdn.net/weixin_58099903/article/details/119272571

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值