首页 > 其他分享 >jQuery进阶

jQuery进阶

时间:2023-01-13 22:44:06浏览次数:54  
标签:jQuery 动画 进阶 元素 content 方法 节点

一、jQuery动画

1.1 jQuery 的显示和隐藏

  • jQuery 中显示方法为 .show(), 隐藏方法为 .hide() 。在无参数的时候,只是硬性的显示内容和隐藏内容

  • 在 .show() 和 .hide() 方法可以传递一个参数,这个参数以毫秒(1000 毫秒等于 1 秒钟)来控 制速度。并且里面富含了匀速变大变小,以及透明度变换

  • 除了直接使用毫秒来控制速度外, jQuery 还提供了三种预设速度参数字符串: slow 、normal 和 fast ,分别对应 600 毫秒、400 毫秒和 200 毫秒,不管是传递毫秒数还是传递预设字符串,如果不小心传递错误或者传递空字符串。 那么它将采用默认值:400 毫秒

  • 如果需要控制动画的形式,则可以有第二个参数easing。默认有两个效果:"linear"和"swing"。

    其中swing(随着动画的开始变得更加快一些,然后再慢下来。swing是一个常用设置,因此,如果没有指定任何缓动,jQuery会使用swing方法)

  • 使用第三个参数可以书写回调函数

  • jQuery 提供给我们一个显示隐藏的独立的方法 .toggle()

1.2 jQuery的滑动和卷动

  • jQuery 提供了一组改变元素高度的方法 .slideUp() 、 .slideDown() 和 .slideToggle() 。顾名思义,向上收缩(卷动)和向下展开(滑动)。
  • 参数参考show和hide方法

1.3 jQuery的淡入和淡出

  • jQuery 提供了一组改变元素透明度的方法 .fadeIn() 、 .fadeOut() 和 .fadeToggle() 。
  • 参数参考show和hide方法

1.4 jQuery自定义动画

1.4.1 自定义动画的基础使用

  • 在jQuery中,可以使用animate()方法来自定义动画,满足更多复杂多变的要求

  • animate()的语法结构为:animate(params,speed,callback)

    • params:一个包含样式属性及值的映射速度
    • speed:参数,可选
  • callback:在动画完成时执行的函数

  • 累加、累减动画:可以在设置属性的时候,给属性的值为+= 或者 -= 实现累加累减动画

    例如:left:"+=500px"

1.4.2 动画队列

  • 如果想要按照顺序执行动画,只需要把代码按照顺序就可以,
  • 因为animate()方法都是对同一个jQuery对象进行操作,所以也可以改为链式写法
  • 动画效果的执行具有先后顺序,称为"动画队列"
  • 但是除了动画以外,其他的方法不会放到队列中,而是直接执行

1.5 停止动画

