目录
jQuery对象拷贝
如果想要把某个对象拷贝(合并) 给另外一个对象使用,此时可以使用 $.extend()方法
$(function () {
var obj = {
id: 0,
name: 'tom',
mag: {
sex: 'boy'
}
}
var object = {
id: 1,
name: 'andy',
mag: {
age: 18
}
}
// 拷贝语法:$.extend([deep], target, object1, [objectN])
// deep的值为true或false表示深拷贝或浅拷贝,把后面的object1拷贝给前面的target
/* // 浅拷贝false,默认是浅拷贝
$.extend(obj, object)
console.log(obj)
// 浅拷贝-全部覆盖 复杂数据类型对象mag中的sex被age覆盖
obj.mag.age = 25
console.log(object)
console.log(obj)
// 浅拷贝-把后面对象的复杂数据(对象mag)拷贝给前面的对象,前面对象的所有数据被覆盖为后面对象的数据,但是更改前面对象的复杂数据(对象mag),后面对象的复杂数据(对象mag)也会一起改变,这是因为浅拷贝时,复杂数据类型拷过去的是一个地址,两人共用着同一个空间的地址 */
// // 深拷贝true
$.extend(true, obj, object)
console.log(obj)
// 深拷贝-不完全覆盖 复杂数据类型对象mag中的sex不会被age覆盖,可以说是追加了age到对象msg中
obj.mag.age = 25
console.log(object)
console.log(obj)
// 深拷贝中更改前面的复杂数据(对象mag)只改变他自己的数据,不会影响被拷贝的母版数据
})
语法:$.extend([deep],target, object1, [objectN])
deep: 如果设为true 为深拷贝, 默认为false 浅拷贝
target: 要拷贝的目标对象
object1:待拷贝到第一个对象的对象。
objectN:待拷贝到第N个对象的对象。
浅拷贝是把被拷贝的对象复杂数据类型中的地址拷贝给目标对象,修改目标对象会影响被拷贝对象。
深拷贝,前面加true, 完全克隆(拷贝的对象,而不是地址),修改目标对象不会影响被拷贝对象。
jQuery插件
jQuery 插件常用的网站:
-
jQuery 插件库 jQuery插件库-收集最全最新最好的jQuery插件
-
jQuery 之家 jQuery之家-自由分享jQuery、html5、css3的插件库
jQuery 插件使用步骤:
1、引入相关文件。(jQuery文件 和插件文件)
2、复制相关html、css、js (调用插件)。
一、图片懒加载(图片使用延迟加载在可提高网页下载速度。它也能帮助减轻服务器负载)
当我们页面滑动到可视区域,再显示图片。
我们使用jquery 插件库 EasyLazyload。注意,此时的js引入文件和js调用必须写到DOM元素(图片)最后面
二、全屏滚动(fullpage.js)
gitHub: https://github.com/alvarotrigo/fullPage.js
中文翻译网站: jQuery全屏滚动插件fullPage.js演示_dowebok