• jQuery学习笔记


    简单记录一下学习jQuery中遇到的比较好的点,值得记录下来的(可能有点乱)

    链式编程——排他思想的简化

    //将当前字体变红色 其余的(siblings是除自己之外的兄弟)字体全恢复黑色
    $(this).css("color","red").siblings().css("color","#000");
    

    动画

    • show([speed],[easing],[fn]) 显示(参数下同)
    • hide() 隐藏
    • slideDown() 滑动下来
    • slideUp() 滑动上去
    • fadeIn() 淡入
    • fadeOut() 淡出
    • fadeTo([[speed],opacity,[easing],[fn]]) 指定透明度(前俩参数都要有)
       鼠标悬停到哪张图,其余图就透明度(opacity)变低,就实现了悬停高亮
    • animate(params,[speed],[easing],[fn]) 用于创建自定义动画的函数
       第一个参数是对象,代表要运动的结果,如 left: 50,则移动到50的地方(移动的元素要有定位)
    • stop() 停止所有在指定元素上正在运行的动画(解决动画排队现象,所有动画都有这个问题
       在动画函数之前调用 可阻止当前动画之前为完成的所有动画 $(".box").eq(2).stop().slideToggle();

    位置

    • height() 获取元素高度 仅含高度 无padding什么的
    • width() 获取元素宽度 仅含宽度
    • innerWidth()、innerHeight() 包括padding的宽 高
    • outterWidth()、outterHeight() 包括border的宽 高
    • outterWidth(true)、outterHeight(true) 包括margin的宽 高
    • offset() 返回一个对象 其中包含两个属性 top、left 相对文档的偏移量,和父盒子有无定位无关(该方法可用于获取和修改元素位置)
    • position() 返回一个对象 其中包含两个属性 top、left 相对最近的有定位的父盒子的偏移量 (该方法不可修改元素位置)
    • scrollTop() 被卷去的头部的长度
    • scrollLeft() 被卷去左边的宽度

    自动触发

    • element.事件() 会触发默认行为
    • element.trigger(事件) 会触发默认行为(事件冒泡)
    • element.triggerHandler(事件) 不会触发默认行为(事件也不会冒泡)

    注意 若想要触发事件的默认行为,若事件为a的点击,想触发默认行为跳转页面,直接a.trigger("click")不行,要在a标签里加一个span再监听span的内容

    鼠标事件

    • mouseover mouseout 子元素移入移出时也会触发父元素的事件
    • mouseenter mouseleave 不会

    apply方法的小用

    function() {
        arr = [1,2,3];
    	[].push.apply(this, arr);
        //上面这句话相当于 把arr这个真数组转变为了伪数组
    }
    
    
    • [].push作用是 找到数组的push方法
    • apply(this, arr) 是将当前函数内部的this修改为为函数的this,本来是谁调用this就指向谁,apply就用来修改
    • arr作为参数传递给push函数,所以最终就将arr中的值都push给了当前对象,且对象也拥有了length属性,成了伪数组

    apply和call方法的比较

    call 和 apply 都是为了改变某个函数运行时的上下文(context)而存在的,换句话说,就是为了改变函数体内部 this 的指向。

    它们俩唯一不同点就是传参方式

    第一个参数都一样,就是要修改函数体内部this指向变成什么,

    第二个,call第一个以后的参数都作为前面调用者的参数,而apply只能有两个参数,第二个是一个数组,里面包括所有待传的参数

    真伪数组的转换

    这里先说一下伪数组的定义,具有以下两种特性的对象就可以称之为伪数组(js中一切皆对象)

    1. 有0 1 2 3...的索引值
    2. 有length属性

    真数组——>伪数组

    var farr2 = {};
    var arr2 = [1,3,5,7];
    [].push.apply(farr2, arr2);
    console.log(farr2);
    
    1. 找到数组的push方法 [].push()
    2. 利用apply改变内部的this指向 使arr2传入farr2

    伪数组——>真数组

    先说第一种方法吧,有兼容性问题(ie8及以下不支持)

    var farr = {0:1, 1: 2, 2: 3, length: 3};
    var arr = [];
    [].push.apply(arr, farr);
    console.log(arr);
    

    原理和上面一样,就不赘述了

    第二种方法 用slice 而不是push,此方法没有兼容性问题

    • 先回顾一下数组的slice方法,它是用于数组切片处理的,也就是截取数组
      1. 若不传参,则默认返回一个与当前数组相同的新的数组
      2. 传入一个参数,则返回当前数组这个索引开始往后的元素
      3. 两个,就是begin-end(不包含end)
    var farr3 = {0:1, 1: 2, 2: 3, length: 3};
    //这里选择不传参数 则返回整个数组并赋给arr3
    var arr3 = [].slice.apply(farr3);
    console.log(arr3);
    
  • 相关阅读:
    windows下的定时任务设置详解
    php实现 字符串分割
    js进阶 11-7 jquery如何获取和改变元素的位置
    js进阶 11-6 jquery如何获取和设置元素的宽高(jquery多方法)
    详解PHP设置定时任务的实现方法
    详解PHP实现定时任务的五种方法
    百度echarts可以做什么
    前端开发框架对比(工具可以从框架中找)(好的框架,事半功倍)
    poj 3080 Blue Jeans
    ZOJ 3822 可能性DP
  • 原文地址:https://www.cnblogs.com/TRY0929/p/11955145.html
Copyright © 2020-2023  润新知