Hỏi cách làm FlashCard trên web bằng HTML, CSS, Javascript

mình đang muốn làm 1 trang có FlashCard như ở trang Quizlet trong link này
https://quizlet.com/78279444/flashcards
Nhưng hiện tại không biết nó là gì ? từ khóa nào ? tìm google mãi mà ko thấy source kiểu FlashCard này đâu . thanks for help :smiley:

Không ai biết ạ :frowning: . đang cần , các thánh hiển linh nào :((

Em thì làm thế này:

Trong file html, mình chia ra 2 phần: slide và mũi tên (tất nhiên là vẫn phải có những phần khác cho menu blah blah).

Slide: Để tất cả các slide trong một class lớn, rồi mỗi slide là một div class="slide", trong đó sẽ có 1 slide có class active-slide (để đánh dấu cái slide mà mình đang nhìn thấy):

<div class="slider">
  <div class="slide active-slide">slide 1</div>
  <div class="slide">slide 2</div>
  <div class="slide">slide 3</div>
</div>

Trong file css, mình sẽ để toàn bộ slide như thế này

.slide {
    display: none;
    position: absolute;
}

Xong phần slide

Mũi tên thì có arrow-prev (mũi tên trái) và arrow-next (mũi tên phải) như thế này:

<div class="slider-nav">
      <a href="#" class="arrow-prev"><img src="http://s3.amazonaws.com/codecademy-content/courses/ltp2/img/flipboard/arrow-prev.png"></a>
      <a href="#" class="arrow-next"><img src="http://s3.amazonaws.com/codecademy-content/courses/ltp2/img/flipboard/arrow-next.png"></a>
</div>

Bây giờ anh đã có 2 đủ 2 phần, và web của anh chỉ hiện mỗi cái slide nào mà có class active-slide
Vậy ý tưởng là ta sẽ dùng Javascript và jQuery để xử lí vụ bấm mũi tên.
Mỗi khi bấm mũi tên tới (arrow-next), ta dùng removeClass('active-slide') để loại bỏ class active-slide ở cái slide hiện giờ => nó sẽ mất, không hiện ra màn hình
Rồi dùng addClass('active-slide') để thêm class active-slide vào slide tiếp theo => slide tiếp theo hiện ra :slight_smile: ảo chưa :slight_smile:
Muốn thêm hiệu ứng thì khi removeClass() có thể thêm fadeOut(số mili giây) để nó mờ từ từ đi
Và khi addClass() thì thêm fadeIn(số mili giây) để nó từ từ hiện ra
:slight_smile: ảo hông :slight_smile:

Làm y như vậy với mũi tên trái (arrow.prev)
VD:

File .js :

var main = function(){
	$('.arrow-next').click(function() {
		var currentSlide = ('.active-slide');
		var nextSlide = currentSlide.next(); // với mũi tên ngược lại thì là .prev()

		currentSlide.fadeOut(600).removeClass('active-slide'); // 600 là thời gian để nó mờ đi 
		nextSlide.fadeIn(600).addClass('active-slide');
	});
}

$(document).ready(main);

Xong :slight_smile:

À quên, anh có thể thay cái fadeIn, fadeOut bằng nhiều cái khác (anh search đi, javascript chắc có nhiều lắm)

2 Likes

cái này mình tìm rồi , mình ko ưng nó lắm :smile:

thanks you :smile: so much

Làm như quizlet ko có gì khó cả:
Gồm 2 phần:

  • pagination để chuyển card, tự viết bằng js thuần ko cần lib
  • phần chuyển nội dung của flashcard chỉ là hiệu ứng flip 3d thôi. Có nhiều lib làm dùm bạn phần này
1 Like

Mình có làm 1 cái demo nhỏ

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?