Html2canvas thêm css

Thứ hai là chức năng bổ sung sản phẩm vào giỏ hàng, trong chức năng này nếu chúng ta muốn thêm sản phẩm vào giỏ hàng thì chúng ta cần lấy số tham số của sản phẩm. Sau đó thêm vào phương thức của giỏ hàng

Thứ ba là chức năng xóa sản phẩm. Chúng ta sẽ bắt sự kiện khi nhấp vào nút xóa thì các phần tử cha của nó sẽ bị xóa
Và còn nhiều chức năng khác nữa

Bắt Đầu Code Thôi Lào

Mã Giao Diện Trang Giỏ Hàng

Trước tiên trong bất kỳ trang web nào, bước đầu tiên mà chúng ta cần làm đó là mã giao diện cho nó. Thì trang giỏ hàng này cũng không ngoại lệ

Mã HTML

tiêu đề
Thì trong phần header này thì mình cũng đã nói ở trên bao gồm những thành phần gì rồi
Nhưng trong đó phần quan trọng nhất của đối tượng tiêu đề là thùng hàng
Mình sẽ sử dụng modal để hiển thị giỏ hàng. Bây giờ chúng ta sẽ code HTML và CSS cho nó, còn phần hiển thị sọt hàng mình sẽ nói ở phần Code JS ở trong phần này





    
    
    
    Shopping-cart
    
    
    



    
    

Nội dung
Trong phần chúng tôi sẽ hiển thị các sản phẩm cần thêm vào giỏ hàng. Mình sẽ sử dụng float để xây dựng các sản phẩm. Mình thì đam mê chế cháo nên các sản phẩm của mình là các đồ linh kiện điện tử

Mỗi cái sản phẩm là một thành phần chúng ta chỉ cần code một cái thành phần sau đó copy ra nhiều thành phần khác rồi sau đó đổi ảnh và tiêu đề thôi

Và các bạn sẽ để ý thấy là tại sao trong giá tiền mình không ghi các dấu". " to split the money number as 85. 000đ mà ghi lại 85000đ. Mình sẽ có phần giải thích ở bên dưới phần cập nhật sọt hàng


    
  • Html2canvas thêm css

    Mũi Hàn 500

    25000đ
  • Html2canvas thêm css

    Trạm Hàn Hakko 942 75W 200-480*C 220VAC Cực Nóng

    1299000đ
  • Html2canvas thêm css

    Máy Bơm Chìm Hộ Gia Đình QDX 1500W 220VAC 40L/1min H=8m

    1599000đ
  • Html2canvas thêm css

    Module DIY Sạc Không Dây Qi IOS/Androi - Bộ phát V2

    89000đ
  • Html2canvas thêm css

    Bộ Điều Chỉnh Điện Áp CHLVFU SDTY-200P 20KW 200A (BH 06 Tháng)

    2199000đ
  • Html2canvas thêm css

    Module ISD1760 Thu Âm Thanh - Phát Âm Thanh 75s

    115000đ
  • Html2canvas thêm css

    Raspberry Pi 3 E14 Model B Plus B+ 2.4G/5G Bluetooth

    1295000đ
  • Html2canvas thêm css

    Module IOT ESP8266 ESP-12E CH340 V3

    85000đ

chân trang
Trong anh footer này mình cũng làm đơn giản thôi. Một bên thì mình sẽ hiển thị logo, bên còn lại mình sẽ hiển thị các biểu tượng xã hội

 
    

This is an interface when they are not CSS

Html2canvas thêm css

Nhìn nó tuân thủ đúng không mọi người. Bây giờ chúng ta CSS cho nó để trang giỏ hàng trở nên dễ nhìn hơn

Mã CSS

tiêu đề
Trong phần header này chúng ta cho phép sử dụng flex để chia layout và chỉnh sửa theo mình mong muốn
Phần còn lại của phương thức khi hiển thị giỏ hàng chúng ta sẽ canh chúng ra giữa và ẩn phương thức đó đi

* {
  padding: 0;
  margin: 0;
  box-sizing: border-box;
  font-family: 'Muli', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
}

li {
  list-style: none;
}

/* header */
nav {
  padding: 15px;
  width: 100%;
  display: flex;
  background: #f1df11;
}

nav .content-nav {
  display: flex;
  line-height: 2rem;
  flex-direction: row;
  justify-content: flex-end;
  width: 60%;
}

nav .content-nav ul {
  display: flex;
}

nav .content-nav ul li a {
  text-decoration: none;
  color: #43433e;
  text-transform: uppercase;
  padding: 0 15px;
  font-weight: 800;
}