1.5.1 停止动画

  • 很多时候需要停止匹配元素正在进行的动画,如果需要在某处停止动画,需要stop()方法
  • stop()方法的语法结构为:stop([clearQueue],[gotoEnd]),参数clearQueuegotoEnd都是可选的参数,为Boolean值(truefalse
    • clearQueue代表是否要清空未执行完的动画队列
    • gotoEnd代表是否直接将正在执行的动画跳转到末状态
  • stop()方法会结束当前正在进行的动画,并立即执行队列中的下一个动画

1.5.2 判断元素是否处于动画状态

  • 当用户在某个元素上执行animate()动画时,就会出现动画积累

  • 使用is(":animated")方法判断是否处于动画状态

  • 解决办法是判断元素是否正在处于动画状态,如果元素不处于动画状态,才会为元素添加新动画

1.5.3 延迟动画

  • 在动画执行过程,如果想对动画进行延迟操作,那么可以使用方法
  • delay()方法允许我们将队列中的函数延迟执行。它既可以推迟动画队列中函数的执行,也可以用于自定义队列

二、元素的样式操作

  • 元素样式操作包括了直接设置 CSS 样式、增加 CSS 类别、类别切换、删除类别这几种操作方法。
  • 还有内外边距和边框尺寸方法
  • 还有位置相关的方法
方法名描述
css(name) 获取某个元素的 CSS 样式
css(name, value) 设置某个元素行内的 CSS 样式
css({name1 : value1, name2 : value2}) 设置某个元素行内多个 CSS 样式
addClass(class) 给某个元素添加一个 CSS 类
removeClass(class) 删除某个元素的一个 CSS 类
toggleClass(class) 来回切换默认样式和指定样式
width() 获取某个元素的长度
width(value) 设置某个元素的长度
height() 获取某个元素的长度
height(value) 设置某个元素的长度
innerWidth() /innerHeight() 获取元素宽度 / 高度,包含内边距 padding
outerWidth() /outerHeight() 获取元素宽度/高度,包含边框 border 和内边距 padding
outerWidth(ture) /outerHeight(true) 同上,且包含外边距
offset() 获取某个元素相对于文档的偏移位置
position() 获取某个元素相对于父元素的偏移位置
scrollTop() / scrollTop(value) 获取/设置垂直滚动条的值
scrollLeft() / scrollTop(value) 获取/设置水平滚动条的值

三、jQuery的DOM操作

3.1 设置内容及属性

方法名描述
html() 获取元素中 HTML 内容
html(value) 设置元素中 HTML 内容
text() 获取元素中文本内容
text(value) 设置元素中文本内容
val() 获取表单中的文本内容
val(value) 设置表单中的文本内容
prop/attr(key) 获取某个元素 key 属性的属性值
prop/attr(key, value) 设置某个元素 key 属性的属性值
prop/attr({key1:value2, key2:value2...}) 设置某个元素多个 key 属性的属性值
removeattr(key) 删除指定的属性

3.2 DOM 操作

3.2.1 创建节点

  • 运用传统的 JavaScript 方法,创建一个 div 元素节点:createElement()
  • jQuery 中创建一个 div 元素节点 $("<div></div>");

3.2.2 创建文本节点

  • 运用传统的 JavaScript 方法,创建div的文本节点createTextNode();
  • jQuery 中创建一个 div 元素节点 $("<div>新创建文本</div>")

3.2.3创建属性节点

  • 运用传统的 JavaScript 方法,创建div的属性节点,我们可以使用setAttribute(name,value)
  • jQuery 中创建div 的属性节点可以使用 attr( )方法,也可以直接写在创建的 div 中

3.2.4 插入节点

方法名描述
append(content) 向指定元素内部后面插入节点 content
appendTo(content) 将指定元素移入到指定元素 content 内部后面
prepend(content) 向指定元素 content 内部的前面插入节点
prependTo(content) 将指定元素移入到指定元素 content 内部前面
after(content) 向指定元素的外部后面插入节点 content
insertAfter(content) 将指定节点移到指定元素 content 外部的后面
before(content) 向指定元素的外部前面插入节点 content
insertBefore(content) 将指定节点移到指定元素 content 外部的前面

3.2.5 删除节点

  • 运用传统的JS方法,使用removeChild来删除一个节点

  • 删除节点 remove() 不带参数时,删除前面对象选择器指定的元素。

    • 而 remove() 本身也可以带选择符参数的

    • 清空节点 empty() 是用来删除掉节点里的内容

3.2.6 替换节点

  • 运用传统的JS方法,使用replaceChild来替换节点
  • jQuery 中使用 replaceAll 的方法替换节点,节点被替换后,所包含的事件行为就全部消失了。

3.2.7复制节点

  • 运用传统的JS方法,使用cloneNode来复制节点

  • jQuery 中使用 clone() 的方法复制节点

    clone(true) 参数可以为空,表示只复制元素和内容,不复制事件行为。而加上 true 参数的话,这个元素附带的事件处理行为也复制出来

标签:jQuery,动画,进阶,元素,content,方法,节点
From: https://www.cnblogs.com/z-bky/p/17050903.html

相关文章

  • C++ 算法进阶系列之从 Brute Force 到 KMP 字符串匹配算法的优化之路
    1.字符串匹配算法所谓字符串匹配算法,简单地说就是在一个目标字符串中查找是否存在另一个模式字符串。如在字符串ABCDEFG中查找是否存在EF字符串。可以把字符串ABCDE......
  • app自动化测试之Capability 使用进阶
    Capability是一组键值对的集合(比如:"platformName":"Android")。Capability主要用于通知Appium服务端建立Session需要的信息。客户端使用特定语言生成Capabilities,最......
  • 12 图像色彩空间转换 - 进阶
    12图像色彩空间转换-进阶opencv知识点:色彩空间转换-cvtColor()提取指定色彩范围区域-inRange()更换图像背景-copyTo的mask用法本课所解决的问题:如何提取......
  • JS-jQuery1
      初始jQueryjQuery是目前最流行的JavaScript插件库,是JavaScript的封装,升级产品。设计宗旨是“WriteLess,DoMore”,即写的少,做的多。提供一种简便的JavaScript设计......
  • JS-jQuery2
      jQuery的DOM操作在JavaScript的基础之上,使用jQuery对节点做的DOM操作 原生JS添加节点  jQuery添加节点.append()在标签内部的末尾添加节点  jQuery......
  • MySQL 进阶篇 Part 2
    ......
  • jquery.liMarquee.js-文字滚动效果
    jquery.liMarquee.js插件:jquery多风格多功能滚动特效代码插件说明:须引入3个文件jquery.js、liMarquee的js和css文件代码:<!DOCTYPEhtml><htmllang="en"><head>......
  • 疑惑解决(2)—js使用与jQuery的src设置问题
    在单独js文件中引用Jquery之前提到过:使用js的方式  学了jquery  今天实际使用发现一个问题:如果我要使用script标签的方式引入js文件,而我又想在js中使用jQuery简......
  • MySQL 进阶篇 Part 1
    ......
  • Netty03:进阶篇,十万字教程附源码!
    本内容为连载第三篇文章目录​​三.Netty进阶​​​​1.粘包与半包​​​​1.1粘包现象​​​​1.2半包现象​​​​1.3现象分析​​​​1.4解决方案​​​​方法1,短......