实战学javascript——用js实现图片剪辑(上)
来源:互联网 发布:网络惊魂 电影 编辑:程序博客网 时间:2024/05/16 08:17
css
基本结构:主要通过三层叠加实现:最底层的固定不动的半透明图片;中间层的部分不透明的清晰图片;最上层的选取框。
css的clip属性:
img{
clip:rect(0px,60px,200px,0px) //剪辑图片的矩形区域,各点坐标作为参数(相对于整个图片的左上角为起始位置)
}
制作选取框的点(minDiv):
.minDiv{
position:absolute;
width:8px;
height:8px;
background:#fff;
left:50%; //距离左侧边框50%
margin-left:-4px; //减去minDiv的一半宽度就可以处于正中间了
top:-4px; //让它上下也居中
}
鼠标样式变化设定:
在每一个小点div内加上cursor属性
比如在左上角的点:cursor:nw-resize; //nw头字母分别是north和western
js
clientX:获取鼠标的横坐标
clientWidth:可以获取元素的宽度
offsetLeft:元素相对于父元素左边界的距离
编写一个获取元素相对于屏幕最左侧的函数(利用offsetLeft一层一层获取)
function getPosition(node){
var left = node.offsetLeft;
var top = node.offsetTop;
var parent = node.offsetParent;
while(parent != null){
left += parent.offsetLeft;
top += parent.offsetTop
parent = parent.offsetParent;
}
return {“left”:left,”top”:top};
}
注意:offsetParent属性返回一个对象的引用,这个对象是距离调用offsetParent的元素最近的,并且是已经进行过css定位的容器元素。
获取鼠标位置:event.clientX;
js实现触点移动
var rightDiv = document.getElementId(“right”);
var mainDiv = document.getElementById(“main”)
var ifKeyDown = false;//鼠标默认为按下状态
rightDiv.onmousedown = function(){//这里要绑定在触点上
ifKeyDown = true;
}
window.onmouseup = function(){
ifKeyDown = false;
}
window.onmousemove = function(e){//鼠标移动事件
if(ifKeyDown == true){
//将下面部分的代码移到这里来,这样就可以鼠标按下时就开始执行了
}
var x = e.clientX;//鼠标x坐标
var addWidth = “”;//鼠标移动后增加的宽度
var widthBefore = mainDiv.offsetWidth - 2;//选取框变化前的宽度(减去border的宽度)
addWidth = x - getPosition(mainDiv).left - widthBefore;//鼠标移动后增加的宽度
mainDiv.style.width = addWidth + widthBefore + “px”;//选取框变化后的宽度
}
此外,我们要让系统知道我们拖动的哪个点,因此设定另一个参数
var contact = “”;//表示按下的触点
这样就可以对应绑定:
rightDiv.onmousedown = function(){
ifKeyDown = true;
contact = “right”;
}
然后在onmousemove的function中,添加对contact的判断
if(contact == “right”){ //这里放右触点触发的函数}
- 实战学javascript——用js实现图片剪辑(上)
- 图片处理(图片缩小,图片剪辑)
- iPhone上用小影剪辑视频(iPhone读取文件)
- 【JavaScript】js实现图片翻转
- 用JAVASCRIPT来实现“禁止图片上的右键(不准下载图片)”的效果
- 菜鸟学JS(一)——上传图片之上传前预览图片
- 这学期刚学的用javascript实现随机生成验证码过程(非图片验证码)
- JavaScript实现图片上标记多点区域
- 引用剪辑图片,,
- 调用图片剪辑程序
- [JavaScript] JS实现上传图片及时预览
- JavaScript:原生JS实现图片懒加载
- 菜鸟学JS(二)——上传图片之上传后查看大图
- swift实现斗鱼界面上的观看(在线)数效果(左右渐变+右上角剪辑)
- java版本的图片的缩放剪辑(一)
- java版本的图片的缩放剪辑(二)
- java版本的图片的缩放剪辑(三)
- flash调用外部图片(加载到影片剪辑中)
- Apache+SVN搭建SVN服务器
- 崩溃信息锁定在某一行
- CentOS 7 下,如何设置DNS服务器
- nyoj--744--蚂蚁的难题(一)
- GPU:合成加速
- 实战学javascript——用js实现图片剪辑(上)
- 为什么要用960px?——网页内容宽度分析
- HTML学习1:Dreamweaver8的安装
- Volley 使用
- Webdriver上传文件
- CentOS 7 上systemctl 的用法
- UE3 预计算可见性
- Node.js小示例
- 图像特征提取