Hari ini saya akan memperkenalkan kepada Anda alat tangkapan layar (seperti avatar, dll.) yang sering digunakan di web:
JcropDemo
Struktur proyek:
Render:
Ini berguna:
Setelah melihat ini, semua orang ingin mencobanya sendiri.
==============
Bagian kode:
==============
Persiapan:
Unduh: Jcrop-0.9.10 (format zip)
Buka zip dan masukkan ke dalam proyek Anda, seperti struktur proyek di atas...
/Jcrop/WebContent/tapmodo-Jcrop/demos/tutorial1.html
Copy kode kodenya sebagai berikut:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Ketat//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<kepala>
<meta http-equiv="Jenis konten" content="teks/html;charset=UTF-8" />
<title>Jcrop » Tutorial » Halo Dunia</title>
<skrip src="../js/jquery.min.js" type="text/javascript"></script>
<skrip 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" />
<skrip tipe="teks/javascript">
jQuery(fungsi($){
// Seberapa mudahkah ini??
$('#target').Jcrop();
});
</skrip>
</kepala>
<tubuh>
<div id="luar">
<div>
<div>
<h1>Jcrop - Halo Dunia</h1>
<img src="demo_files/pool.jpg" id="target" />
<p>
<b>Contoh ini menunjukkan perilaku default Jcrop.</b>
Karena tidak ada event handler yang terpasang, maka event handler hanya berfungsi
perilaku tanam.
</p>
<div id="dl_links">
<a href="http://deepliquid.com/content/Jcrop.html">Beranda Jcrop</a> |
<a href="http://deepliquid.com/content/Jcrop_Manual.html">Manual (Dokumen)</a>
</div>
</div>
</div>
</div>
</tubuh>
</html>
/Jcrop/WebContent/tapmodo-Jcrop/demos/tutorial2.html
Copy kode kodenya sebagai berikut:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Ketat//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<kepala>
<meta http-equiv="Jenis konten" content="teks/html;charset=UTF-8" />
<title>Jcrop » Tutorial » Pengendali Peristiwa</title>
<skrip src="../js/jquery.min.js" type="text/javascript"></script>
<skrip 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" />
<skrip tipe="teks/javascript">
jQuery(fungsi($){
$('#target').Jcrop({
onChange: tampilkanCoords,
diPilih: showCoords,
onRelease: clearCoords
});
});
// Pengendali event sederhana, dipanggil dari onChange dan onSelect
// event handler, sesuai pemanggilan Jcrop di atas
fungsi showCoords(c)
{
$('#x1').val(cx);
$('#y1').val(cy);
$('#x2').val(c.x2);
$('#y2').val(c.y2);
$('#w').val(cw);
$('#h').val(ch);
};
fungsi clearCoords()
{
$('#coord masukan').val('');
};
</skrip>
</kepala>
<tubuh>
<div id="luar">
<div>
<div>
<h1>Jcrop - Pengendali Peristiwa</h1>
<!-- Ini adalah gambar yang kami lampirkan Jcrop -->
<img src="demo_files/pool.jpg" id="target" />
<!-- Ini adalah formulir yang diisi oleh event handler kita -->
<form id="koord"
kelas="coord"
onsubmit="kembalikan salah;"
tindakan="http://example.com/post.php">
<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>
</bentuk>
<p>
<b>Contoh dengan event handler dasar.</b> Di sini kita telah mengikatnya
beberapa nilai formulir bersama dengan pemanggilan event handler sederhana.
Hasilnya adalah nilai formulir diperbarui secara real-time
pilihan diubah menggunakan pengendali <em>onChange</em> Jcrop.
</p>
<p>
Begitulah betapa mudahnya Jcrop diintegrasikan ke dalam bentuk web tradisional!
</p>
<div id="dl_links">
<a href="http://deepliquid.com/content/Jcrop.html">Beranda Jcrop</a> |
<a href="http://deepliquid.com/content/Jcrop_Manual.html">Manual (Dokumen)</a>
</div>
</div>
</div>
</div>
</tubuh>
</html>
/Jcrop/WebContent/tapmodo-Jcrop/demos/tutorial3.html
Copy kode kodenya sebagai berikut:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Ketat//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<kepala>
<meta http-equiv="Jenis konten" content="teks/html;charset=UTF-8" />
<title>Jcrop » Tutorial » Rasio aspek dengan Pratinjau</title>
<skrip src="../js/jquery.min.js" type="text/javascript"></script>
<skrip 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" />
<skrip tipe="teks/javascript">
jQuery(fungsi($) {
// Buat variabel (dalam lingkup ini) untuk menampung API dan ukuran gambar
var jcrop_api, terikatx, terikat;
$('#target').Jcrop({
onChange: perbaruiPratinjau,
onSelect: perbaruiPratinjau,
Rasio Aspek : 1
}, fungsi() {
// Gunakan API untuk mendapatkan ukuran gambar sebenarnya
var batas = ini.getBounds();
batasx = batas[0];
batas = batas[1];
// Simpan API dalam variabel jcrop_api
jcrop_api = ini;
});
fungsi pembaruanPratinjau(c) {
jika (parseInt(cw) > 0) {
var rx = 100/cw;
var ry = 100/ch;
$('#pratinjau').css({
lebar : Math.round(rx *boundx) + 'px',
tinggi : Math.round(ry *boundy) + 'px',
marginLeft : '-' + Math.round(rx * cx) + 'px',
marginTop : '-' + Math.round(ry * cy) + 'px'
});
}
}
});
</skrip>
</kepala>
<tubuh>
<div id="luar">
<div>
<div>
<h1>Jcrop - Rasio aspek dengan panel pratinjau</h1>
<tabel>
<tr>
<td>
<div>
<img src="demo_files/pool.jpg" id="target"/>
</div>
</td>
<td>
<div>
<img src="demo_files/pool.jpg" id="pratinjau" />
</div>
</td>
</tr>
</tabel>
<p>
<b>Contoh penerapan panel pratinjau.</b> Jelas merupakan demo yang paling visual, panel pratinjau dilakukan sepenuhnya di luar Jcrop dengan callback rasa jQuery sederhana. Jenis antarmuka ini dapat berguna untuk membuat thumbnail atau avatar . Pengendali peristiwa onChange digunakan untuk memperbarui tampilan di panel pratinjau.
</p>
<div id="dl_links">
<a href="http://deepliquid.com/content/Jcrop.html">Beranda Jcrop</a> | <a href="http://deepliquid.com/content/Jcrop_Manual.html">Manual (Dokumen )</a>
</div>
</div>
</div>
</div>
</tubuh>
</html>
/Jcrop/WebContent/tapmodo-Jcrop/demos/tutorial4.html
Copy kode kodenya sebagai berikut:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Ketat//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<kepala>
<meta http-equiv="Jenis konten" content="teks/html;charset=UTF-8" />
<title>Jcrop » Tutorial » Animasi / Transisi</title>
<skrip src="../js/jquery.min.js" type="text/javascript"></script>
<skrip src="../js/jquery.Jcrop.js" type="text/javascript"></script>
<skrip 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" />
<skrip tipe="teks/javascript">
jQuery(fungsi($){
var jcrop_api;
$('#target').Jcrop({
bgFade: benar,
bgOpasitas: .3,
setPilih: [60, 70, 540, 330]
},fungsi(){
jcrop_api = ini;
});
$('#fadetog').perubahan(fungsi(){
jcrop_api.setOptions({
bgFade: ini.diperiksa
});
}).attr('dicentang','dicentang');
$('#shadetog').perubahan(fungsi(){
if (ini.dicentang) $('#shadetxt').slideDown();
lain $('#shadetxt').slideUp();
jcrop_api.setOptions({
shade: ini.diperiksa
});
}).attr('dicentang',salah);
// Tentukan bagian halaman
var bagian = {
anim_buttons: 'Pilihan Animasi',
bgo_buttons: 'Ubah bgOpacity',
bgc_buttons: 'Ubah bgColor'
};
// Tentukan tombol animasi
var ac = {
animasi1: [217.122.382.284],
animasi2: [20,20,580,380],
animasi3: [24,24,176,376],
animasi4: [347.165.550.355],
animasi5: [136,55,472,183]
};
// Tentukan tombol bgOpacity
var bgo = {
Rendah: .2,
Pertengahan: 0,5,
Tinggi: 0,8,
Penuh: 1
};
// Tentukan tombol bgColor
var bgc = {
Merah: '#900',
Biru: '#4BB6F0',
Kuning: '#F0B207',
Hijau: '#46B81C',
Putih: 'putih',
Hitam: 'hitam'
};
// Membuat target kumpulan bidang untuk tombol
untuk (saya di bagian)
insertSection(i,bagian[i]);
// Membuat tombol animasi
untuk(saya di ac) {
$('#anim_buttons').tambahkan(
$('<tombol />').append(i).click(animHandler(ac[i])), ' '
);
}
// Membuat tombol bgOpacity
untuk(saya di bgo) {
$('#bgo_buttons').tambahkan(
$('<button />').append(i).click(setoptHandler('bgOpacity',bgo[i])), ' '
);
}
// Membuat tombol bgColor
untuk(saya di bgc) {
$('#bgc_buttons').tambahkan(
$('<tombol />').append(i).css({
warna latar belakang: bgc[i],
warna: ((i == 'Hitam') || (i == 'Merah'))?'putih':'hitam'
}).klik(setoptHandler('bgColor',bgc[i])), ' '
);
}
// Berfungsi untuk menyisipkan bagian bernama ke dalam antarmuka
fungsi sisipkanBagian(k,v) {
$('#antarmuka').tambahkan(
$('<fieldset></fieldset>').attr('id',k).append(
$('<legend></legend>').tambahkan(v)
)
);
};
// Penangan untuk tombol pengaturan opsi
fungsi setoptHandler(k,v) {
fungsi kembali() {
var memilih = {};
memilih[k] = v;
jcrop_api.setOptions(memilih);
kembali salah;
};
};
// Penangan untuk tombol animasi
fungsi animHandler(v) {
fungsi kembali() {
jcrop_api.animateTo(v);
kembali salah;
};
};
$('#anim_buttons').tambahkan(
$('<button></button>').append('Sampai jumpa!').click(function(){
jcrop_api.animateTo(
[300.200.300.200],
fungsi(){ ini.rilis();
);
kembali salah;
})
);
$('#antarmuka').tampilkan();
});
</skrip>
</kepala>
<tubuh>
<div id="luar">
<div>
<div>
<h1>Jcrop - Animasi/Transisi</h1>
<img src="demo_files/sago.jpg" id="target" />
<div id="antarmuka" style="margin: 1em 0;"></div>
<div><label><input type="checkbox" id="fadetog" /> Mengaktifkan pemudaran (bgFade: true)</label></div>
<div><label><input type="checkbox" id="shadetog" /> Gunakan shader eksperimental (shade: true)</label></div>
<p id="shadetxt" style="display:none; color:#900;">
<b>Shader eksperimental aktif.</b>
Jcrop sekarang menyertakan mode bayangan yang memfasilitasi pembangunan
contoh Jcrop transparan yang lebih baik. Shader eksperimental lebih sedikit
lebih kuat dari metode peneduh default Jcrop dan seharusnya begitu
digunakan jika Anda memerlukan fungsi ini.
</p>
<p>
<b>Animasi/Transisi.</b>
Demonstrasi metode animateTo API dan transisi untuk bgColor
dan opsi bgOpacity. Memudarnya warna memerlukan penyertaan John Resig
jQuery <a href="http://plugins.jquery.com/project/color">Warna
Plugin animasi</a>. Jika tidak disertakan, warna tidak akan pudar.
</p>
<div id="dl_links">
<a href="http://deepliquid.com/content/Jcrop.html">Beranda Jcrop</a> |
<a href="http://deepliquid.com/content/Jcrop_Manual.html">Manual (Dokumen)</a>
</div>
</div>
</div>
</div>
</tubuh>
</html>
/Jcrop/WebContent/tapmodo-Jcrop/demos/tutorial5.html
Copy kode kodenya sebagai berikut:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Ketat//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<kepala>
<meta http-equiv="Jenis konten" content="teks/html;charset=UTF-8" />
<title>Jcrop » Tutorial » Demo API</title>
<skrip src="../js/jquery.min.js" type="text/javascript"></script>
<skrip 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" />
<gaya tipe="teks/css">
.optdual { posisi: relatif; }
.optdual .offset { posisi: absolut; kiri: 18em;
.optlist label { lebar: 16em; tampilan: blok }
#dl_links { margin-atas: .5em;
</gaya>
<skrip tipe="teks/javascript">
jQuery(fungsi($){
// Variabel jcrop_api akan menyimpan referensi ke
// Jcrop API setelah Jcrop dibuat.
var jcrop_api;
// Dalam contoh ini, karena Jcrop dapat dilampirkan atau dilepas
// sesuai keinginan pengguna, saya telah menggabungkan panggilan tersebut ke dalam sebuah fungsi
initJcrop();
// Fungsinya cukup sederhana
fungsi initJcrop()//{{{
{
// Sembunyikan elemen antarmuka apa pun yang memerlukan Jcrop
// (Ini untuk bagian antarmuka pengguna lokal.)
$('.requiresjcrop').hide();
//Panggil Jcrop dengan cara yang khas
$('#target').Jcrop({
onRelease: rilisPeriksa
},fungsi(){
jcrop_api = ini;
jcrop_api.animateTo([100,100,400,300]);
// Siapkan dan tampilkan antarmuka untuk "diaktifkan"
$('#can_click,#can_move,#can_size').attr('dicentang','dicentang');
$('#ar_lock,#size_lock,#bg_swap').attr('dicentang',false);
$('.requiresjcrop').show();
});
};
//}}}
// Gunakan API untuk menemukan dimensi pemangkasan
// Kemudian buat pilihan acak
// Fungsi ini digunakan oleh tombol setSelect dan animateTo
// Terutama untuk tujuan demonstrasi
fungsi getRandom() {
var redup = jcrop_api.getBounds();
kembali [
Matematika.bulat(Matematika.acak() * redup[0]),
Matematika.bulat(Matematika.acak() * redup[1]),
Matematika.bulat(Matematika.acak() * redup[0]),
Matematika.bulat(Matematika.acak() * redup[1])
];
};
// Fungsi ini terikat pada pengendali onRelease...
// Dalam keadaan tertentu (misalnya jika Anda menyetel minSize
// dan aspekRatio bersama-sama), Anda bisa kalah secara tidak sengaja
// pilihan. Panggilan balik ini mengaktifkan kembali pembuatan pilihan
// dalam kasus seperti itu. Meskipun kebutuhan untuk melakukan ini didasarkan pada a
// perilaku buggy, disarankan agar Anda menjebaknya dengan cara tertentu
// callback onRelease jika Anda menggunakanallowSelect: false
rilis fungsiCheck()
{
jcrop_api.setOptions({ izinkanPilih: benar });
$('#can_click').attr('dicentang',false);
};
//Lampirkan tombol antarmuka
// Ini mungkin tampak seperti kode yang banyak, namun sederhana saja
$('#setSelect').klik(fungsi(e) {
// Menetapkan pilihan acak
jcrop_api.setSelect(getRandom());
});
$('#animateTo').klik(fungsi(e) {
// Bernyawa ke pilihan acak
jcrop_api.animateTo(getRandom());
});
$('#release').klik(fungsi(e) {
// Metode rilis menghapus pilihan
jcrop_api.rilis();
});
$('#disable').klik(fungsi(e) {
// Nonaktifkan instance Jcrop
jcrop_api.disable();
// Perbarui antarmuka untuk mencerminkan status nonaktif
$('#aktifkan').tampilkan();
$('.requiresjcrop').hide();
});
$('#aktifkan').klik(fungsi(e) {
// Aktifkan kembali instance Jcrop
jcrop_api.enable();
// Perbarui antarmuka untuk mencerminkan status yang diaktifkan
$('#aktifkan').sembunyikan();
$('.requiresjcrop').show();
});
$('#rehook').klik(fungsi(e) {
// Tombol ini terlihat ketika Jcrop telah dimusnahkan
// Ia melakukan lampiran ulang dan memperbarui UI
$('#rehook,#aktifkan').hide();
initJcrop();
$('#unhook,.requiresjcrop').show();
kembali salah;
});
$('#melepaskan').klik(fungsi(e) {
// Hancurkan widget Jcrop, pulihkan keadaan semula
jcrop_api.hancurkan();
// Perbarui antarmuka untuk mencerminkan keadaan tidak terpasang
$('#lepas kaitan,#aktifkan,.memerlukanjcrop').hide();
$('#rehook').tampilkan();
kembali salah;
});
// Hubungkan ketiga tombol pertukaran gambar
$('#img1').klik(fungsi(e) {
jcrop_api.setImage('demo_files/sago.jpg');
jcrop_api.setOptions({ bgOpacity: .6 });
kembali salah;
});
$('#img2').klik(fungsi(e) {
jcrop_api.setImage('demo_files/pool.jpg');
jcrop_api.setOptions({ bgOpacity: .6 });
kembali salah;
});
$('#img3').klik(fungsi(e) {
jcrop_api.setImage('demo_files/sago.jpg',function(){
ini.setOptions({
bgOpasitas: 1,
gambar luar: 'demo_files/sagomod.jpg'
});
ini.animateTo(getRandom());
});
kembali salah;
});
// Kotak centang hanya mengatur opsi berdasarkan nilai yang dicentang
// Opsi diubah dengan meneruskan objek opsi baru
// Selain itu, untuk mencegah perilaku aneh, mereka diperiksa terlebih dahulu
// Ini cocok dengan keadaan awal default Jcrop
$('#can_click').change(fungsi(e) {
jcrop_api.setOptions({allowSelect:!!this.checked });
jcrop_api.fokus();
});
$('#can_move').change(fungsi(e) {
jcrop_api.setOptions({allowMove:!!this.checked });
jcrop_api.fokus();
});
$('#can_size').change(fungsi(e) {
jcrop_api.setOptions({allowResize:!!this.checked });
jcrop_api.fokus();
});
$('#ar_lock').change(fungsi(e) {
jcrop_api.setOptions(ini.diperiksa?
{ Rasio aspek: 4/3 }: { Rasio aspek: 0 });
jcrop_api.fokus();
});
$('#size_lock').change(fungsi(e) {
jcrop_api.setOptions(ini.diperiksa? {
Ukuran minimal: [80, 80],
Ukuran maksimal: [350, 350]
}: {
Ukuran minimal: [0, 0],
Ukuran maksimal: [0, 0]
});
jcrop_api.fokus();
});
});
</skrip>
</kepala>
<tubuh>
<div id="luar">
<div>
<div>
<h1>Jcrop - Demo API</h1>
<img src="demo_files/sago.jpg" id="target" />
<div style="margin: .8em 0 .5em;">
<rentang>
<button id="setSelect">setSelect</button>
<button id="animateTo">animateTo</button>
<button id="release">Lepaskan</button>
<button id="disable">Nonaktifkan</button>
</span>
<button id="enable" style="display:none;">Aktifkan kembali</button>
<button id="unhook">Hancurkan!</button>
<button id="rehook" style="display:none;">Lampirkan Jcrop</button>
</div>
<kumpulan bidang>
<legend>Tombol Opsi</legend>
<div>
<label><input type="checkbox" id="ar_lock" />Rasio aspek</label>
<label><input type="checkbox" id="size_lock" />setelan minSize/maxSize</label>
</div>
<div>
<label><input type="checkbox" id="can_click" />Izinkan pilihan baru</label>
<label><input type="checkbox" id="can_move" />Pilihan dapat dipindahkan</label>
<label><input type="checkbox" id="can_size" />Pilihan yang dapat diubah ukurannya</label>
</div>
</set bidang>
<fieldset style="margin: .5em 0;">
<legend>Ubah Gambar</legend>
<rentang>
<button id="img2">Kolam</button>
<button id="img1">Sagu</button>
<button id="img3">Sagu dengan gambar luar</button>
</span>
</set bidang>
<div id="dl_links">
<a href="http://deepliquid.com/content/Jcrop.html">Beranda Jcrop</a> |
<a href="http://deepliquid.com/content/Jcrop_Manual.html">Manual (Dokumen)</a>
</div>
</div>
</div>
</div>
</tubuh>
</html>