网站首页 > 知识剖析 正文
最近在开发过程中需要用到图片剪裁上传的功能,一开始是想着用canvas来实现,但对于canvas还不是很熟悉,于是走了个捷径,找了一款开源的jQuery插件。还是挺简单好用的,适配IOS、Android和PC端各种浏览器,当然,除了IE9以下的版本(反正我不知道IE有什么存在的必要)。要想适配IE9以下的版本,就必须要用到flash插件了。
我们先看一下JQuery这个插件怎么用:
//以下是需要用到的js文件
<script type="text/javascript" src="js/photo/jquery-2.1.3.min.js"></script>
<script src="js/photo/iscroll-zoom.js"></script>
<script src="js/photo/hammer.js"></script>
<script src="js/photo/lrz.all.bundle.js"></script>
<script src="js/photo/jquery.photoClip.js"></script>
接下来我们看一下html文件怎么写:
<!--截取前预览区域-->
<div id="clickArea" style="height: 400px;margin-top: 0px;">
</div>
<!--截取按钮-->
<div id="clickBtnArea" style="text-align: center;margin-top: 10px;
margin-bottom: 20px;width: 100%;">
<h5 style="color: #A0732F;">
双指按住图片进行缩放或旋转
</h5>
<div align="center">
<h4>
<button onclick="reload();">
重新选择
</button>
</h4>
<div>
<h4>
<button id="clickBtn">
截取
</button>
</h4>
</div>
</div>
//这个是自定义的样式,用图片代替掉input的默认选择框
<div align="center" id="view">
<img id="upload_img" src="img/upload.jpg"/>
<input id="file" type="file" class="inputstyle" accept="image/*" />
</div>
这里是input框的CSS:
.inputstyle {
width: 200px;
height: 200px;
position: relative;/*相对定位或者绝对定位都行,只要定位到img上*/
top: -90%;
cursor: pointer;
outline: medium none;
/*隐藏掉input那丑陋的选择框*/
filter: alpha(opacity=0);
-moz-opacity: 0;
opacity: 0;
}
重点来了!初始化JQ插件时的配置方法:
//clickArea是预览区域div的id
var clipArea = new bjj.PhotoClip("#clickArea", {
//剪裁区域的尺寸
size: [250, 250],
//输出图片的尺寸
outputSize: [400, 400],
//输出图片的格式
outputType: "png",
//对应input框的id
file: "#file",
//对应div的id
view: "#view",
//截取按钮
ok: "#clickBtn",
loadStart: function() {
console.log("照片读取中");
},
loadComplete: function() {
console.log("照片读取完成");
},
loadError: function(event) {
console.log(event);
},
clipFinish: function(dataURL) {
console.log(dataURL);
}
});
配置完成,打开浏览器看效果:
注意!所截取图片完成后,返回的是base64位的数据。
猜你喜欢
- 2025-06-08 sublimeText插件推荐(sublimehtml插件)
- 2025-06-08 Python之文本解析:字符串格式化的逆操作?
- 2025-06-08 为何强烈推荐 Vue/React/jQuery 框架的强大动态表单 SurveyJS?
- 2025-06-08 25款开源免费的jQuery工具提示插件
- 2025-06-08 文本编译器Sublime Text(文本编译器和C编译器的区别)
- 08-0612 个最佳 JavaScript 动画库,让您的 Web 页面动起来
- 08-06HTML 二次函数图像动画展示
- 08-06UnoCSS 内置的动画
- 08-06炫酷的CSS3 loading加载动画,总有一款适合你
- 08-06想要开发更好的Python项目,代码质量是关键
- 08-06想要入门学好Python编程,先从这几本书开始
- 08-06甲方VS程序员精彩画面鉴赏
- 08-06后端语言性能排行,哪种语言最快,为什么?
- 最近发表
- 标签列表
-
- xml (46)
- css animation (57)
- array_slice (60)
- htmlspecialchars (54)
- position: absolute (54)
- datediff函数 (47)
- array_pop (49)
- jsmap (52)
- toggleclass (43)
- console.time (63)
- .sql (41)
- ahref (40)
- js json.parse (59)
- html复选框 (60)
- css 透明 (44)
- css 颜色 (47)
- php replace (41)
- css nth-child (48)
- min-height (40)
- xml schema (44)
- css 最后一个元素 (46)
- location.origin (44)
- table border (49)
- html tr (40)
- video controls (49)