nav .content-nav ul li a:hover {
  color: #fff;
}

.content-nav form {
  position: relative;
}

.content-nav form input {
  border: none;
  background: #fff;
  padding: 7px;
  outline: none;
  border-radius: 12px;
}

.content-nav form button {
  padding: 5px;
  border-radius: 12px;
  position: absolute;
  right: 0;
  top: 2px;
  border: none;
  outline: none;
  background: #fff;
}

/* modal */
.modal {
  display: none;
  position: fixed;
  z-index: 1;
  padding-top: 100px;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  overflow: auto;
  background-color: rgb(0, 0, 0);
  background-color: rgba(0, 0, 0, 0.4);
}

.modal-content {
  margin: 0 auto;
  width: 50%;
  position: relative;
  display: flex;
  flex-direction: column;
  background-color: #fff;
  background-clip: padding-box;
  border: 1px solid rgba(0, 0, 0, .2);
  border-radius: .3rem;
  outline: 0;

}

.modal-body {
  padding: 1rem;
}

.modal-footer {
  display: flex;
  border-top: 1px solid #aaaaaa;
  padding: 1rem;
  flex-direction: row;
  justify-content: flex-end;
  border-top: 1px solid #aaaaaa;
  padding: 1rem;
}

.modal-footer>:not(:first-child) {
  margin-left: .25rem;
}

.btn {
  cursor: pointer;
  outline: none;
  font-weight: 400;
  line-height: 1.25;
  text-align: center;
  white-space: nowrap;
  vertical-align: middle;
  border: 1px solid transparent;
  padding: .5rem 1rem;
  font-size: 1rem;
  border-radius: .25rem;
  transition: all .2s ease-in-out;
}

.btn-secondary {
  color: #292b2c;
  background-color: #fff;
  border-color: #ccc;
}

.btn-primary {
  color: #fff;
  background-color: #0275d8;
  border-color: #0275d8;
}

.modal-header {
  align-items: center;
  display: flex;
  justify-content: space-between;
  border-bottom: 1px solid #aaaaaa;
  padding: 1rem;
}

h5.modal-title {
  font-size: 1.5rem;
}

.close {
  color: #aaaaaa;
  font-size: 28px;
  font-weight: bold;
  display: flex;
  flex-direction: row;
  justify-content: flex-end;
}

.close:hover,
.close:focus {
  color: #000;
  text-decoration: none;
  cursor: pointer;
}

#cart {
  font-size: 15px;
  color: #fff;
  background: #c7b200;
  border: 1px solid transparent;
  border-radius: 10px;
  outline: none;
  margin-left: 1rem;
  padding: 12px;
  cursor: pointer;
}

#cart:hover {
  border-color: #fff;
}

Nội dung
Chúng ta sử dụng width và float. left to chia layout cho các thẩm định viên trong nội dung

/* wrapper */
.wrapper {
  padding: 2rem;
}

.products ul {
  display: inline-block;
}

.products ul .main-product {
  margin-bottom: 2rem;
  margin-right: 1rem;
  display: block;
  float: left;
  width: 24%;
}

.products ul .no-margin {
  margin-right: 0;
}

.products ul .img-product img {
  width: 100%;
}

.content-product .content-product-h3 {
  padding: .5rem 0;
  overflow: hidden;
  color: #222;
  font-weight: 500;
  font-size: 16px;
  max-height: 50px;
  min-height: 50px;
  text-align: center;
  line-height: 19px;
  margin: 0 0 5px;
}

.content-product .content-product-deltals {
  display: flex;
  justify-content: center;
  padding-top: 1rem;
}

.main-product .content-product .content-product-deltals .price {
  color: #c7b200;
  font-weight: 700;
  margin-right: 1rem;
  vertical-align: middle;
  font-size: 20px;
}

.content-product .content-product-deltals .price .money {
  vertical-align: middle;
}

.content-product .content-product-deltals .btn-cart {
  background: #f1df11;
  border-radius: 5px;
  color: #fff;
  font-weight: 500;
}

.content-product .content-product-deltals .btn-cart:hover {
  background: #c7b200;
}

/* footer */
.footer-item {
  padding: .5rem 2rem;
  background: #f1df11;
  display: flex;

}

.footer-item .img-footer {
  align-items: center;
  display: flex;
}

.footer-item .img-footer img {
  width: 100%;
}

.footer-item .social-footer {
  display: flex;
  align-items: center;
  width: 100%;
  justify-content: flex-end;
}

.footer-item .social-footer li a {
  color: #000000;
  font-size: 2rem;
}

