进阶14 jQuery 基础

题目1: jQuery 能做什么?

  • 选择网页元素
  • 改变结果集
  • 元素的操作:取值和赋值
  • 元素的操作:移动
  • 元素的操作:复制、删除和创建
  • 工具方法
  • 事件操作
  • 特殊效果
  • AJAX

题目2: jQuery 对象和 DOM 原生对象有什么区别?如何转化?

jQuery对象为类数组对象,只能使用jQuery对象的方法和API,不能使用DOM原生对象的方法
同理 DOM原声对象只能使用原生对象的方法和API,不能使用jQuery对象的API

$('selector')[i] 加了[i]之后 变成dom原生对象

$(document.querySelector('selector')) 用$()包括之后 dom对象变为jquery对象

题目3:jQuery中如何绑定事件?bind、unbind、delegate、live、on、off都有什么作用?推荐使用哪种?使用on绑定事件使用事件代理的写法?

绑定事件

$('selector').on('event','selector',data,function(){})

  • events:一个或多个空格分隔的事件类型和可选的命名空间,或仅仅是命名空间,比如"click", "click.hello",其中'.hello'是给click事件的event namespaces(命名空间),方便简化删除或触发事件
  • selector:一个选择器字符串,用于过滤出被选中的元素中能触发事件的后代元素。如果选择器是 null 或者忽略了该选择器,那么被选中的元素总是能触发事件,多用于事件代理
  • data:当一个事件被触发时,要传递给事件处理函数的event.data
  • function:事件被触发时,执行的函数。若该函数只是要执行return false的话,那么该参数位置可以直接简写成 false

以下事件绑定的作用

  • bind()
    为一个元素绑定一个事件处理程序,在jQuery 3.0中,.bind()已被标记为弃用。从jQuery 1.7开始,.on() 方法是将事件处理程序绑定到文档(document)的首选方法。

  • unbind()
    从元素上删除一个以前附加事件处理程序。在jQuery 3.0中,.unbind()已被标记为弃用。从jQuery 1.7开始,它已经被.off()方法取代。所以我们不建议使用该方法。

  • delegate()
    为所有匹配选择器(selector参数)的元素绑定一个或多个事件处理函数,基于一个指定的根元素的子集,匹配的元素包括那些目前已经匹配到的元素,也包括那些今后可能匹配到的元素。
    在jQuery 3.0中,.delegate()已被标记为弃用。从jQuery1.7开始,它已经被.on()方法取代。所以我们不建议使用该方法。但是,对于早期版本,它仍然是使用事件代理(委派)最有效的方式。

  • live()
    附加一个事件处理器到匹配目前选择器的所有元素,包括现有的匹配的以及将来添加的匹配的元素,这个方法提供了一种手段,将委托的事件处理程序附加到一个页面的document元素,从而简化了在页面上动态添加的内容上事件处理的使用。
    从jQuery1.7开始, .live() 方法已经过时了。请使用.on()附加事件处理程序。 旧版本的jQuery中用户,应优先使用.delegate()来取代.live()。

  • on()
    在选定的元素上绑定一个或多个事件处理函数,在jQuery 1.7中,.on()方法 提供绑定事件处理的所有功能。

  • off()
    移除一个事件处理函数。off() 方法移除用.on()绑定的事件处理程序。

推荐使用哪种?

对于jQuery1.7之后,推荐使用.on() .off()进行绑定或解绑事件

使用on绑定事件使用事件代理的写法

$('selector').on('event','selector',data,function(){})

如果省略selector或者是null,那么事件处理程序被称为直接事件 或者 直接绑定事件 。每次选中的元素触发事件时,就会执行处理程序,不管它直接绑定在元素上,还是从后代(内部)元素冒泡到该元素的

当提供selector参数时,事件处理程序是指为委派 事件(愚人码头注:通常也有很多人叫它代理事件)。事件不会在直接绑定的元素上触发,但当selector参数选择器匹配到后代(内部元素)的时候,事件处理函数才会被触发。jQuery 会从 event target 开始向上层元素(例如,由最内层元素到最外层元素)开始冒泡,并且在传播路径上所有绑定了相同事件的元素若满足匹配的选择器,那么这些元素上的事件也会被触发。

题目4:jQuery 如何展示/隐藏元素?

隐藏元素

