`
masterlim
  • 浏览: 3983 次
  • 性别: Icon_minigender_1
  • 来自: 泉州
最近访客 更多访客>>
社区版块
存档分类
最新评论

jQuery实现头像预览

阅读更多
主要运用到的有jQuery以及其插件Jcrop。

要使用Jcrop要引入jQuery以及Jcrop。
<script src="js/jquery.min.js" type="text/javascript"></script>
<script src="js/jquery.Jcrop.js" type="text/javascript"></script>


具体实现直接贴出来,IE可以直接读取路径显示比较方便,FireFox则要引用HTML5新特性,FileReader的API。
var MAXWIDTH = 330;
var MAXHEIGHT = 230;
var JCROPRATIO = 1;//这个属性主要是确定选择框的横纵比
jQuery(function($){
	var jcrop_api;
	FileReader = window.FileReader;
	
	$('#avatar').find("img:eq(0)").Jcrop({
			aspectRatio: JCROPRATIO,
	    	onChange:   showCoords,
	        onSelect:   showCoords,
	        onRelease:  clearCoords
	    },function(){
			jcrop_api = this;
	});
	
	$("#file").change(function() {
		var image = document.createElement('img');
		var width = MAXWIDTH;
		var height = MAXHEIGHT;
		$("#avatar").css('max-width',MAXWIDTH);
		$("#avatar").css('max-height',MAXHEIGHT);
		$("#avatar").css('width',MAXWIDTH);
		$("#avatar").css('height',MAXHEIGHT);
		$("#avatar").css('overflow','hidden');
		
		if(jcrop_api != null) {
			jcrop_api.destroy();
		}
		
		if (FileReader) {
			//FireFox
			var reader = new FileReader();
			var file = this.files[0];
			reader.readAsDataURL(file);
			reader.onload = function(e) {
				image.src = this.result;
				//设置长宽比,延迟0.4秒
				//长和宽需要图片完全加载的情况下才能读取,当然也可以通过后台获取
				 setTimeout(function() {
					width = image.width;
					height = image.height;
					var rat;
					if(width > MAXWIDTH) {
						rat = MAXWIDTH/width;
						width = MAXWIDTH;
						height = height*rat;
					}
					
					if(height > MAXHEIGHT) {
						rat = MAXHEIGHT/height;
						height = MAXHEIGHT;
						width = width*rat;
					}
					image.width = width;
					image.height = height;
					$("#avatar").html(image);
					$(image).Jcrop({
						aspectRatio: JCROPRATIO,
						onChange:   showCoords,
						onSelect:   showCoords,
						onRelease:  clearCoords
					},function(){
						jcrop_api = this;
					});
				 },500);//end of set time out
					
				
			};
			reader.onloadend = function(e){
				
			}; 
			
		} else {
			//IE
			var path = $(this).val();
			image.src = path;
			$("#avatar").html(image);
			$(image).Jcrop({
				aspectRatio: JCROPRATIO,
				onChange:   showCoords,
				onSelect:   showCoords,
				onRelease:  clearCoords
			},function(){
				jcrop_api = this;
			});
			
			//设置长宽比
			width = image.width;
			height = image.height;
			while(width > MAXWIDTH || height > MAXHEIGHT) {
				var rat;
				if(width > MAXWIDTH) {
					rat = MAXWIDTH/width;
					width = MAXWIDTH;
					height = height*rat;
				}
				
				if(height > MAXHEIGHT) {
					rat = MAXHEIGHT/height;
					height = MAXHEIGHT;
					width = width*rat;
				}
				
			}
			$(image).css('width',width);
			$(image).css('height',height);
		}
		
	});
	
});

function showCoords(c){
	$('#x1').val(c.x);
	$('#y1').val(c.y);
	$('#x2').val(c.x2);
	$('#y2').val(c.y2);
	$('#w').val(c.w);
	$('#h').val(c.h);
};

function clearCoords(){
	$('#x1').val('');
	$('#y1').val('');
	$('#x2').val('');
	$('#y2').val('');
	$('#w').val('');
	$('#h').val('');
};


页面如下,其中坐标和长宽可以传到后台根据具体需求运用。
<div><input type="file" id="file" name="file"/></div>
<div id="avatar"><img src="css/blank.png"/></div>
<div>
	<label>X1 <input type="text" size="4" id="x1" name="x1" /></label>
	<label>Y1 <input type="text" size="4" id="y1" name="y1" /></label>
	<label>X2 <input type="text" size="4" id="x2" name="x2" /></label>
	<label>Y2 <input type="text" size="4" id="y2" name="y2" /></label>
	<label>W <input type="text" size="4" id="w" name="w" /></label>
	<label>H <input type="text" size="4" id="h" name="h" /></label>
</div>
分享到:
评论

相关推荐

    jQuery PHP头像上传预览代码.zip

    这个"jQuery PHP头像上传预览代码.zip"压缩包提供了实现这一功能的解决方案,主要涉及的技术包括jQuery库、PHP后端处理以及前端图像处理。 首先,jQuery是一个广泛使用的JavaScript库,它简化了HTML文档遍历、事件...

    jquery头像预览裁切

    在文件"jquery头像预览裁切代码"中,我们可以期待找到实现这一功能的所有相关代码,包括HTML模板、CSS样式和JavaScript逻辑。开发者可能已经将所有必要的部分整合在一起,使得其他开发者可以方便地复用或者参考这段...

    jQuery点击头像上传本地预览裁剪图片

    在IT领域,尤其是在Web开发中,用户界面的交互性至关重要,而"jQuery点击头像上传本地预览裁剪图片"就是一个提升用户体验的经典案例。这个功能允许用户在上传头像前预览并裁剪图片,提高了上传过程的可控性和便捷性...

    jQuery PHP头像图片上传预览插件.zip

    jQuery PHP头像图片上传预览插件

    头像上传裁切预览jquery代码

    在本文中,我们将深入探讨如何使用jQuery实现一个类似于新浪微博的头像上传和裁切预览功能。这个功能在很多Web应用中都非常实用,允许用户在上传头像前进行裁剪,确保图片符合特定的尺寸和形状,比如圆形。我们将...

    jquery实现头像剪切

    "jQuery实现头像剪切"是一个典型的前端交互功能,它结合了图像处理和用户交互,使得用户可以选择并裁剪图片以适应特定的展示区域。下面将详细讲解如何使用jQuery来实现这一功能。 首先,jQuery是一个轻量级的...

    jQuery新浪微博头像裁切预览代码

    【jQuery新浪微博头像裁切预览代码】是一个利用JavaScript库jQuery实现的功能,它允许用户在上传微博头像前进行裁剪并实时预览效果。这个功能对于提高用户体验,特别是社交媒体平台,至关重要,因为它让用户能够更好...

    jQuery php图片上传预览插件_头像上传预览代码

    本文将深入探讨使用jQuery和PHP实现图片上传预览的技术细节,以及如何结合头像上传进行预览。 首先,jQuery是一个轻量级的JavaScript库,它简化了HTML DOM操作、事件处理、动画和Ajax交互。在图片上传预览中,...

    jQuery实现的新浪微博头像裁切预览特效源码.zip

    《jQuery实现的新浪微博头像裁切预览特效详解》 在网页开发中,用户上传头像并进行裁剪预览是一项常见的功能,特别是在社交媒体平台。本文将深入解析一个基于jQuery实现的新浪微博头像裁切预览特效源码,旨在帮助...

    jQuery头像上传裁剪缩小放大预览

    这个头像上传裁剪是参照新浪微博个人中心的,支持裁剪缩小放大,并且可预览三种不同尺寸的放大镜图片效果。支持手机等app移动设备。 图片剪切上传演示地址:http://www.sucaihuo.com/js/910.html

    jquery头像编辑插件,编辑图片

    首先,"jquery头像编辑插件"是一种专门用于处理用户头像的工具,它通常结合HTML5的Canvas元素,提供图片上传、预览、裁剪、旋转和保存等功能。这样的插件对于网站用户界面中的个人资料设置或社交网络应用非常有用,...

    jQuery插件ImgAreaSelect实现头像上传预览和裁剪功能实例讲解一

    为了实现头像上传、预览以及裁剪功能,我们需要遵循以下步骤: 首先,要明确目标功能: 1. 图片上传预览:上传图片后,用户能够即时看到所上传图片的预览效果。 2. 拖拽裁剪:用户可以通过拖拽裁剪框,选取图片中的...

    15、jQuery新浪微博头像裁切预览代码

    【标题】"15、jQuery新浪微博头像裁切预览代码"所指的是一段使用jQuery库实现的JavaScript代码,其主要功能是为用户提供类似新浪微博的头像裁剪与预览功能。在微博或者类似的社交网络平台中,用户通常需要上传个人...

    jQuery实现简单的头像图片上传预览效果源码.zip

    在这个"jQuery实现简单的头像图片上传预览效果源码.zip"项目中,我们将探讨如何利用jQuery来创建一个直观且用户友好的头像图片上传预览功能。 首先,头像上传预览功能通常涉及HTML表单元素,特别是`...

    jquery上传头像

    "jquery上传头像"是基于jQuery实现的一种功能,允许用户在网站上上传个人头像。这种功能常见于社交网络、论坛或者个人资料编辑页面,以提供用户个性化体验。 在实现"jquery上传头像"的过程中,主要涉及以下知识点:...

    jquery头像截取

    《jQuery实现头像截取技术详解》 在Web开发中,用户头像的上传与截取功能已经成为一种常见的交互需求,特别是在社交网络、论坛、博客等应用中。本篇文章将详细探讨如何利用jQuery这一强大的JavaScript库来实现前端...

    Jquery的Cropper头像剪切

    本篇将详细介绍如何使用 `jQuery Cropper` 实现头像剪切,并分享一些优化技巧。 ### 1. 安装与引入 首先,你需要从官方仓库或CDN获取 `jQuery` 和 `Cropper.js` 文件。确保在HTML文档中正确引入它们: ```html ...

Global site tag (gtag.js) - Google Analytics