.footer-item .social-footer li:last-child {
  margin-left: .5rem;
}

chân trang
Trong footer này mình dùng flex để chia layout cho footer

/* footer */
.footer-item {
  padding: .5rem 2rem;
  background: #f1df11;
  display: flex;

}

.footer-item .img-footer {
  align-items: center;
  display: flex;
}

.footer-item .img-footer img {
  width: 100%;
}

.footer-item .social-footer {
  display: flex;
  align-items: center;
  width: 100%;
  justify-content: flex-end;
}

.footer-item .social-footer li a {
  color: #000000;
  font-size: 2rem;
}

.footer-item .social-footer li:last-child {
  margin-left: .5rem;
}

Và đây là giao diện khi chúng tôi đã CSS cho nó

Html2canvas thêm css

mã JS
Trong file main. js bây giờ các bạn code cho mình một đoạn code để hiển thị thùng hàng(modal)
Để hiển thị giỏ hàng thì cũng đơn giản thôi. Các bạn gọi HTML Dom ra thôi
Mình sẽ giải thích cách hoạt động của nó cho mấy bạn dễ hiểu nha
Đó là khi chúng ta click vào giỏ hàng(button) thì nó sẽ xuất hiện modal. Khi chúng ta click vào nút 'Đóng', dấu 'x' hay là khi click bên ngoài modal thì nó sẽ ẩn modal đó đi

// Modal
var modal = document.getElementById("myModal");
var btn = document.getElementById("cart");
var close = document.getElementsByClassName("close")[0];
// tại sao lại có [0] như  thế này bởi vì mỗi close là một html colection nên khi mình muốn lấy giá trị html thì phải thêm [0]. 
Nếu mình có 2 cái component cùng class thì khi [0] nó sẽ hiển thị component 1 còn [1] thì nó sẽ hiển thị component 2.
var close_footer = document.getElementsByClassName("close-footer")[0];
var order = document.getElementsByClassName("order")[0];
btn.onclick = function () {
  modal.style.display = "block";
}
close.onclick = function () {
  modal.style.display = "none";
}
close_footer.onclick = function () {
  modal.style.display = "none";
}
order.onclick = function () {
  alert("Cảm ơn bạn đã thanh toán đơn hàng")
}
window.onclick = function (event) {
  if (event.target == modal) {
    modal.style.display = "none";
  }
}

Và đây là kết quả khi chúng tôi đã mã js để hiển thị thùng hàng

Html2canvas thêm css

Giỏ hàng Giao Diện Trang Responsive

Giao diện di động

Khi chúng ta chuyển sang chế độ di động thì giao diện di động bị vỡ và bị vỡ như thế nào thì chúng ta cùng xem nó bị vỡ như thế nào nha

Html2canvas thêm css

Vì vậy bây giờ chúng ta sẽ làm như thế nào để các sản phẩm không bị hỏng nha. Mỗi sản phẩm là 1 thành phần bây giờ chúng ta chỉ cần chiều rộng. 100% cho nó là được
In header header you hide the menu in. content-nav go nha. Mình sẽ viết một cái. nav-mobile trong đó chứa toàn bộ menu mà nó được hiển thị trên máy tính để bàn
Mã HTML

 

Mã CSS
Trong phần này thì chúng ta sẽ CSS cho nó là thằng nav-mobile và các mục bên trong nó như thế nào. hình thức, nội dung điều hướng,. And hides. item_menu and. nav-mobile that go is been

________số 8_______

Phản ứng nhanh nhẹn
Trong tệp đáp ứng. css you hide the. content-nav that go is being nha. Các phần còn lại của phương thức chiều rộng của bạn lớn hơn một chút để nó có thể hiển thị rõ ràng nhất

/*mobile*/
@media only screen and (min-width:240px) and (max-width:480px) {

    /* nav */
    nav .content-nav {
        display: none;
    }

    nav {
        position: fixed !important;
        top: 0px;
        left: 0;
        width: 100%;
        display: flex;
        padding: 0;
    }

    .nav-mobile {
        display: flex;
    }

    .img-nav {
        align-items: center;
        display: flex;
        flex-direction: row;
        justify-content: center;
    }

    .img-nav img {
        padding-top: 0.5rem;
        vertical-align: middle;
        width: 90%;
    }

    .content-nav,
    .item_menu form button {
        right: 10px;
    }

    /* wrapper */
    .wrapper {
        padding: 1rem;
    }

    .products {
        margin-top: 3rem;
    }

    .products ul .main-product {
        width: 100%;
    }

    /* modal */
    .modal-content {
        width: 95%;
    }

    .cart-item-title {
        font-size: 0.6em;
    }

    .cart-column {
        margin-right: 0.5em;
    }

    .cart-price {
        margin-right: 1rem;
    }

    #cart {
        margin: .5rem;
        padding: 3px;
    }


}

