当前位置: 首页 > 图文教程 > 网络编程 > Javascript > jquery imgareaselect 使用利用js与程序结合实现图片剪切

Javascript
IE Firefox 使用自定义标签的区别
Javascript 圆角div的实现代码
js 获取网络图片的高度和宽度的实现方法(变通了下)
JavaScript 对象成员的可见性说明
JQuery困惑—包装集 DOM节点
JavaScript 三种创建对象的方法
半角全角相互转换的js函数
显示js对象所有属性和方法的函数
实现JavaScript中继承的三种方式
JavaScript 函数式编程的原理
JavaScript 定义function的三种方式小结
JavaScript 基于原型的对象(创建、调用)
层序遍历在ExtJs的TreePanel中的应用
将jQuery应用于login页面的问题及解决
document.onreadystatechange事件的用法分析
JS 仿Flash动画放大/缩小容器
javascript 定时自动切换的选项卡Tab
图片友情链接滚动 横向,带控制按钮
简单的加密css地址防止别人下载你的CSS文件的方法
图片与JavaScript配合做出个性滚动条

Javascript 中的 jquery imgareaselect 使用利用js与程序结合实现图片剪切


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-12   浏览: 194 ::
收藏到网摘: n/a

当前在ff3下,用jquery的 width()与height()函数,在不设置图片的宽度与高度的时候,不能取到 需要在图片load函数里面初始化才可以
复制代码 代码如下:

/*
缺陷,当前在ff3下,用jquery的 width()与height()函数,在不设置图片的宽度与高度的时候,不能取到
需要在图片load函数里面初始化才可以
*/
sanshi_imgareaselect = function(pic_id,view_div_id){
this.pic_obj = jQuery("#"+pic_id);
this.pic_width;
this.pic_height;
this.view_div_id = view_div_id;
this.view_width = 100;
this.view_height = 100;
this.view_img_id = view_div_id+"_sanshi_img";
this.ias;
}
//建立预览图片
sanshi_imgareaselect.prototype.make_view_pic =function(){
var img_obj = jQuery(document.createElement("IMG"));
img_obj.attr("src",this.pic_obj.attr("src"));
img_obj.attr("id",this.view_img_id);
img_obj.attr("width",this.view_width);
img_obj.attr("height",this.view_height);
return img_obj;
}
//初始化函数
sanshi_imgareaselect.prototype.init=function(){
this.pic_width = this.pic_obj.attr("width");
this.pic_height = this.pic_obj.attr("height");
//alert(this.pic_width+":"+this.pic_height);
//添加图片
jQuery("#"+this.view_div_id).append(this.make_view_pic());
//设置预览加载层样式
jQuery("#"+this.view_div_id).css({'width':this.view_width,'height':this.view_height,'overflow':'hidden'});
//构造选择区域完成的函数
var fun_str="if ( selection.width && selection.height){ var scaleX = "+this.view_width+" / selection.width;var scaleY = "+this.view_height+" / selection.height;jQuery('#"+this.view_img_id+"').css({width: Math.round(scaleX * "+this.pic_width+"),height: Math.round(scaleY * "+this.pic_height+"),marginLeft: -Math.round(scaleX * selection.x1),marginTop: -Math.round(scaleY * selection.y1)});}";
//alert(fun_str);
//初始化imgAreaSelect 函数
var ias = this.pic_obj.imgAreaSelect({
//设置选择框的比列
//aspectRatio:"1:1",
//设置框的添加效果
fadeSpeed:200,
//选择框选择完毕是否自己取消
autoHide:false,
//是否显示图片遮罩层
show:true,
//是否采用api
instance: true,
//设置初始函数 画出选择框
onInit:function(img, selection){ias.setSelection(100, 50, 250, 150, true);ias.update();},
//设置选择完毕的函数,采用了动态执行
onSelectEnd:function(img, selection){eval(fun_str);}
});
//赋值给全局
this.ias = ias;
}
//保存事件 采用的是get方式提交
sanshi_imgareaselect.prototype.save_pic=function(post_page,post_param){
var opt = this.ias.getSelection(true);
var post_arr = new Array();
jQuery.each(post_param,function(i,n){
var temp_str =i+"=";
temp_str += opt[n] ? opt[n] : n;
post_arr.push(temp_str);
});
//判断,是否有参数
post_page += post_page.lastIndexOf("?")<0 ? "?" : "&";
//拼装get方式的url
post_url = post_page+post_arr.join("&");
alert(post_url);
}

这个是封装后js代码
下面看看这段代码如何使用
复制代码 代码如下:

$(document).ready(function () {
//声明函数
var sanshi_img = new sanshi_imgareaselect("mypic","preview");
//确保图片加载完成执行初始化函数,这样避免上面的提到的bug,否则不能保证兼容性
$("#mypic").load(function(){sanshi_img.init();});
//监听保存事件
$("#save_pic").click(function(){
sanshi_img.save_pic('1.php?n=6',{"id":5,"px1":"x1","py1":"y1",'px2':"x2","py2":"y2",'pwidth':"width",'pheight':"height"});
});
})

下面看下html代码
复制代码 代码如下:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link rel="stylesheet" type="text/css" href="css/imgareaselect-animated.css" href="css/imgareaselect-animated.css" />
<script type="text/javascript" src="jquery-1.3.2.min.js" src="jquery-1.3.2.min.js"></script>
<script type="text/javascript" src="scripts/jquery.imgareaselect.pack.js" src="scripts/jquery.imgareaselect.pack.js"></script>
</head>
<body>
<div id="s">
<img id="mypic" name="mypic" dt="sanshi" src="scott-h-biram.jpg" src="scott-h-biram.jpg" title="mypic"/>
</div>
<div id="preview"></div>
<div><input type="button" id="save_pic" value="保存"></div>
</body>
</html>

这里面的html的头式不能丢的,如果丢了,会在ie7下有问题,不影响使用,但是影响美观度