Cara menggunakan javascript hero
PengantarMetode larik Show
Contoh di atas mengambil larik Sintaks filter
Argumen item adalah referensi ke elemen saat ini di larik karena filter() memeriksanya terhadap condition. Ini berguna untuk mengakses properti, dalam hal objek. Jika item saat ini menyalurkan syarat, ia akan dikirim ke larik baru. Menyaring larik objekKasus penggunaan umum .filter() adalah bersama larik objek melalui propertinya:
Sumber Daya TambahanUntuk detail selengkapnya tentang Filter hanya salah satu dari beberapa metode iterasi terhadap Larik di JavaScript, bacalah Cara Menggunakan Metode Iterasi Larik di JavaScript untuk mempelajari tentang metode lain seperti Want to learn more? Join the DigitalOcean Community!Join our DigitalOcean community of over a million developers for free! Get help and share knowledge in our Questions & Answers section, find tutorials and tools that will help you grow as a developer and scale your project or business, and subscribe to topics of interest. Sign up Indonesian (Bahasa Indonesia) translation by Zadip (you can also view the original English article) Sejauh ini kita telah membangun halaman HTML konkret dan menerapkan beberapa gaya. Tutorial ini akan fokus pada menambah interaktivitas ke situs melalui JavaScript. Kami akan membaginya menjadi dua bagian:
Plugin OverviewAda banyak plugin jquery yang dapat kita gunakan untuk tutorial ini, tetapi kita akan tetap memakai dibawah ini:
Menyiapkan ruang kerjaSetelah menemukan plugin yang diperlukan untuk website kita, sekarang saatnya untuk men-download dan referensinya dalam Seperti yang Anda lihat, saya mendownloadnya ke folder baru disebu
Sekarang segala sesuatu sudah disiapkan mari kita pindah ke bagian berikutnya, dimana kita akan bermain dengan masing-masing plugin. Menulis skripHal pertama yang perlu Anda pelajari ketika menulis Saya sangat suka menjaga kode saya bersih, jadi itu sebabnya Anda akan sering melihat saya menyimpan penyeleksi dalam variabel (seperti yang Anda lihat di bawah), memakai dua ruang untuk indentasi dan pedoman di 80 karakter. Hero SectionHero Section kami idealnya memiliki Untuk mendapatkan ketinggian window, kita akan menggunakan window.innerHeight yang meng-output tinggi // =Hero // Alway make hero-container height equal to window height var $heroContainer = $('.hero'); $heroContainer.height(window.innerHeight); Di sini kita menerapkan
ketinggian viewport untuk // When user resize browser window, hero container needs to have the same // height as browser window height. $(window).resize(function() { $heroContainer.height(window.innerHeight); }); Menyimpan penyeleksi dalam variabel membuat mereka mudah untuk mempertahankan dan penggunaan kembali. Anda harus memiliki sesuatu seperti ini: // =Hero // Alway make hero-container height equal to window height var $heroContainer = $('.hero'); $heroContainer.height(window.innerHeight); // When user resize browser window, hero container needs to have the same // height as browser window height. $(window).resize(function() { $heroContainer.height(window.innerHeight); }); MenuPertama
dari yang pertama, mari kita menyimpan penyeleksi yang akan kita gunakan dalam variabel. Untuk saat ini, kita perlu var $menuIcon = $('.menu-icon'), $navigation = $('.navigation'), $mainNavigation = $('.main-navigation'), $navigationLink = $('.main-navigation a'); Ketika kita memiliki beberapa Deklarasi variabel, tidak perlu untuk mengulang Mari kita lampirkan event klik pada $menuIcon.click(function(e) { e.preventDefault(); $navigation.toggleClass('active'); }); Mari kita sekarang menggunakan $mainNavigation.singlePageNav({ filter: ':not(.external)', speed: 1000, currentClass: 'current', easing: 'swing', updateHash: false, beforeStart: function() { }, onComplete: function() { $navigation.removeClass('active'); } }); Di sini saya juga menambahkan scroll listener yang akan menambahkan kelas yang berbeda ke $(window).scroll(function() { if(window.scrollY > window.innerHeight) { $menuIcon.addClass('active'); } else { $menuIcon.removeClass('active'); } }); Seluruh kode untuk menu sekarang terlihat seperti ini: // Menu initialization var $menuIcon = $('.menu-icon'), $navigation = $('.navigation'), $mainNavigation = $('.main-navigation'), $navigationLink = $('.main-navigation a'); $(window).scroll(function() { if(window.scrollY > window.outerHeight) { $menuIcon.addClass('active'); } else { $menuIcon.removeClass('active'); } }); $menuIcon.click(function(e) { e.preventDefault(); $navigation.toggleClass('active'); }); $mainNavigation.singlePageNav({ filter: ':not(.external)', speed: 1000, currentClass: 'current', easing: 'swing', updateHash: false, beforeStart: function() { }, onComplete: function() { $navigation.removeClass('active'); } }); ScrollrevealInisialisasi untuk // Scrollreveal initialize var config = { easing: 'hustle', reset: false, delay: 'onload', opacity: .2, vFactor: 0.2, mobile: false } window.sr = new scrollReveal(config); PekerjaanDalam kasus ini, script apa yang akan kita kerjakan? Ada tiga hal besar:
Kita akan mulai dengan menyimpan variabel yang diperlukan untuk plugin ini. $workFilterLinks.find('a').click(function(){ $workFilterLinks.removeClass('active'); $(this).parent().addClass('active'); return false; }); Dalam fungsi
panggilan balik klik, kami akan menargetkan $container.isotope({ // options filter: $(this).attr('data-filter'), itemSelector: '.isotope-item', animationEngine : "best-available", masonry: { columnWidth: '.isotope-item' } }); Ini akan menyaring item isotop dengan atribut Kode untuk bagian kerja kami sekarang harusnya terlihat seperti ini: // =Work // Isotope filters var $workFilterLinks = $('.work-filters li'), $container = $('.work-items'); $workFilterLinks.find('a').click(function(){ $workFilterLinks.removeClass('active'); $container.isotope({ // options filter: $(this).attr('data-filter'), itemSelector: '.isotope-item', animationEngine : "best-available", masonry: { columnWidth: '.isotope-item' } }); $(this).parent().addClass('active'); return false; }); FancyboxPlugin terakhir yang kita akan gunakan adalah // Fancybox $('.video-play').fancybox({ width : '100%', closeClick : false }); Setelah menulis bagian JavaScript, seharusnya code akan terlihat seperti ini: $(document).ready(function(){ // =Hero // Alway make hero-container height equal to window height var $heroContainer = $('.hero'); $heroContainer.height(window.innerHeight); // When user resize browser window, hero container needs to have the same // height as browser window height. $(window).resize(function() { $heroContainer.height(window.innerHeight); }); // =Work // Isotope filters var $workFilterLinks = $('.work-filters li'), $container = $('.work-items'); $workFilterLinks.find('a').click(function(){ $workFilterLinks.removeClass('active'); $container.isotope({ // options filter: $(this).attr('data-filter'), itemSelector: '.isotope-item', animationEngine : "best-available", masonry: { columnWidth: '.isotope-item' } }); $(this).parent().addClass('active'); return false; }); // Menu initialization var $menuIcon = $('.menu-icon'), $navigation = $('.navigation'), $mainNavigation = $('.main-navigation'), $navigationLink = $('.main-navigation a'); $(window).scroll(function() { if(window.scrollY > window.outerHeight) { $menuIcon.addClass('active'); } else { $menuIcon.removeClass('active'); } }); $menuIcon.click(function(e) { e.preventDefault(); $navigation.toggleClass('active'); }); $mainNavigation.singlePageNav({ filter: ':not(.external)', speed: 1000, currentClass: 'current', easing: 'swing', updateHash: false, beforeStart: function() { }, onComplete: function() { $navigation.removeClass('active'); } }); // Scrollreveal initialize var config = { easing: 'hustle', reset: false, delay: 'onload', opacity: .2, vFactor: 0.2, mobile: false } window.sr = new scrollReveal( config ); // Fancybox $(".video-play").fancybox({ closeClick : false, }); }); Pemikiran AkhirDan kita sudah selesai! Lihatlah apa yang telah kita buat! Saya berharap bahwa Anda menikmati seri ini dan Anda belajar banyak hal-hal baru. Selama proses ini saya membagikan beberapa teknik yang saya gunakan setiap hari dan saya harap Anda akan menerapkannya dan membagikannya. Saya ingin melihat apa yang telah Anda kodekan sejauh ini - bagikan kepada kami apa pun yang Anda buat menggunakan beberapa teknik ini! |