mã JS
Trong file main. js các bạn code cho thằng nav-mobile này là khi click vài icon-mobile thì nó sẽ hiển thị. chặn, còn nếu nó đã hiển thị rồi khi nhấp lại thì hiển thị. không có;


    
  • Html2canvas thêm css

    Mũi Hàn 500

    25000đ
  • Html2canvas thêm css

    Trạm Hàn Hakko 942 75W 200-480*C 220VAC Cực Nóng

    1299000đ
  • Html2canvas thêm css

    Máy Bơm Chìm Hộ Gia Đình QDX 1500W 220VAC 40L/1min H=8m

    1599000đ
  • Html2canvas thêm css

    Module DIY Sạc Không Dây Qi IOS/Androi - Bộ phát V2

    89000đ
  • Html2canvas thêm css

    Bộ Điều Chỉnh Điện Áp CHLVFU SDTY-200P 20KW 200A (BH 06 Tháng)

    2199000đ
  • Html2canvas thêm css

    Module ISD1760 Thu Âm Thanh - Phát Âm Thanh 75s

    115000đ
  • Html2canvas thêm css

    Raspberry Pi 3 E14 Model B Plus B+ 2.4G/5G Bluetooth

    1295000đ
  • Html2canvas thêm css

    Module IOT ESP8266 ESP-12E CH340 V3

    85000đ
0

Và đây là giao diện di động khi chúng ta đã reponsive cho nó

Html2canvas thêm css

Máy tính bảng Giao Diện

Chúng ta cùng xem thử giỏ hàng giao diện trang nó hiển thị như thế nào nha

Html2canvas thêm css

Thì các bạn sẽ thấy giao diện hơi bị vỡ một chút, bây giờ các bạn cần tăng chiều rộng các sản phẩm lên một chút thì sẽ thấy ok
Các phần còn lại của tiêu đề bạn chỉ cần chỉnh sửa lại kích thước phông chữ của các menu trong menu. content-nav và width. 100% cho. content-nav is been


    
  • Html2canvas thêm css

    Mũi Hàn 500

    25000đ
  • Html2canvas thêm css

    Trạm Hàn Hakko 942 75W 200-480*C 220VAC Cực Nóng

    1299000đ
  • Html2canvas thêm css

    Máy Bơm Chìm Hộ Gia Đình QDX 1500W 220VAC 40L/1min H=8m

    1599000đ
  • Html2canvas thêm css

    Module DIY Sạc Không Dây Qi IOS/Androi - Bộ phát V2

    89000đ
  • Html2canvas thêm css

    Bộ Điều Chỉnh Điện Áp CHLVFU SDTY-200P 20KW 200A (BH 06 Tháng)

    2199000đ
  • Html2canvas thêm css

    Module ISD1760 Thu Âm Thanh - Phát Âm Thanh 75s

    115000đ
  • Html2canvas thêm css

    Raspberry Pi 3 E14 Model B Plus B+ 2.4G/5G Bluetooth

    1295000đ
  • Html2canvas thêm css

    Module IOT ESP8266 ESP-12E CH340 V3

    85000đ
1

Và đây là máy tính bảng giao diện khi đã được phản hồi

Html2canvas thêm css

Vì vậy chúng ta đã hoàn thành giao diện cho giỏ hàng của trang rồi nha
Next to là phần quan trọng nhất trong giỏ hàng. Các bạn cùng theo dõi tiếp nha

Xây dựng Các Chức năng Trang Giỏ hàng

Clear Product In Giỏ hàng

Các bạn sẽ đặt câu hỏi lại tại sao chưa thêm sản phẩm vào thùng hàng mà lại xóa rồi các bạn cứ bình tĩnh, từ từ để mình giải thích
Tại sao mình lại làm chức năng xóa sản phẩm trước và làm như thế nào?
Mình làm chức năng trước vì khi mình làm chức năng này thì trước tiên mình phải mình phải tạo ra một sản phẩm trong giỏ hàng khi chia sẻ được thêm
Mục tiêu đích là giúp chúng ta tạo ra được bố cục cục bộ, kết cấu của thùng hàng. Sau khi thực hiện xong chức năng xóa, tiếp theo là chức năng tính tổng tiền trong thùng hàng

