先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Web前端全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip1024c (备注前端)
正文
- cropstart—剪裁框开始移动执行的函数。
类型:
Function
默认:null
;
- cropmove—剪裁框移动时执行的函数。
类型:
Function
默认:null
;
- cropend—剪裁框移动结束执行的函数。
类型:
Function
默认:null
;
- crop—剪裁框发生变化执行的函数。
类型:
Function
默认:null
;
- zoom—剪裁框缩放的时候执行的函数。
类型:
Function
默认:null
;
$(‘#image’).cropper({
aspectRatio: 16 / 9,
viewMode:1,
dragMode:‘none’,
preview:“.small”,
responsive:false,
restore:false,
// modal:false,
// guides:false,
// background:false,
// autoCrop:false,
// autoCropArea:0.1,
// movable:false,
// scalable:false,
// zoomable:false,
// wheelZoomRatio:false,
// cropBoxMovable:false,
// cropBoxResizable:false,
ready:function () {
console.log(“ready”);
},
cropstart: function (e) {
console.log(“cropstart”);
},
cropmove: function (e) {
console.log(“cropmove”);
},
cropend: function (e) {
console.log(“cropend”);
},
crop: function (e) {
console.log(“crop”);
},
zoom: function (e) {
console.log(“zoom”);
},
});
-
1
-
2
-
3
-
4
-
5
-
6
-
7
-
8
-
9
-
10
-
11
-
12
-
13
-
14
-
15
-
16
-
17
-
18
-
19
-
20
-
21
-
22
-
23
-
24
-
25
-
26
-
27
-
28
-
29
-
30
-
31
-
32
-
33
-
34
-
35
-
36
-
37
=========================================================================
使用方法示例:
$().cropper({
ready: function () {
$().cropper(‘method’, argument1, , argument2, …, argumentN);
}
});
-
1
-
2
-
3
-
4
-
5
- crop() 手动显示裁剪框
$(“#image”).cropper({
autoCrop: false, //关闭自动显示裁剪框
ready: function () {
$(this).cropper(‘crop’);
}
});
-
1
-
2
-
3
-
4
-
5
-
6
2 . reset()—-将图像和裁剪框重置为初始状态
reset
//-----------------------------
$(“#reset”).on(“click”, function () {
$(‘#image’).cropper(‘reset’);
})
-
1
-
2
-
3
-
4
-
5
3 . clear()—清除裁切框
$(“#clear”).on(“click”, function () {
$(‘#image’).cropper(‘clear’);
})
-
1
-
2
-
3
4 . replace(url[, onlyColorChanged])—替换图像的src并重新构建cropper
url :–类型
String
;—新图片的url;
onlyColorChanged (optional):–类型:
Boolean
默认:false;—-如果只是改变颜色,而不是大小,那么cropper只需要改变所有相关图像的src,不需要重新构建cropper。这可以用于应用过滤器。(意思是:改成true,图像的比例会发生变化自适应父盒子的大小;会失真的)
$(“#replace”).on(“click”, function () {
$(‘#image’).cropper(‘replace’,“./images/111.jpeg”,true );
})
-
1
-
2
-
3
5 . enable()—解锁,锁定的裁切框(与disable相对应)
$(“#enable”).on(“click”, function () {
$(‘#image’).cropper(‘enable’);
})
-
1
-
2
-
3
6 . disable()—锁定的裁切框(裁切框不可移动)(与enable相对应)
$(“#disable”).on(“click”, function () {
$(‘#image’).cropper(‘disable’);
})
-
1
-
2
-
3
7 . destroy()—销毁cropper并从图像中删除整个cropper。
$(“#destroy”).on(“click”, function () {
$(‘#image’).cropper(‘destroy’);
})
-
1
-
2
-
3
8 . move(offsetX[, offsetY])—使用相对偏移量移动图像(裁切框不移动)。
offsetX–类型:
Number
;在水平方向上移动(px)
offsetY –类型:
Number
;在垂直方向上移动(px);如果不存在,其值和offsetX相同;
$(“#move1”).on(“click”, function () {
$(‘#image’).cropper(‘move’, 1, 0);
})
$(“#move2”).on(“click”, function () {
$(‘#image’).cropper(‘move’, 0, -1);
})
-
1
-
2
-
3
-
4
-
5
-
6
9 . moveTo(x[, y])—-将画布(图像包装器)移动到一个绝对点
X–类型:
Number
;画布canvas距离left的值;
Y –类型:
Number
;画布canvas距离top的值;如果不存在,其值和X相同;
10 . zoom(ratio)—放大图片,并使用相对比例。(裁切框不变化)
$(‘#image’).cropper(‘zoom’, 0.1);
$(‘#image’).cropper(‘zoom’, -0.1);
-
1
-
2
11 . zoomTo(ratio)—-将画布(图像包装器)放大到一个绝对比例
ratio:类型
Number
—要放大的比例
$(‘#image’).cropper(‘zoomTo’, 1); // 1:1 (canvasData.width === canvasData.naturalWidth)
- 1
12 . rotate(degree)—旋转图像以一定的角度
degree—类型:
Number
向右旋转 (degree > 0);向左旋转 (degree < 0);
$(‘#image’).cropper(‘rotate’, 90);
$(‘#image’).cropper(‘rotate’, -90);
-
1
-
2
13 . rotateTo(degree)—旋转图像到固定的角度
degree—类型:
Number
14 . scale(scaleX[, scaleY])—-翻转图像
scaleX–类型:
Number
;水平方向翻转;默认为 1
scaleY–类型:
Number
;垂直方向翻转;如果不存在,其值和scaleX相同;
$(‘#image’).cropper(‘scale’, -1); // 水平、垂直方向翻转
$(‘#image’).cropper(‘scale’, -1, 1); // 水平方向翻转
$(‘#image’).cropper(‘scale’, 1, -1); // 垂直方向翻转
-
1
-
2
-
3
15 . scaleX(scaleX)—-缩放图像的横坐标。
类型:
Number
;水平方向翻转;默认为 1
16 . scaleY(scaleY)—-缩放图像的纵坐标。
类型:
Number
;垂直方向翻转;默认为 1
$(‘#image’).cropper(‘scaleX’, 1);
- 1
17 . getData([rounded])—-输出最终裁剪的区域位置和大小数据(根据原始图像的自然大小
rounded 类型:
Boolean
默认:false
;设置true可以获取其所有数据;
返回的数据类型:
Object
;
-
x
裁切框距离左边的距离
-
y
裁切框距离顶部的距离
-
width
裁切框的宽度
-
height
裁切框的高度
-
rotate
裁切框的旋转的角度
-
scaleX
缩放图像的横坐标
-
scaleY
缩放图像的纵坐标
$(“#getData”).on(“click”, function () {
console.log($(‘#image’).cropper(‘getData’, true));;
})
-
1
-
2
-
3
18 . setData(data)—用新数据改变裁切区域的位置和大小(以原始图像为基础)。
data–类型:
Object
;
$(“#setData”).on(“click”, function () {
$(‘#image’).cropper(‘setData’,{width:200,height:100});
})
-
1
-
2
-
3
19 . getContainerData()—输出container 容器大小数据。
返回的数据类型:
Object
;
- width当前容器的宽
- height当前容器的高
$(“#getContainerData”).on(“click”, function () {
console.log($(‘#image’).cropper(‘getContainerData’, ));;
})
-
1
-
2
-
3
20 . getImageData()—-输出图像image位置、大小和其他相关数据。
返回的数据类型:
Object
;
-
left
image距离左边的距离
-
top
image距离顶部的距离
-
width
image的宽度
-
height
image的高度
-
naturalWidth
image的原始宽度
-
naturalHeight
image的原始高度
-
aspectRatio
image的纵横比
-
rotate
image的旋转的角度
-
scaleX
缩放图像的横坐标
-
scaleY
缩放图像的纵坐标
$(“#getImageData”).on(“click”, function () {
console.log($(‘#image’).cropper(‘getImageData’, ));;
})
-
1
-
2
-
3
21 . getCanvasData()—输出画布Canvas(图像包装器)位置和大小数据。
返回的数据类型:
Object
;
-
left
canvas距离左边的距离
-
top
canvas距离顶部的距离
-
width
canvas的宽度
-
height
canvas的高度
-
naturalWidth
canvas的原始宽度
-
naturalHeight
canvas的原始高度
;
*注意*getImageData()和getCanvasData()的naturalWidth
、naturalHeight
的值是一样的;
22 . setCanvasData(data)—:使用数据更改画布Canvas(图像包装器)位置和大小。
返回的数据类型:
Object
;
-
left
canvas距离左边的距离
-
top
canvas距离顶部的距离
-
width
canvas的宽度
-
height
canvas的高度
$(“#setCanvasData”).on(“click”, function () {
$(‘#image’).cropper(‘setCanvasData’,{width:200,height:100});
})
-
1
-
2
-
3
23 .getCropBoxData()—输出剪切框的位置和大小数据。
返回的数据类型:
Object
;
-
left
剪切框距离左边的距离
-
top
剪切框距离顶部的距离
-
width
剪切框的宽度
-
height
剪切框的高度
$(“#getCropBoxData”).on(“click”, function () {
console.log($(‘#image’).cropper(‘getCropBoxData’));;
})
-
1
-
2
-
3
24 . setCropBoxData(data)—–改变剪切框的位置和大小数据。
data的数据类型:
Object
;
-
left
剪切框距离左边的距离
-
top
剪切框距离顶部的距离
-
width
剪切框的宽度
-
height
剪切框的高度
$(“#setCropBoxData”).on(“click”, function () {
$(‘#image’).cropper(‘setCropBoxData’,{width:200,height:100});
})
-
1
-
2
-
3
25 . getCroppedCanvas([options])—画一张剪裁的图片。如果没有剪裁,则返回一个绘制整个im的画布(这个感觉很有用)
options 类型
Object
-
width
输出Canvas的宽度
-
height
输出Canvas的高度
-
minWidth
输出Canvas的最小宽度;默认值是0
-
minHeight
输出Canvas的最小高度;默认值是0
-
maxWidth
输出Canvas的最大宽度;默认值是Infinity
(无穷大)
-
maxHeight
输出Canvas的最大高度;默认值是Infinity
(无穷大)
-
fillColor
在输出画布Canvas中填充任何alpha的颜色,默认值是透明的
-
imageSmoothingEnabled
如果图像被设置为平滑(true,默认)或不设置(false)。
-
imageSmoothingQuality
设置图像的质量,一个“low
”(默认)、“medium
”或“high
”。
返回值:类型:
HTMLCanvasElement
画布绘制出了剪裁过的图像
_注意:_输出canvas画布的宽高比将自动适应剪切框的纵横比。
如果您打算从输出画布canvas中获得一个JPEG图像,您应该首先设置填色选项,否则,JPEG图像中的透明部分将在缺少情况下变为黑色。
为了避免获得空白的输出图像,您可能需要将maxWidth和maxHeightproperties设置为有限的数字,从而来画布元素的大小限制。
$(“#getCroppedCanvas”).on(“click”, function () {
console.log($(‘#image’).cropper(‘getCroppedCanvas’));;
var cas=$(‘#image’).cropper(‘getCroppedCanvas’);
var base64url=cas.toDataURL(‘image/jpeg’);
cas.toBlob(function (e) {
console.log(e); //生成Blob的图片格式
})
console.log(base64url); //生成base64图片的格式
$(‘.cavans’).html(cas) //在body显示出canvas元素
})
-
1
-
2
-
3
-
4
-
5
-
6
-
7
-
8
-
9
-
10
$(‘#image’).cropper(‘getCroppedCanvas’, {
width: 160,
height: 90,
minWidth: 256,
minHeight: 256,
maxWidth: 4096,
maxHeight: 4096,
fillColor: ‘#fff’,
imageSmoothingEnabled: false,
imageSmoothingQuality: ‘high’,
});
// Upload cropped image to server if the browser supports HTMLCanvasElement.toBlob
$(‘#image’).cropper(‘getCroppedCanvas’).toBlob(function (blob) {
var formData = new FormData();
formData.append(‘croppedImage’, blob);
$.ajax(‘/path/to/upload’, {
method: “POST”,
data: formData,
processData: false,
contentType: false,
success: function () {
console.log(‘Upload success’);
},
error: function () {
console.log(‘Upload error’);
}
});
});
-
1
-
2
-
3
-
4
-
5
-
6
-
7
-
8
-
9
-
10
-
11
-
12
-
13
-
14
-
15
-
16
-
17
-
18
-
19
-
20
-
21
-
22
-
23
-
24
-
25
-
26
-
27
-
28
-
29
总结
阿里十分注重你对源码的理解,对你所学,所用东西的理解,对项目的理解。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注前端)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
, {
method: “POST”,
data: formData,
processData: false,
contentType: false,
success: function () {
console.log(‘Upload success’);
},
error: function () {
console.log(‘Upload error’);
}
});
});
-
1
-
2
-
3
-
4
-
5
-
6
-
7
-
8
-
9
-
10
-
11
-
12
-
13
-
14
-
15
-
16
-
17
-
18
-
19
-
20
-
21
-
22
-
23
-
24
-
25
-
26
-
27
-
28
-
29
总结
阿里十分注重你对源码的理解,对你所学,所用东西的理解,对项目的理解。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注前端)
[外链图片转存中…(img-FZo5v4MN-1713287522031)]
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!