AI智能
改变未来

JQuery (二)


JQuery 高级

1. 动画

  1. 三种方式显示和隐藏元素

1. 默认显示和隐藏方式

  1. show([speed,[easing],[fn]])

  2. 参数:

    speed:动画的速度。三个预定义的值(“slow”,“normal”, “fast”)或表示动画时长的毫秒数值(如:1000)

  3. easing:用来指定切换效果,默认是\”swing\”,可用参数\”linear\”
  • swing:动画执行时效果是 先慢,中间快,最后又慢
  • linear:动画执行时速度是匀速的
  1. fn:在动画完成时执行的函数,每个元素执行一次。
  • hide([speed,[easing],[fn]])

  • toggle([speed],[easing],[fn])

  • 2. 滑动显示和隐藏方式

    1. slideDown([speed],[easing],[fn]):往下拉,相当于滑动显示
    2. slideUp([speed,[easing],[fn]]):往上拉,相当于滑动隐藏
    3. slideToggle([speed],[easing],[fn]):切换

    3. 淡入淡出显示和隐藏方式

    1. fadeIn([speed],[easing],[fn]):淡入,相当于显示
    2. fadeOut([speed],[easing],[fn]):淡出,相当于隐藏
    3. fadeToggle([speed,[easing],[fn]]):切换

    4. jQuery 动画 – animate() 方法

    jQuery animate() 方法用于创建自定义动画。
    语法:

    $(selector).animate({params},speed,callback);

    必需的 params 参数定义形成动画的 CSS 属性。

    **提示:**可以用 animate() 方法来操作所有 CSS 属性吗?

    是的,几乎可以!不过,需要记住一件重要的事情:当使用 animate() 时,必须使用 Camel 标记法书写所有的属性名,比如,必须使用 paddingLeft 而不是 padding-left,使用 marginRight 而不是 margin-right,等等。

    可选的 speed 参数规定效果的时长。它可以取以下值:“slow”、“fast” 或毫秒。

    可选的 callback 参数是动画完成后所执行的函数名称。

    $(\"button\").click(function(){$(\"#showDiv\").animate({left:\'250px\'});});

    jQuery animate() – 操作多个属性

    请注意,生成动画的过程中可同时使用多个属性:

    $(\"button\").click(function(){$(\"div\").animate({left:\'250px\',opacity:\'0.5\',height:\'150px\',width:\'150px\'});});
    <!DOCTYPE html><html><head><meta charset=\"UTF-8\"><title>Insert title here</title><script type=\"text/javascript\" src=\"../js/jquery-3.3.1.min.js\"></script><script>function hideFn() {// $(\"#showDiv\").hide(\"slow\",\"swing\",function () {//     //alert(\"隐藏了。。。\")// });//$(\"#showDiv\").hide(5000,\"swing\");//5秒之内隐藏$(\"#showDiv\").slideUp(2000,\"swing\");}function showFn() {// $(\"#showDiv\").show(\"slow\",\"swing\",function () {//     //alert(\"显示。。。\")// });$(\"#showDiv\").slideDown(3000);}function toggleFn(){//切换显示和隐藏// $(\"#showDiv\").toggle(4000,\"linear\",function () {//// });$(\"#showDiv\").fadeToggle(3000);}function animateFn(){$(\"#showDiv\").animate({left:\'250px\',opacity:\'0.5\',height:\'150px\',width:\'150px\'},2000);}</script></head><body><input type=\"button\" value=\"点击按钮隐藏div\" onclick=\"hideFn()\"><input type=\"button\" value=\"点击按钮显示div\" onclick=\"showFn()\"><input type=\"button\" value=\"点击按钮切换div显示和隐藏\" onclick=\"toggleFn()\"><input type=\"button\" value=\"点击按钮执行动画\" onclick=\"animateFn()\"><div id=\"showDiv\" style=\"width:300px;height:300px;background:pink;position: absolute\">div显示和隐藏</div></body></html>

    2. 遍历

    1. js的遍历方式
    • for(初始化值;循环结束条件;步长)
    1. jq的遍历方式

    2. jq对象.each(callback)

      [ol]语法:
      jquery对象.each(function(index,element){});

        index:就是元素在集合中的索引

      • element:就是集合中的每一个元素对象

      • this:集合中的每一个元素对象

    3. 回调函数返回值:
    • false:如果当前function返回为false,则结束循环(break)。
    • true:如果当前function返回为true,则结束本次循环,继续下次循环(continue)
  • $.each(object, [callback])

  • for…of: jquery 3.0 版本之后提供的方式
    for(元素对象 of 容器对象)

  • [/ol]

    <!DOCTYPE html><html><head><meta charset=\"UTF-8\"><title></title><script src=\"../js/jquery-3.3.1.min.js\" type=\"text/javascript\" charset=\"utf-8\"></script><script type=\"text/javascript\">$(function () {//js遍历var liArr = $(\"#city li\");// for (var i = 0; i < liArr.length; i++) {//     alert(i+\":\"+liArr[i].innerHTML);// }//jq对象.each(callback)// liArr.each(function (index,element) {//     //3.1,第一种方式 this//     //alert(this.innerHTML);//     //3.2,第二种方式,index,element////     //alert(index+\":\"+element.innerHTML);//     if($(element).html()==\"上海\"){//         //如果返回为false,则结束循环(break);如果为true,则结束本次循环,继续下次循环(continue)//         return false;//     }//     alert(index+\":\"+element.innerHTML);// });//全局遍历$.each(object, [callback])$.each(liArr,function () {alert(this.innerHTML);});//jq3.0版本之后提供的方式//// for(li of liArr){//     alert(li.innerHTML);// }})</script></head><body><ul id=\"city\"><li>北京</li><li>上海</li><li>天津</li><li>重庆</li></ul></body></html>

    3. 事件绑定

    1. jquery标准的绑定方式
        jq对象.事件方法(回调函数);
      • 注:如果调用事件方法,不传递回调函数,则会触发浏览器默认行为。
      • 表单对象.submit();//让表单提交
    2. on绑定事件/off解除绑定
        jq对象.on(“事件名称”,回调函数)
      • jq对象.off(“事件名称”)
      • 如果off方法不传递任何参数,则将组件上的所有事件全部解绑
    3. 事件切换:toggle
    • jq对象.toggle(fn1,fn2…)

    • 当单击jq对象对应的组件后,会执行fn1.第二次点击会执行fn2…

    • 注意:1.9版本 .toggle() 方法删除,jQuery Migrate(迁移)插件可以恢复此功能。

    <script src=\"../js/jquery-migrate-1.0.0.js\" type=\"text/javascript\" charset=\"utf-8\"></script>
    <!DOCTYPE html><html><head><meta charset=\"UTF-8\"><title></title><script src=\"../js/jquery-3.3.1.min.js\" type=\"text/javascript\" charset=\"utf-8\"></script><script src=\"../js/jquery-migrate-1.0.0.js\" type=\"text/javascript\" charset=\"utf-8\"></script><script type=\"text/javascript\">$(function () {$(\"#btn\").toggle(function () {$(\"#myDiv\").css(\"backgroundColor\",\"red\");},function () {$(\"#myDiv\").css(\"backgroundColor\",\"green\");});})</script></head><body><input id=\"btn\" type=\"button\" value=\"事件切换\"><div id=\"myDiv\" style=\"width:300px;height:300px;background:pink\">点击按钮变成绿色,再次点击红色</div></body></html>
    赞(0) 打赏
    未经允许不得转载:爱站程序员基地 » JQuery (二)