Sau khi chúng ta làm xong các bước trên thì đến bước thêm sản phẩm vào giỏ hàng cũng dựa theo các bố cục,. ở trên. Sau đó các bạn sẽ xóa các sản phẩm mà mình tự tạo trong thùng hàng đi là được. Không còn linh hồn nữa

Chúng ta bắt tay vào làm thôi nào
Mã HTML
Trong file index. phần html. modal-body các bạn thêm cho mình đoạn mã HTMl này vào bên trong. cart-items này giúp mình nha


    
  • Html2canvas thêm css

    Mũi Hàn 500

    25000đ
  • Html2canvas thêm css

    Trạm Hàn Hakko 942 75W 200-480*C 220VAC Cực Nóng

    1299000đ
  • Html2canvas thêm css

    Máy Bơm Chìm Hộ Gia Đình QDX 1500W 220VAC 40L/1min H=8m

    1599000đ
  • Html2canvas thêm css

    Module DIY Sạc Không Dây Qi IOS/Androi - Bộ phát V2

    89000đ
  • Html2canvas thêm css

    Bộ Điều Chỉnh Điện Áp CHLVFU SDTY-200P 20KW 200A (BH 06 Tháng)

    2199000đ
  • Html2canvas thêm css

    Module ISD1760 Thu Âm Thanh - Phát Âm Thanh 75s

    115000đ
  • Html2canvas thêm css

    Raspberry Pi 3 E14 Model B Plus B+ 2.4G/5G Bluetooth

    1295000đ
  • Html2canvas thêm css

    Module IOT ESP8266 ESP-12E CH340 V3

    85000đ
2

Mã CSS
Trong kiểu tệp. css các bạn sử dụng flex và width để chia bố cục cho các. giỏ hàng nha


    
  • Html2canvas thêm css

    Mũi Hàn 500

    25000đ
  • Html2canvas thêm css

    Trạm Hàn Hakko 942 75W 200-480*C 220VAC Cực Nóng

    1299000đ
  • Html2canvas thêm css

    Máy Bơm Chìm Hộ Gia Đình QDX 1500W 220VAC 40L/1min H=8m

    1599000đ
  • Html2canvas thêm css

    Module DIY Sạc Không Dây Qi IOS/Androi - Bộ phát V2

    89000đ
  • Html2canvas thêm css

    Bộ Điều Chỉnh Điện Áp CHLVFU SDTY-200P 20KW 200A (BH 06 Tháng)

    2199000đ
  • Html2canvas thêm css

    Module ISD1760 Thu Âm Thanh - Phát Âm Thanh 75s

    115000đ
  • Html2canvas thêm css

    Raspberry Pi 3 E14 Model B Plus B+ 2.4G/5G Bluetooth

    1295000đ
  • Html2canvas thêm css

    Module IOT ESP8266 ESP-12E CH340 V3

    85000đ
3

Và đây là kết quả khi chúng ta thêm các sản phẩm vào thùng hàng

Html2canvas thêm css

mã JS
Trong file main. js chúng ta sẽ gọi HTML Dom của nút là "xóa" trong sản phẩm
Tại sao mình lại sử dụng vòng lặp mà không sử dụng lại được

    
  • Html2canvas thêm css

    Mũi Hàn 500

    25000đ
  • Html2canvas thêm css

    Trạm Hàn Hakko 942 75W 200-480*C 220VAC Cực Nóng

    1299000đ
  • Html2canvas thêm css

    Máy Bơm Chìm Hộ Gia Đình QDX 1500W 220VAC 40L/1min H=8m

    1599000đ
  • Html2canvas thêm css

    Module DIY Sạc Không Dây Qi IOS/Androi - Bộ phát V2

    89000đ
  • Html2canvas thêm css

    Bộ Điều Chỉnh Điện Áp CHLVFU SDTY-200P 20KW 200A (BH 06 Tháng)

    2199000đ
  • Html2canvas thêm css

    Module ISD1760 Thu Âm Thanh - Phát Âm Thanh 75s

    115000đ
  • Html2canvas thêm css

    Raspberry Pi 3 E14 Model B Plus B+ 2.4G/5G Bluetooth

    1295000đ
  • Html2canvas thêm css

    Module IOT ESP8266 ESP-12E CH340 V3

    85000đ
