为了账号安全,请及时绑定邮箱和手机立即绑定
  • 因为动画是异步的,所以要在动画之后执行某些操作就必须要写到回调函数里面,这里要特别注意


    查看全部
  • get方法是通过已知的索引在合集中找到对应的元素。如果反过来,已知元素如何在合集中找到对应的索引呢?

    .index()方法,从匹配的元素中搜索给定元素的索引值,从0开始计数。

    语法:参数接受一个jQuery或者dom对象作为查找的条件

    .index()
    .index( selector )
    .index( element )
    • 如果不传递任何参数给 .index() 方法,则返回值就是jQuery对象中第一个元素相对于它同辈元素的位置

    • 如果在一组元素上调用 .index() ,并且参数是一个DOM元素或jQuery对象, .index() 返回值就是传入的元素相对于原先集合的位置

    • 如果参数是一个选择器, .index() 返回值就是原先元素相对于选择器匹配元素的位置。如果找不到匹配的元素,则 .index() 返回 -1

    简单来说:

    <ul>
        <a></a>
        <li id="test1">1</li>
        <li id="test2">2</li>
        <li id="test3">3</li>
    </ul>

    $("li").index() 没有传递参数,反正的结果是1,它的意思是返回同辈的排列循序,第一个li之前有a元素,同辈元素是a开始为0,所以li的开始索引是1

    如果要快速找到第二个li在列表中的索引,可以通过如下2种方式处理

    $("li").index(document.getElementById("test2")) //结果:1
    $("li").index($("#test2"))  //结果:1
    查看全部
  • jQuery是一个合集对象,如果需要单独操作合集中的的某一个元素,可以通过.get()方法获取到

    以下有3个a元素结构:

    <a>1</a>
    <a>2</a>
    <a>3</a>

    通过jQuery获取所有的a元素合集$("a"),如果想进一步在合集中找到第二2个dom元素单独处理,可以通过get方法

    语法:

    .get( [index ] )

    注意2点

    1. get方法是获取的dom对象,也就是通过document.getElementById获取的对象

    2. get方法是从0开始索引

    所以第二个a元素的查找: $(a).get(1)

    负索引值参数

    get方法还可以从后往前索引,传递一个负索引值,注意的负值的索引起始值是-1

    同样是找到第二元素,可以传递 $(a).get(-2) 

    查看全部
  • 页面中,通过input可以获取用户的输入值,例如常见的登录信息的提交处理。用户的输入不一定是标准的,输入一段密码:'  1123456  ",注意了: 密码的前后会留空,这可能是用户的无心的行为,但是密码确实又没错,针对这样的行为,开发者应该要判断输入值的前后是否有空白符、换行符、制表符这样明显的无意义的输入值。

    jQuery.trim()函数用于去除字符串两端的空白字符

    这个函数很简单,没有多余的参数用法

    需要注意:

    • 移除字符串开始和结尾处的所有换行符,空格(包括连续的空格)和制表符(tab)

    • 如果这些空白字符在字符串中间时,它们将被保留,不会被移除

    查看全部
  • 在PHP有in_array()判断某个元素是否存在数组中,JavaScript却没有,但是jQuery封装了inArray()函数判断元素是否存在数组中。注意了:在ECMAScript5已经有数据的indexOf方法支持了,但是jQuery保持了版本向下兼容,所以封装了一个inArray方法

    jQuery.inArray()函数用于在数组中搜索指定的值,并返回其索引值。如果数组中不存在该值,则返回 -1。

    语法:

    jQuery.inArray( value, array ,[ fromIndex ] )

    用法非常简单,传递一个检测的目标值,然后传递原始的数组,可以通过fromIndex规定查找的起始值,默认数组是0开始

    例如:在数组中查找值是5的索引

    $.inArray(5,[1,2,3,4,5,6,7]) //返回对应的索引:4

    注意:

    如果要判断数组中是否存在指定值,你需要通过该函数
    的返回值不等于(或大于)-1来进行判断
    查看全部
  • jQuery中有个很重要的核心方法each,大部分jQuery方法在内部都会调用each,其主要的原因的就是jQuery的实例是一个元素合集

    如下:找到所有的div,并且都设置样式,css只是一个方法,所以内部会调用each处理这个div的合集,给每个div都设置style属性

    $('div').css(...)

    jQuery的大部分方法都是针元素合集的操作,所以jQuery会提供$(selector).each()来遍历jQuery对象

    .each只是处理jQuery对象的方法,jQuery还提供了一个通用的jQuery.each方法,用来处理对象和数组的遍历

    语法

    jQuery.each(array, callback )
    jQuery.each( object, callback )

    第一个参数传递的就是一个对象或者数组,第二个是回调函数

    $.each(["Aaron", "慕课网"], function(index, value) {
       //index是索引,也就是数组的索引
       //value就是数组中的值了
    });

    each就是for循环方法的一个包装,内部就是通过for遍历数组与对象,通过回调函数返回内部迭代的一些参数,第一个参数是当前迭代成员在对象或数组中的索引值(从0开始计数),第二个参数是当前迭代成员(与this的引用相同

    jQuery.each()函数还会根据每次调用函数callback的返回值来决定后续动作。如果返回值为false,则停止循环(相当于普通循环中的break);如果返回其他任何值,均表示继续执行下一个循环。

    $.each(["Aaron", "慕课网"], function(index, value) {
        return false; //停止迭代
    });

    jQuery方法可以很方便的遍历一个数据,不需要考虑这个数据是对象还是数组

    查看全部
  • 动画在执行过程中是允许被暂停的,当一个元素调用.stop()方法,当前正在运行的动画(如果有的话)立即停止

    语法:

    .stop( [clearQueue ], [ jumpToEnd ] )
    .stop( [queue ], [ clearQueue ] ,[ jumpToEnd ] )

    stop还有几个可选的参数,简单来说可以这3种情况

    • .stop(); 停止当前动画,点击在暂停处继续开始

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

    • .stop(true,true); 当前动画将停止,但该元素上的 CSS 属性会被立刻修改成动画的目标值

    简单的说:参考下面代码、

    $("#aaron").animate({
        height: 300
    }, 5000)
    $("#aaron").animate({
        width: 300
    }, 5000)
    $("#aaron").animate({
        opacity: 0.6
    }, 2000)
    1. stop():只会停止第一个动画,第二个第三个继续

    2. stop(true):停止第一个、第二个和第三个动画

    3. stop(true ture):停止动画,直接跳到第一个动画的最终状态 

    查看全部
  • animate在执行动画中,如果需要观察动画的一些执行情况,或者在动画进行中的某一时刻进行一些其他处理,我们可以通过animate提供的第二种设置语法,传递一个对象参数,可以拿到动画执行状态一些通知

    .animate( properties, options )

    options参数

    • duration - 设置动画执行的时间

    • easing - 规定要使用的 easing 函数,过渡使用哪种缓动函数

    • step:规定每个动画的每一步完成之后要执行的函数

    • progress:每一次动画调用的时候会执行这个回调,就是一个进度的概念

    • complete:动画完成回调

    其中最关键的一点就是:

    如果多个元素执行动画,回调将在每个匹配的元素上执行一次,不是作为整个动画执行一次

    列出常用的方式:

    $('#elem').animate({
        width: 'toggle',  
        height: 'toggle'
      }, {
        duration: 5000,
        specialEasing: {
          width: 'linear',
          height: 'easeOutBounce'
        },
        complete: function() {
          $(this).after('<div>Animation complete.</div>');
        }
      });
    查看全部
  • 有些复杂的动画通过之前学到的几个动画函数是不能够实现,这时候就需要强大的animate方法了

    操作一个元素执行3秒的淡入动画,对比一下2组动画设置的区别

    $(elem).fadeOut(3000)  
    $(elem).animate({   
        opacity:0
    },3000)

    显而易见,animate方法更加灵活了,可以精确的控制样式属性从而执行动画

    语法:

    .animate( properties ,[ duration ], [ easing ], [ complete ] )
    .animate( properties, options )

    .animate()方法允许我们在任意的数值的CSS属性上创建动画。2种语法使用,几乎差不多了,唯一必要的属性就是一组CSS属性键值对。这组属性和用于设置.css()方法的属性键值对类似,除了属性范围做了更多限制。第二个参数开始可以单独传递多个实参也可以合并成一个对象传递了

    参数分解:

    properties:一个或多个css属性的键值对所构成的Object对象。要特别注意所有用于动画的属性必须是数字的,除非另有说明;这些属性如果不是数字的将不能使用基本的jQuery功能。比如常见的,border、margin、padding、width、height、font、left、top、right、bottom、wordSpacing等等这些都是能产生动画效果的。background-color很明显不可以,因为参数是red或者GBG这样的值,非常用插件,否则正常情况下是不能只用动画效果的。注意,CSS 样式使用 DOM 名称(比如 "fontSize")来设置,而非 CSS 名称(比如 "font-size")。

    特别注意单位,属性值的单位像素(px),除非另有说明。单位em 和 %需要指定使用

    .animate({
        left: 50, 
        width: '50px'   
        opacity: 'show',  
        fontSize: "10em",
    }, 500);

    除了定义数值,每个属性能使用'show', 'hide', 和 'toggle'。这些快捷方式允许定制隐藏和显示动画用来控制元素的显示或隐藏

    .animate({
        width: "toggle"
    });

    如果提供一个以+= 或 -=开始的值,那么目标值就是以这个属性的当前值加上或者减去给定的数字来计算的

    .animate({ 
        left: '+=50px'
    }, "slow");

    duration时间

    动画执行的时间,持续时间是以毫秒为单位的;值越大表示动画执行的越慢,不是越快。还可以提供'fast' 和 'slow'字符串,分别表示持续时间为200 和 600毫秒。

    easing动画运动的算法

    jQuery库中默认调用 swing。如果需要其他的动画算法,请查找相关的插件

    complete回调

    动画完成时执行的函数,这个可以保证当前动画确定完成后发会触发

    查看全部
  • 操作元素的显示和隐藏可以有几种方法。
    例如:

    • 改变样式display为none

    • 设置位置高度为0

    • 设置透明度为0

    都能达到这个目的,并且针对这样的处理jQuery都提供了各自的方法。show/hide、sildeDown/sildeUp、fadeIn/fadeOut。除此之外,还引入了toggle、sildeToggle以及fadeToggle切换方法

    toggle、sildeToggle以及fadeToggle的区别:

    • toggle:切换显示与隐藏效果

    • sildeToggle:切换上下拉卷滚效果

    • fadeToggle:切换淡入淡出效果

    当然细节上还是有更多的不同点:

    toggle与slideToggle细节区别:

    • toggle:动态效果为从右至左。横向动作,toggle通过display来判断切换所有匹配元素的可见性

    • slideToggle:动态效果从下至上。竖向动作,slideToggle 通过高度变化来切换所有匹配元素的可见性

    fadeToggle方法

    • fadeToggle() 方法在 fadeIn() 和 fadeOut() 方法之间切换。

    • 元素是淡出显示的,fadeToggle() 会使用淡入效果显示它们。

    • 元素是淡入显示的,fadeToggle() 会使用淡出效果显示它们。

    • 注释:隐藏的元素不会被完全显示(不再影响页面的布局)

    查看全部
  • 淡入淡出fadeIn与fadeOut都是修改元素样式的opacity属性,但是他们都有个共同的特点,变化的区间要么是0,要么是1

    fadeIn:淡入效果,内容显示,opacity是0到1
    fadeOut:淡出效果,内容隐藏,opacity是1到0

    如果要让元素保持动画效果,执行opacity = 0.5的效果时,要如何处理?

    如果不考虑CSS3,我们用JS实现的话,基本就是通过定时器,在设定的时间内一点点的修改opacity的值,最终为0.5,原理虽说简单,但是总不如一键设置这么舒服,jQuery提供了fadeTo方法,可以让改变透明度一步到位

    语法

    .fadeTo( duration, opacity ,callback)

    必需的 duration参数规定效果的时长。它可以取以下值:"slow"、"fast" 或毫秒。fadeTo() 方法中必需的 opacity 参数将淡入淡出效果设置为给定的不透明度(值介于 0 与 1 之间)。可选的 callback 参数是该函数完成后所执行的函数名称。

    查看全部
  • fadeToggle()函数用于切换所有匹配的元素,并带有淡入/淡出的过渡动画效果

    fadeToggle切换fadeOut与fadeIn效果,所谓"切换",即
    如果元素当前是可见的,则将其隐藏(淡出);如果元素当前
    是隐藏的,则使其显示(淡入)。

    常用语法:.fadeToggle( [duration ] ,[ complete ] )

    可选的 duration 参数规定效果的时长。它可以取以下值:"slow"、"fast" 或毫秒。 可选的 callback 参数是 fadeToggle完成后所执行的函数名称。

    fadeToggle() 方法可以在 fadeIn() 与 fadeOut() 方法之间进行切换。如果元素已淡出,则 fadeToggle() 会向元素添加淡入效果。如果元素已淡入,则 fadeToggle() 会向元素添加淡出效果。

    查看全部
  • 淡入效果fadeIn

    .fadeIn( [duration ], [ complete ] )
    • duration:指定过渡动画运行多长时间(毫秒数),默认值为400。该参数也可以为字符串"fast"(=200)或"slow"(=600)。

    • 元素显示完毕后需要执行的函数。函数内的this指向当前DOM元素。

    fadeIn()函数用于显示所有匹配的元素,并带有淡入的过渡动画效果。

    注意:

    • 淡入的动画原理:操作元素的不透明度从0%逐渐增加到100%

    • 如果元素本身是可见的,不对其作任何改变。如果元素是隐藏的,则使其可见

    查看全部
  • slideToggle用滑动动画显示或隐藏一个匹配元素

    基本的操作:slideToggle();

    这是最基本的操作,获取元素的高度,使这个元素的高度发生改变,从而让元素里的内容往下或往上滑。

    提供参数:.slideToggle( [duration ] ,[ complete ] )

    同样的提供了时间、还有动画结束的回调。在参数对应的时间内,元素会完成动画,然后出发回调函数

    同时也提供了时间的快速定义,字符串 'fast' 和 'slow' 分别代表200和600毫秒的延时

    slideToggle("fast") 
    slideToggle("slow")

    注意:

    • display属性值保存在jQuery的数据缓存中,所以display可以方便以后可以恢复到其初始值

    • 当一个隐藏动画后,高度值达到0的时候,display 样式属性被设置为none,以确保该元素不再影响页面布局

    查看全部
  • 显示方法slideUp方法

    最简单的使用:不带参数

    $("elem").slideUp();

    这个使用的含义就是:找到元素的高度,然后采用一个下滑动画让元素一直滑到隐藏,当高度为0的时候,也就是不可见的时,修改元素display 样式属性被设置为none。这样就能确保这个元素不会影响页面布局了

    带参数:

    .slideUp( [duration ] [, easing ] [, complete
    ] )

    同样可以提供一个时间,然后可以使用一种过渡使用哪种缓动函数,jQuery默认就2种,可以通过下载插件支持。最后一个动画结束的回调方法。

    因为动画是异步的,所以要在动画之后执行某些操作就
    必须要写到回调函数里面,这里要特别注意
    查看全部

举报

0/150
提交
取消
课程须知
1、有HTML/CSS基础 2、有JavaScript基础
老师告诉你能学到什么?
1、jQuery的基础语法 2、jQuery当中的动画处理

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!