jcrop 网页截图工具(插件)开发

嘘咱上头有人

嘘咱上头有人

2016-02-19 11:34

人生本是一个不断学习的过程,在这个过程中,图老师就是你们的好帮手,下面分享的jcrop 网页截图工具(插件)开发懂设计的网友们快点来了解吧!

今天给大家介绍一下一个web 中经常会用到的截图(如:头像等)工具:

Jcrop演示

项目结构:

效果图:

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

这个很有用:

看到这些,大家也想自己试试吧

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

===========================================

代码部分:

===========================================

准备工作:

下载:Jcrop-0.9.10 (zip format)

解压后放入到你的项目里面,就如上面的项目结构一样...

/Jcrop/WebContent/tapmodo-Jcrop/demos/tutorial1.html

代码如下:

!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
html xmlns="http://www.w3.org/1999/xhtml"
head
meta http-equiv="Content-type" content="text/html;charset=UTF-8" /
titleJcrop » Tutorials » Hello World/title
script src="../js/jquery.min.js" type="text/javascript"/script
script src="../js/jquery.Jcrop.js" type="text/javascript"/script
link rel="stylesheet" href="../css/jquery.Jcrop.css" type="text/css" /
link rel="stylesheet" href="demo_files/demos.css" type="text/css" /
script type="text/javascript"

jQuery(function($){

// How easy is this??
$('#target').Jcrop();

});

/script
/head

body
div id="outer"
div class="jcExample"
div class="article"

h1Jcrop - Hello World/h1
img src="demo_files/pool.jpg" id="target" alt="" /

p
bThis example demonstrates the default behavior of Jcrop./b
Since no event handlers have been attached it only performs
the cropping behavior.
/p

div id="dl_links"
a href="http://deepliquid.com/content/Jcrop.html"Jcrop Home/a |
a href="http://deepliquid.com/content/Jcrop_Manual.html"Manual (Docs)/a
/div

/div
/div
/div
/body
/html

/Jcrop/WebContent/tapmodo-Jcrop/demos/tutorial2.html代码如下:

!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
html xmlns="http://www.w3.org/1999/xhtml"
head
meta http-equiv="Content-type" content="text/html;charset=UTF-8" /
titleJcrop » Tutorials » Event Handler/title
script src="../js/jquery.min.js" type="text/javascript"/script
script src="../js/jquery.Jcrop.js" type="text/javascript"/script
link rel="stylesheet" href="../css/jquery.Jcrop.css" type="text/css" /
link rel="stylesheet" href="demo_files/demos.css" type="text/css" /
script type="text/javascript"
jQuery(function($){
$('#target').Jcrop({
onChange: showCoords,
onSelect: showCoords,
onRelease: clearCoords
});
});
// Simple event handler, called from onChange and onSelect
// event handlers, as per the Jcrop invocation above
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()
{
$('#coords input').val('');
};
/script
/head
body
div id="outer"
div class="jcExample"
div class="article"
h1Jcrop - Event Handlers/h1
!-- This is the image we're attaching Jcrop to --
img src="demo_files/pool.jpg" id="target" alt="" /
!-- This is the form that our event handler fills --
form id="coords"
class="coords"
onsubmit="return false;"
action="http://example.com/post.php"
div
labelX1 input type="text" size="4" id="x1" name="x1" //label
labelY1 input type="text" size="4" id="y1" name="y1" //label
labelX2 input type="text" size="4" id="x2" name="x2" //label
labelY2 input type="text" size="4" id="y2" name="y2" //label
labelW input type="text" size="4" id="w" name="w" //label
labelH input type="text" size="4" id="h" name="h" //label
/div
/form
p
bAn example with a basic event handler./b Here we've tied
several form values together with a simple event handler invocation.
The result is that the form values are updated in real-time as
the selection is changed using Jcrop's emonChange/em handler.
/p
p
That's how easily Jcrop can be integrated into a traditional web form!
/p
div id="dl_links"
a href="http://deepliquid.com/content/Jcrop.html"Jcrop Home/a |
a href="http://deepliquid.com/content/Jcrop_Manual.html"Manual (Docs)/a
/div
/div
/div
/div
/body
/html