$('selector').hide(duration, easing, complete)

  • duration:动画持续多久
  • easing:表示过渡使用哪种缓动函数,jQuery自身提供"linear" 和 "swing"
  • complete:在动画完成时执行的函数

展示元素

$('selector').show(duration, easing, complete)
用法与隐藏元素相似

题目5: jQuery 动画如何使用?

基础动画

  • .hide([duration],[easing],[complete] )
    用于隐藏元素,没有参数的时候等同于直接设置display属性为none
    duration: Type: Number or String,一个字符串或者数字决定动画将运行多久,默认值: "normal", 三种预定速度的字符串("slow", "normal", 或 "fast")或表示动画时长的毫秒数值(如:1000)
    easing: Type: String,一个字符串,表示过渡使用哪种缓动函数。jQuery自身提供"linear" 和 "swing",其他效果可以使用jQuery Easing Plugin插件

  • .show([duration],[easing],[complete] )
    显示匹配元素,与.hide()方法类似

  • .toggle([duration],[complete] )
    显示或隐藏匹配元素。用法与.hide()相似

自定义动画

  • .animate( properties [, duration ] [, easing ] [, complete ] )
    properties: 类型: PlainObject,一个CSS属性和值的对象,动画将根据这组对象移动。
    duration (默认: 400): 类型: Number or String,一个字符串或者数字决定动画将运行多久。(愚人码头注:默认值: "normal", 三种预定速度的字符串("slow", "normal", 或 "fast")或表示动画时长的毫秒数值(如:1000) )
    easing (默认: swing):类型: String,一个字符串,表示过渡使用哪种缓动函数。(译者注:jQuery自身提供"linear" 和 "swing")
    complete:类型: Function(),在动画完成时执行的函数。

  • .finish()
    停止当前正在运行的动画,删除所有排队的动画,并完成匹配元素所有的动画。
    当.finish()在一个元素上被调用,立即停止当前正在运行的动画和所有排队的动画(如果有的话),并且他们的CSS属性设置为它们的目标值(愚人码头注:就是所有动画的目标值)。所有排队的动画将被删除。

  • .stop()
    停止匹配元素当前正在运行的动画。

当一个元素调用.stop(),当前正在运行的动画(如果有的话)立即停止。如果,例如,一个元素用.slideUp()隐藏的时候,调用.stop(),该元素依然会有一部分是处于显示状态的。由于元素上的动画尚未执行完成,所以动画完成时执行的回调函数是不会被调用的。

如果同一元素调用多个动画方法,尚未被执行的动画被放置在元素的效果队列中。这些动画不会开始,直到第一个完成。当调用.stop()的时候,队列中的下一个动画立即开始。如果clearQueue参数提供true值,那么在队列中的动画其余被删除并永远不会运行。

渐变动画

  • .fadeIn( [duration ][,easing] [, complete ] )
    通过淡入的方式显示匹配元素。
    duration (默认: 400): 类型: Number or String, 一个字符串或者数字决定动画将运行多久。
    easing (默认: swing):类型: String,一个字符串,表示过渡使用哪种缓动函数。(译者注:jQuery自身提供"linear" 和 "swing")
    complete:类型: Function(),在动画完成时执行的函数。

  • .fadeOut( [duration ] [,easing] [, complete ] )
    通过淡出的方式隐藏匹配元素。
    duration (默认: 400): 类型: Number or String, 一个字符串或者数字决定动画将运行多久。
    easing (默认: swing):类型: String,一个字符串,表示过渡使用哪种缓动函数。(译者注:jQuery自身提供"linear" 和 "swing")
    complete:类型: Function(),在动画完成时执行的函数。

  • .fadeTo( duration, opacity [,easing] [, complete ] )
    调整匹配元素的透明度
    duration (默认: 400): 类型: Number or String, 一个字符串或者数字决定动画将运行多久。
    easing (默认: swing):类型: String,一个字符串,表示过渡使用哪种缓动函数。(译者注:jQuery自身提供"linear" 和 "swing")
    opacity: 类型: Number, 0和1之间的数字表示目标元素的不透明度。
    complete:类型: Function(),在动画完成时执行的函数。

  • .fadeToggle( [duration ] [, easing ] [, complete ] )
    通过匹配的元素的不透明度动画,来显示或隐藏它们。
    duration (默认: 400): 类型: Number or String, 一个字符串或者数字决定动画将运行多久。
    easing (默认: swing):类型: String,一个字符串,表示过渡使用哪种缓动函数。(译者注:jQuery自身提供"linear" 和 "swing")
    complete:类型: Function(),在动画完成时执行的函数。