8. Bởi vì khi sử dụng

    
  • Html2canvas thêm css

    Mũi Hàn 500

    25000đ
  • Html2canvas thêm css

    Trạm Hàn Hakko 942 75W 200-480*C 220VAC Cực Nóng

    1299000đ
  • Html2canvas thêm css

    Máy Bơm Chìm Hộ Gia Đình QDX 1500W 220VAC 40L/1min H=8m

    1599000đ
  • Html2canvas thêm css

    Module DIY Sạc Không Dây Qi IOS/Androi - Bộ phát V2

    89000đ
  • Html2canvas thêm css

    Bộ Điều Chỉnh Điện Áp CHLVFU SDTY-200P 20KW 200A (BH 06 Tháng)

    2199000đ
  • Html2canvas thêm css

    Module ISD1760 Thu Âm Thanh - Phát Âm Thanh 75s

    115000đ
  • Html2canvas thêm css

    Raspberry Pi 3 E14 Model B Plus B+ 2.4G/5G Bluetooth

    1295000đ
  • Html2canvas thêm css

    Module IOT ESP8266 ESP-12E CH340 V3

    85000đ
8 thì nó chỉ lấy nút giá trị đầu tiên mà thôi. Ví dụ như mình có 4 sản phẩm thì có 4 nút "xóa" nếu như mình sử dụng

    
  • Html2canvas thêm css

    Mũi Hàn 500

    25000đ
  • Html2canvas thêm css

    Trạm Hàn Hakko 942 75W 200-480*C 220VAC Cực Nóng

    1299000đ
  • Html2canvas thêm css

    Máy Bơm Chìm Hộ Gia Đình QDX 1500W 220VAC 40L/1min H=8m

    1599000đ
  • Html2canvas thêm css

    Module DIY Sạc Không Dây Qi IOS/Androi - Bộ phát V2

    89000đ
  • Html2canvas thêm css

    Bộ Điều Chỉnh Điện Áp CHLVFU SDTY-200P 20KW 200A (BH 06 Tháng)

    2199000đ
  • Html2canvas thêm css

    Module ISD1760 Thu Âm Thanh - Phát Âm Thanh 75s

    115000đ
  • Html2canvas thêm css

    Raspberry Pi 3 E14 Model B Plus B+ 2.4G/5G Bluetooth

    1295000đ
  • Html2canvas thêm css

    Module IOT ESP8266 ESP-12E CH340 V3

    85000đ
8 thì chỉ có thể xóa sản phẩm đầu tiên vì thế nên mình sẽ sử dụng vòng lặp
Nó sẽ thông qua tất cả các sản phẩm mà bạn thêm vào giỏ hàng và xem thử có bao nhiêu nút "xóa"
Sau khi biết bao nhiêu nút "xóa" sau đó thêm sự kiện nhấp chuột. Khi bấm vào nút xóa thì nó sẽ xóa phần cha bọc nó. Ở đây có hai parentElement thì nó sẽ xóa phần tử cha bọc bên ngoài cùng (xóa sản phẩm ấy)


    
  • Html2canvas thêm css

    Mũi Hàn 500

    25000đ
  • Html2canvas thêm css

    Trạm Hàn Hakko 942 75W 200-480*C 220VAC Cực Nóng

    1299000đ
  • Html2canvas thêm css

    Máy Bơm Chìm Hộ Gia Đình QDX 1500W 220VAC 40L/1min H=8m

    1599000đ
  • Html2canvas thêm css

    Module DIY Sạc Không Dây Qi IOS/Androi - Bộ phát V2

    89000đ
  • Html2canvas thêm css

    Bộ Điều Chỉnh Điện Áp CHLVFU SDTY-200P 20KW 200A (BH 06 Tháng)

    2199000đ
  • Html2canvas thêm css

    Module ISD1760 Thu Âm Thanh - Phát Âm Thanh 75s

    115000đ
  • Html2canvas thêm css

    Raspberry Pi 3 E14 Model B Plus B+ 2.4G/5G Bluetooth

    1295000đ
  • Html2canvas thêm css

    Module IOT ESP8266 ESP-12E CH340 V3

    85000đ
4

Và đây là kết quả chúng ta đã hoàn thành chức năng xóa sản phẩm trong thùng hàng

Html2canvas thêm css

Cập Nhật Giỏ Hàng

Sau khi mình làm xong chức năng xóa sản phẩm trong Giỏ hàng, bây giờ sẽ đến phần cập nhật Giỏ hàng, cập nhật tổng tiền trong Giỏ hàng,
mã JS
Trong file main. js you also call HTML DOM as at on. Mình sẽ giải thích chế độ hoạt động của updatecart() này cho các bạn dễ hiểu nha
Thì nó sẽ gọi. cart_items in. cart_items có nhiều. cart_row trong mỗi cart_row chứa các thông tin về sản phẩm như hình ảnh, tiêu đề, giá tiền của sản phẩm. By because. giỏ hàng-hàng này trong. cart-items không thể gọi tài liệu được mà phải gọi dựa trên DOM của. giỏ_hàng