/Jcrop/WebContent/tapmodo-Jcrop/demos/tutorial3.html
 代码如下:

!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
html xmlns="http://www.w3.org/1999/xhtml"
head
meta http-equiv="Content-type" content="text/html;charset=UTF-8" /
titleJcrop » Tutorials » aspectRatio w/ Preview/title
script src="../js/jquery.min.js" type="text/javascript"/script
script src="../js/jquery.Jcrop.js" type="text/javascript"/script
link rel="stylesheet" href="../css/jquery.Jcrop.css" type="text/css" /
link rel="stylesheet" href="demo_files/demos.css" type="text/css" /
script type="text/javascript"
jQuery(function($) {
// Create variables (in this scope) to hold the API and image size
var jcrop_api, boundx, boundy;
$('#target').Jcrop({
onChange : updatePreview,
onSelect : updatePreview,
aspectRatio : 1
}, function() {
// Use the API to get the real image size
var bounds = this.getBounds();
boundx = bounds[0];
boundy = bounds[1];
// Store the API in the jcrop_api variable
jcrop_api = this;
});
function updatePreview(c) {
if (parseInt(c.w) 0) {
var rx = 100 / c.w;
var ry = 100 / c.h;
$('#preview').css({
width : Math.round(rx * boundx) + 'px',
height : Math.round(ry * boundy) + 'px',
marginLeft : '-' + Math.round(rx * c.x) + 'px',
marginTop : '-' + Math.round(ry * c.y) + 'px'
});
}
}

});
/script
/head
body
div id="outer"
div class="jcExample"
div class="article"
h1Jcrop - Aspect ratio w/ preview pane/h1
table
tr
td
div style="width: 500px; height: 370px; overflow: hidden;"
img src="demo_files/pool.jpg" id="target" alt="" style="width: 500px; height: 370px;"/
/div
/td
td
div style="width: 100px; height: 100px; overflow: hidden;"
img src="demo_files/pool.jpg" id="preview" alt="" class="jcrop-preview" /
/div
/td
/tr
/table
p
bAn example implementing a preview pane./b Obviously the most visual demo, the preview pane is accomplished entirely outside of Jcrop with a simple jQuery-flavored callback. This type of interface could be useful for creating a thumbnail or avatar. The onChange event handler is used to update the view in the preview pane.
/p
div id="dl_links"
a href="http://deepliquid.com/content/Jcrop.html"Jcrop Home/a | a href="http://deepliquid.com/content/Jcrop_Manual.html"Manual (Docs)/a
/div
/div
/div
/div
/body
/html

/Jcrop/WebContent/tapmodo-Jcrop/demos/tutorial4.html
代码如下:

!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
html xmlns="http://www.w3.org/1999/xhtml"
head
meta http-equiv="Content-type" content="text/html;charset=UTF-8" /
titleJcrop » Tutorials » Animations / Transitions/title
script src="../js/jquery.min.js" type="text/javascript"/script
script src="../js/jquery.Jcrop.js" type="text/javascript"/script
script src="../js/jquery.color.js" type="text/javascript"/script
link rel="stylesheet" href="../css/jquery.Jcrop.css" type="text/css" /
link rel="stylesheet" href="../css/jquery.Jcrop.extras.css" type="text/css" /
link rel="stylesheet" href="demo_files/demos.css" type="text/css" /
script type="text/javascript"
jQuery(function($){
var jcrop_api;
$('#target').Jcrop({
bgFade: true,
bgOpacity: .3,
setSelect: [ 60, 70, 540, 330 ]
},function(){
jcrop_api = this;
});
$('#fadetog').change(function(){
jcrop_api.setOptions({
bgFade: this.checked
});
}).attr('checked','checked');
$('#shadetog').change(function(){
if (this.checked) $('#shadetxt').slideDown();
else $('#shadetxt').slideUp();
jcrop_api.setOptions({
shade: this.checked
});
}).attr('checked',false);
// Define page sections
var sections = {
anim_buttons: 'Animate Selection',
bgo_buttons: 'Change bgOpacity',
bgc_buttons: 'Change bgColor'
};
// Define animation buttons
var ac = {
anim1: [217,122,382,284],
anim2: [20,20,580,380],
anim3: [24,24,176,376],
anim4: [347,165,550,355],
anim5: [136,55,472,183]
};
// Define bgOpacity buttons
var bgo = {
Low: .2,
Mid: .5,
High: .8,
Full: 1
};
// Define bgColor buttons
var bgc = {
Red: '#900',
Blue: '#4BB6F0',
Yellow: '#F0B207',
Green: '#46B81C',
White: 'white',
Black: 'black'
};
// Create fieldset targets for buttons
for(i in sections)
insertSection(i,sections[i]);
// Create animation buttons
for(i in ac) {
$('#anim_buttons').append(
$('button /').append(i).click(animHandler(ac[i])), ' '
);
}
// Create bgOpacity buttons
for(i in bgo) {
$('#bgo_buttons').append(
$('button /').append(i).click(setoptHandler('bgOpacity',bgo[i])), ' '
);
}
// Create bgColor buttons
for(i in bgc) {
$('#bgc_buttons').append(
$('button /').append(i).css({
backgroundColor: bgc[i],
color: ((i == 'Black') || (i == 'Red'))?'white':'black'
}).click(setoptHandler('bgColor',bgc[i])), ' '
);
}
// Function to insert named sections into interface
function insertSection(k,v) {
$('#interface').append(
$('fieldset/fieldset').attr('id',k).append(
$('legend/legend').append(v)
)
);
};
// Handler for option-setting buttons
function setoptHandler(k,v) {
return function() {
var opt = { };
opt[k] = v;
jcrop_api.setOptions(opt);
return false;
};
};
// Handler for animation buttons
function animHandler(v) {
return function() {
jcrop_api.animateTo(v);
return false;
};
};
$('#anim_buttons').append(
$('button/button').append('Bye!').click(function(){
jcrop_api.animateTo(
[300,200,300,200],
function(){ this.release(); }
);
return false;
})
);
$('#interface').show();
});
/script
/head
body
div id="outer"
div class="jcExample"
div class="article"
h1Jcrop - Animations/Transitions/h1
img src="demo_files/sago.jpg" id="target" alt="" /
div id="interface" style="margin: 1em 0;"/div
divlabelinput type="checkbox" id="fadetog" / Enable fading (bgFade: true)/label/div
divlabelinput type="checkbox" id="shadetog" / Use experimental shader (shade: true)/label/div
p id="shadetxt" style="display:none; color:#900;"
bExperimental shader active./b
Jcrop now includes a shading mode that facilitates building
better transparent Jcrop instances. The experimental shader is less
robust than Jcrop's default shading method and should only be
used if you require this functionality.
/p
p
bAnimation/Transitions./b
Demonstration of animateTo API method and transitions for bgColor
and bgOpacity options. Color fading requires inclusion of John Resig's
jQuery a href="http://plugins.jquery.com/project/color"Color
Animations/a plugin. If it is not included, colors will not fade.
/p
div id="dl_links"
a href="http://deepliquid.com/content/Jcrop.html"Jcrop Home/a |
a href="http://deepliquid.com/content/Jcrop_Manual.html"Manual (Docs)/a
/div
/div
/div
/div
/body
/html

/Jcrop/WebContent/tapmodo-Jcrop/demos/tutorial5.html代码如下:

!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
html xmlns="http://www.w3.org/1999/xhtml"
head
meta http-equiv="Content-type" content="text/html;charset=UTF-8" /
titleJcrop » Tutorials » API Demo/title
script src="../js/jquery.min.js" type="text/javascript"/script
script src="../js/jquery.Jcrop.js" type="text/javascript"/script
link rel="stylesheet" href="../css/jquery.Jcrop.css" type="text/css" /
link rel="stylesheet" href="demo_files/demos.css" type="text/css" /
style type="text/css"
.optdual { position: relative; }
.optdual .offset { position: absolute; left: 18em; }
.optlist label { width: 16em; display: block; }
#dl_links { margin-top: .5em; }
/style
script type="text/javascript"
jQuery(function($){
// The variable jcrop_api will hold a reference to the
// Jcrop API once Jcrop is instantiated.
var jcrop_api;
// In this example, since Jcrop may be attached or detached
// at the whim of the user, I've wrapped the call into a function
initJcrop();
// The function is pretty simple
function initJcrop()//{{{
{
// Hide any interface elements that require Jcrop
// (This is for the local user interface portion.)
$('.requiresjcrop').hide();
// Invoke Jcrop in typical fashion
$('#target').Jcrop({
onRelease: releaseCheck
},function(){
jcrop_api = this;
jcrop_api.animateTo([100,100,400,300]);
// Setup and dipslay the interface for "enabled"
$('#can_click,#can_move,#can_size').attr('checked','checked');
$('#ar_lock,#size_lock,#bg_swap').attr('checked',false);
$('.requiresjcrop').show();
});
};
//}}}
// Use the API to find cropping dimensions
// Then generate a random selection
// This function is used by setSelect and animateTo buttons
// Mainly for demonstration purposes
function getRandom() {
var dim = jcrop_api.getBounds();
return [
Math.round(Math.random() * dim[0]),
Math.round(Math.random() * dim[1]),
Math.round(Math.random() * dim[0]),
Math.round(Math.random() * dim[1])
];
};
// This function is bound to the onRelease handler...
// In certain circumstances (such as if you set minSize
// and aspectRatio together), you can inadvertently lose
// the selection. This callback re-enables creating selections
// in such a case. Although the need to do this is based on a
// buggy behavior, it's recommended that you in some way trap
// the onRelease callback if you use allowSelect: false
function releaseCheck()
{
jcrop_api.setOptions({ allowSelect: true });
$('#can_click').attr('checked',false);
};
// Attach interface buttons
// This may appear to be a lot of code but it's simple stuff
$('#setSelect').click(function(e) {
// Sets a random selection
jcrop_api.setSelect(getRandom());
});
$('#animateTo').click(function(e) {
// Animates to a random selection
jcrop_api.animateTo(getRandom());
});
$('#release').click(function(e) {
// Release method clears the selection
jcrop_api.release();
});
$('#disable').click(function(e) {
// Disable Jcrop instance
jcrop_api.disable();
// Update the interface to reflect disabled state
$('#enable').show();
$('.requiresjcrop').hide();
});
$('#enable').click(function(e) {
// Re-enable Jcrop instance
jcrop_api.enable();
// Update the interface to reflect enabled state
$('#enable').hide();
$('.requiresjcrop').show();
});
$('#rehook').click(function(e) {
// This button is visible when Jcrop has been destroyed
// It performs the re-attachment and updates the UI
$('#rehook,#enable').hide();
initJcrop();
$('#unhook,.requiresjcrop').show();
return false;
});
$('#unhook').click(function(e) {
// Destroy Jcrop widget, restore original state
jcrop_api.destroy();
// Update the interface to reflect un-attached state
$('#unhook,#enable,.requiresjcrop').hide();
$('#rehook').show();
return false;
});
// Hook up the three image-swapping buttons
$('#img1').click(function(e) {
jcrop_api.setImage('demo_files/sago.jpg');
jcrop_api.setOptions({ bgOpacity: .6 });
return false;
});
$('#img2').click(function(e) {
jcrop_api.setImage('demo_files/pool.jpg');
jcrop_api.setOptions({ bgOpacity: .6 });
return false;
});
$('#img3').click(function(e) {
jcrop_api.setImage('demo_files/sago.jpg',function(){
this.setOptions({
bgOpacity: 1,
outerImage: 'demo_files/sagomod.jpg'
});
this.animateTo(getRandom());
});
return false;
});
// The checkboxes simply set options based on it's checked value
// Options are changed by passing a new options object
// Also, to prevent strange behavior, they are initially checked
// This matches the default initial state of Jcrop
$('#can_click').change(function(e) {
jcrop_api.setOptions({ allowSelect: !!this.checked });
jcrop_api.focus();
});
$('#can_move').change(function(e) {
jcrop_api.setOptions({ allowMove: !!this.checked });
jcrop_api.focus();
});
$('#can_size').change(function(e) {
jcrop_api.setOptions({ allowResize: !!this.checked });
jcrop_api.focus();
});
$('#ar_lock').change(function(e) {
jcrop_api.setOptions(this.checked?
{ aspectRatio: 4/3 }: { aspectRatio: 0 });
jcrop_api.focus();
});
$('#size_lock').change(function(e) {
jcrop_api.setOptions(this.checked? {
minSize: [ 80, 80 ],
maxSize: [ 350, 350 ]
}: {
minSize: [ 0, 0 ],
maxSize: [ 0, 0 ]
});
jcrop_api.focus();
});
});
/script
/head
body
div id="outer"
div class="jcExample"
div class="article"
h1Jcrop - API Demo/h1
img src="demo_files/sago.jpg" id="target" alt="" /
div style="margin: .8em 0 .5em;"
span class="requiresjcrop"
button id="setSelect"setSelect/button
button id="animateTo"animateTo/button
button id="release"Release/button
button id="disable"Disable/button
/span
button id="enable" style="display:none;"Re-Enable/button
button id="unhook"Destroy!/button
button id="rehook" style="display:none;"Attach Jcrop/button
/div
fieldset class="optdual requiresjcrop"
legendOption Toggles/legend
div class="optlist offset"
labelinput type="checkbox" id="ar_lock" /Aspect ratio/label
labelinput type="checkbox" id="size_lock" /minSize/maxSize setting/label
/div
div class="optlist"
labelinput type="checkbox" id="can_click" /Allow new selections/label
labelinput type="checkbox" id="can_move" /Selection can be moved/label
labelinput type="checkbox" id="can_size" /Resizable selection/label
/div
/fieldset
fieldset class="requiresjcrop" style="margin: .5em 0;"
legendChange Image/legend
span
button id="img2"Pool/button
button id="img1"Sago/button
button id="img3"Sago w/ outerImage/button
/span
/fieldset
div id="dl_links"
a href="http://deepliquid.com/content/Jcrop.html"Jcrop Home/a |
a href="http://deepliquid.com/content/Jcrop_Manual.html"Manual (Docs)/a
/div
/div
/div
/div
/body
/html
展开更多 50%)
分享

猜你喜欢

jcrop 网页截图工具(插件)开发

编程语言 网络编程
jcrop 网页截图工具(插件)开发

jQuery 图像裁剪插件Jcrop的简单使用

Web开发
jQuery 图像裁剪插件Jcrop的简单使用

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

网页开发者的20款FIREFOX插件

电脑网络
网页开发者的20款FIREFOX插件

多种截图方式及截图工具详解

电脑网络
多种截图方式及截图工具详解

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

微信网页开发者工具是什么

电脑网络
微信网页开发者工具是什么

献给网页开发者的20款Firefox插件分享

平面设计 海报设计 广告设计 画报设计 签名设计 服装设计 名片设计 画册设计 版式设计 商标设计
献给网页开发者的20款Firefox插件分享

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

PHP编程网上资源导航

PHP编程网上资源导航

java面向对象基础_final详细介绍

java面向对象基础_final详细介绍
下拉加载更多内容 ↓