滑动

  • .slideDown( [duration ] [, easing ] [, complete ] )
    用滑动动画显示一个匹配元素,方法将给匹配元素的高度的动画,这会导致页面的下面部分滑下去,弥补了显示的方式
    duration (默认: 400): 类型: Number or String, 一个字符串或者数字决定动画将运行多久。
    easing (默认: swing):类型: String,一个字符串,表示过渡使用哪种缓动函数。(译者注:jQuery自身提供"linear" 和 "swing")
    complete:类型: Function(),在动画完成时执行的函数。

  • .slideUp( [duration ] [, easing ] [, complete ] )
    用滑动动画隐藏一个匹配元素,方法将给匹配元素的高度的动画,这会导致页面的下面部分滑上去,当一个隐藏动画后,高度值达到0的时候,display 样式属性被设置为none,以确保该元素不再影响页面布局。
    duration (默认: 400): 类型: Number or String, 一个字符串或者数字决定动画将运行多久。
    easing (默认: swing):类型: String,一个字符串,表示过渡使用哪种缓动函数。(译者注:jQuery自身提供"linear" 和 "swing")
    complete:类型: Function(),在动画完成时执行的函数

  • .slideToggle( [duration ] [, easing ] [, complete ] )
    用滑动动画显示或隐藏一个匹配元素,方法将给匹配元素的高度的动画,这会导致页面中,在这个元素下面的内容往下或往上滑。display属性值保存在jQuery的数据缓存中,所以display可以方便以后可以恢复到其初始值。
    如果一个元素的display属性值为inline,然后是隐藏和显示,这个元素将再次显示inline。当一个隐藏动画后,高度值达到0的时候,display 样式属性被设置为none,以确保该元素不再影响页面布局。
    duration (默认: 400): 类型: Number or String, 一个字符串或者数字决定动画将运行多久。
    easing (默认: swing):类型: String,一个字符串,表示过渡使用哪种缓动函数。(译者注:jQuery自身提供"linear" 和 "swing")
    complete:类型: Function(),在动画完成时执行的函数

题目6:如何设置和获取元素内部 HTML 内容?如何设置和获取元素内部文本?

$('selector').html() 不传参,获取元素内部HTML
$('selector').html('innerHtml') 传参,设置元素内部HTML

$('selector').text() 不传参,获取元素内部HTML
$('selector').text('innerHtml') 传参,设置元素内部HTML

题目7:如何设置和获取表单用户输入或者选择的内容?如何设置和获取元素属性?

$('selector').val() 不传参,获取用户输入或者选择的内容
$('selector').val('inputValue') 传参,输入或者选择的内容

$('selector').attr('attribute') 获取元素属性的值
$('selector').attr('attribute','value') 将元素属性的值设置为bbb

题目8: 使用 jQuery实现如下效果

题目8链接

题目9:. 使用 jQuery 实现如下效果

题目9链接

题目10:实现如下效果

题目10链接

题目11: 模仿视频6,完成 左右切换的 Tab 效果

题目11链接
请老师帮我看看题目11动画为什么不连续,谢谢

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,033评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,725评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,473评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,846评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,848评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,691评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,053评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,700评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,856评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,676评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,787评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,430评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,034评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,990评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,218评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,174评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,526评论 2 343

推荐阅读更多精彩内容

  • 1、 jQuery 能做什么? jquery是一个丰富的js库,内部对js的很多复杂的方法进行了封装和加工,比如j...
    zh_yang阅读 1,400评论 6 13
  • 题目1: jQuery 能做什么? jQuery的核心功能主要有下列几个: 方便快捷获取DOM元素: 如果使用纯J...
    进击的前端_风笑影阅读 461评论 0 0
  • 题目1:jQuery 能做什么? jQuery是一个丰富的js库, 内部对js的很多复杂的方法进行了封装和加工, ...
    cctosuper阅读 234评论 0 0
  • (续jQuery基础(2)) 四、动画篇 第1章 动画基础隐藏和显示 (1)隐藏元素的hide方法 让页面上的元素...
    凛0_0阅读 455评论 0 6
  • My SubmissionsDifficulty: EasyContributors: Admin Calcula...
    番茄晓蛋阅读 189评论 0 1