Sau khi gọi là cart_rows, chúng ta sẽ chạy vòng lặp để biết có bao nhiêu
giỏ_hàng. Tiếp theo chúng ta sẽ gọi HTML DOM của. giá giỏ hàng và. giỏ hàng-số lượng-đầu vào, bởi vì chỉ có một mức giá tiền và số lượng sản phẩm nên chúng tôi sử dụng


    
  • Html2canvas thêm css

    Mũi Hàn 500

    25000đ
  • Html2canvas thêm css

    Trạm Hàn Hakko 942 75W 200-480*C 220VAC Cực Nóng

    1299000đ
  • Html2canvas thêm css

    Máy Bơm Chìm Hộ Gia Đình QDX 1500W 220VAC 40L/1min H=8m

    1599000đ
  • Html2canvas thêm css

    Module DIY Sạc Không Dây Qi IOS/Androi - Bộ phát V2

    89000đ
  • Html2canvas thêm css

    Bộ Điều Chỉnh Điện Áp CHLVFU SDTY-200P 20KW 200A (BH 06 Tháng)

    2199000đ
  • Html2canvas thêm css

    Module ISD1760 Thu Âm Thanh - Phát Âm Thanh 75s

    115000đ
  • Html2canvas thêm css

    Raspberry Pi 3 E14 Model B Plus B+ 2.4G/5G Bluetooth

    1295000đ
  • Html2canvas thêm css

    Module IOT ESP8266 ESP-12E CH340 V3

    85000đ
8
Tiếp theo chúng ta sẽ lấy giá trị của tiền và số lượng của sản phẩm

Cuối cùng là tính tổng tiền, ở đây mình sẽ nói rõ ra tí. Tổng số sẽ gán bằng 0 đúng sai. Sau khi chúng tôi tính tổng tiền của sản phẩm đầu tiên sẽ được tính vào tổng số. Bây giờ tổng cộng được phân bổ bằng tổng số tiền của sản phẩm đầu tiên, nếu bạn có sản phẩm thứ hai trong Kho hàng thì tổng cộng = tổng số tiền của sản phẩm đầu tiên + tổng tiền của sản phẩm thứ hai và được phân bổ vào tổng, thứ


    
  • Html2canvas thêm css

    Mũi Hàn 500

    25000đ
  • Html2canvas thêm css

    Trạm Hàn Hakko 942 75W 200-480*C 220VAC Cực Nóng

    1299000đ
  • Html2canvas thêm css

    Máy Bơm Chìm Hộ Gia Đình QDX 1500W 220VAC 40L/1min H=8m

    1599000đ
  • Html2canvas thêm css

    Module DIY Sạc Không Dây Qi IOS/Androi - Bộ phát V2

    89000đ
  • Html2canvas thêm css

    Bộ Điều Chỉnh Điện Áp CHLVFU SDTY-200P 20KW 200A (BH 06 Tháng)

    2199000đ
  • Html2canvas thêm css

    Module ISD1760 Thu Âm Thanh - Phát Âm Thanh 75s

    115000đ
  • Html2canvas thêm css

    Raspberry Pi 3 E14 Model B Plus B+ 2.4G/5G Bluetooth

    1295000đ
  • Html2canvas thêm css

    Module IOT ESP8266 ESP-12E CH340 V3

    85000đ
5

Sau đó các bạn gọi hàm

 
    
2 trong phần xóa sản phẩm trong thùng hàng nhá
Tại đây thì mình cũng sẽ giải thích một lý do vì sao số tiền trong sản phẩm mình không ngăn cách bằng dấu '. ' thì khi sử dụng parseFloat() nó sẽ lấy các số ban đầu và bỏ các số 0 sau dấu '. ' because that is reason that mình không dùng dấu '. '
Và đây là kết quả khi chúng ta thêm phần cập nhật sản phẩm vào giỏ hàng
Các bạn thử xóa sản phẩm để xem tổng thể nó có thay đổi không nha
Html2canvas thêm css

Thay Đổi Số Lượng Sản Phẩm Trọng Giỏi Hàng

Sau khi chúng ta hoàn thành phần cập nhật giỏ hàng. Tiếp theo chúng ta sẽ làm phần thay đổi số lượng sản phẩm, chúng ta bắt sự kiện khi mình thay đổi (thay đổi) số lượng thì gọi hàm

 
    
2. Nhưng có một lỗi nhỏ ở đây là khi mình cho type='number' thì số lượng có thể dưới 0, mà số lượng sản phẩm thì không bao giờ có giá trị âm hoặc bằng 0 cả nên mình sẽ viết mã là nếu giá trị


    
  • Html2canvas thêm css

    Mũi Hàn 500

    25000đ
  • Html2canvas thêm css

    Trạm Hàn Hakko 942 75W 200-480*C 220VAC Cực Nóng

    1299000đ
  • Html2canvas thêm css

    Máy Bơm Chìm Hộ Gia Đình QDX 1500W 220VAC 40L/1min H=8m

    1599000đ
  • Html2canvas thêm css

    Module DIY Sạc Không Dây Qi IOS/Androi - Bộ phát V2

    89000đ
  • Html2canvas thêm css

    Bộ Điều Chỉnh Điện Áp CHLVFU SDTY-200P 20KW 200A (BH 06 Tháng)

    2199000đ
  • Html2canvas thêm css

    Module ISD1760 Thu Âm Thanh - Phát Âm Thanh 75s

    115000đ
  • Html2canvas thêm css

    Raspberry Pi 3 E14 Model B Plus B+ 2.4G/5G Bluetooth

    1295000đ
  • Html2canvas thêm css

    Module IOT ESP8266 ESP-12E CH340 V3

    85000đ
6

Và đây là kết quả khi chúng ta thay đổi số lượng sản phẩm trong thùng hàng

Html2canvas thêm css

Thêm Sản Phẩm Vào Giỏ Hàng

Đây là mục khá quan trọng cũng như mục cuối cùng trong phần này. Thì phần này mình làm cũng dựa vào những mục ở trên mà mình đẫ làm thôi
Chúng ta sẽ bắt sự kiện khi nhấp vào nút 'Thêm Vào Giỏ'. Khi nhấp vào sẽ lấy đường dẫn ảnh, tiêu đề và giá của sản phẩm
Khi nhận được giá trị của một sản phẩm, bước tiếp theo là chúng ta sẽ đưa nó lên giỏ hàng
Vì sao phải làm sao để được đưa lên hàng. Muốn đưa lên được hàng thì chúng ta phải tạo cho nó một bộ khung
Trước tiên, bạn tạo cho mình một thẻ div và addClass cart-row tiếp theo tạo cho nó một bộ khung html giống bộ khung mà mình tạo để xây dựng chức năng xóa giỏ hàng để có thể thêm sản phẩm vào giỏ hàng, sau đó
Continue to you to file index. html xóa hai sản phẩm mà mình đã thêm vào để làm chức năng xóa sản phẩm trong Giỏ hàng và nhớ sửa tổng tiền thành 0VNĐ nha. Các bạn đã xóa bộ nhớ để lại lớp giỏ hàng-mục


    
  • Html2canvas thêm css

    Mũi Hàn 500

    25000đ
  • Html2canvas thêm css

    Trạm Hàn Hakko 942 75W 200-480*C 220VAC Cực Nóng

    1299000đ
  • Html2canvas thêm css

    Máy Bơm Chìm Hộ Gia Đình QDX 1500W 220VAC 40L/1min H=8m

    1599000đ
  • Html2canvas thêm css

    Module DIY Sạc Không Dây Qi IOS/Androi - Bộ phát V2

    89000đ
  • Html2canvas thêm css

    Bộ Điều Chỉnh Điện Áp CHLVFU SDTY-200P 20KW 200A (BH 06 Tháng)

    2199000đ
  • Html2canvas thêm css

    Module ISD1760 Thu Âm Thanh - Phát Âm Thanh 75s

    115000đ
  • Html2canvas thêm css

    Raspberry Pi 3 E14 Model B Plus B+ 2.4G/5G Bluetooth

    1295000đ
  • Html2canvas thêm css

    Module IOT ESP8266 ESP-12E CH340 V3

    85000đ
7

Và đây là kết quả khi chúng ta thêm sản phẩm vào thùng hàng

Html2canvas thêm css

Vì vậy là xong rồi nha, bài này mình viết khá dài mong mọi người thông cảm. Các bạn có thể tham khảo trang giỏ hàng mà mình đã triển khai lên firebase tại đây

Lời Kết

Vậy Là Xong bài Hướng dẫn xây dựng giỏ hàng trang bằng html, css và javascript rồi nhé. Mình mong muốn sau bài viết này các bạn có thể nắm bắt thêm kiến ​​thức về JS cũng như tự mình design một giao diện thông qua các dự án thực tế

Nếu các bạn cảm thấy bài viết của mình hay thì các bạn có thể ủng hộ mình để mình có thêm động lực ra những bài viết chủ đề hay và chất lượng hơn ủng hộ mình tại đây nha