主頁 > 企業開發 > jQuery實作簡單購物車頁面

jQuery實作簡單購物車頁面

2020-09-13 14:10:49 企業開發

功能描述:

  當全選按鈕被按下時,所有商品的小復選框(以及另外一個全選按鈕)的選中狀態跟按下的全選按鈕保持一致;

  當用戶選中商品時,如果所有商品都被選中,就讓全選按鈕為選中狀態;

  用戶可以點擊 + - 增加或減少商品數量,也可以直接在文本框修改數量,數量修改后 后邊的小計也會相應改變;

  用戶可以進行洗掉操作,洗掉單個商品、選中商品以及清理購物車;

  當用戶進行操作時,下面的已選商品件數以及總額也會有相應變化

準備作業:

首先將css樣式以及jq、js檔案引入,jq檔案要放在js檔案上邊

<link rel="stylesheet" href="css/car.css">
<script src="js/jquery.min.js"></script>
<script src="js/car.js"></script>

HTML代碼及CSS樣式:

 1 <body>
 2     <div class="w">
 3         <div class="cart-warp">
 4             <!-- 頭部全選模塊 -->
 5             <div class="cart-thead">
 6                 <div class="t-checkbox">
 7                     <input type="checkbox" name="" id="" class="checkall"> 全選
 8                 </div>
 9                 <div class="t-goods">商品</div>
10                 <div class="t-price">單價</div>
11                 <div class="t-num">數量</div>
12                 <div class="t-sum">小計</div>
13                 <div class="t-action">操作</div>
14             </div>
15             <!-- 商品詳細模塊 -->
16             <div class="cart-item-list">
17                 <div class="cart-item check-cart-item">
18                     <div class="p-checkbox">
19                         <input type="checkbox" name="" id="" checked class="j-checkbox">
20                     </div>
21                     <div class="p-goods">
22                         <div class="p-img">
23                             <img src="img/p1.jpg" alt="">
24                         </div>
25                         <div class="p-msg">【5本26.8元】經典兒童文學彩圖青少版八十天環游地球中學生語文教學大綱</div>
26                     </div>
27                     <div class="p-price">¥12.60</div>
28                     <div class="p-num">
29                         <div class="quantity-form">
30                             <a href="javascript:;" class="decrement">-</a>
31                             <input type="text" class="itxt" value="1">
32                             <a href="javascript:;" class="increment">+</a>
33                         </div>
34                     </div>
35                     <div class="p-sum">¥12.60</div>
36                     <div class="p-action"><a href="javascript:;">洗掉</a></div>
37                 </div>
38                 <div class="cart-item">
39                     <div class="p-checkbox">
40                         <input type="checkbox" name="" id="" class="j-checkbox">
41                     </div>
42                     <div class="p-goods">
43                         <div class="p-img">
44                             <img src="img/p2.jpg" alt="">
45                         </div>
46                         <div class="p-msg">【2000張貼紙】貼紙書 3-6歲 貼畫兒童 貼畫書全套12冊 貼畫 貼紙兒童 汽</div>
47                     </div>
48                     <div class="p-price">¥24.80</div>
49                     <div class="p-num">
50                         <div class="quantity-form">
51                             <a href="javascript:;" class="decrement">-</a>
52                             <input type="text" class="itxt" value="1">
53                             <a href="javascript:;" class="increment">+</a>
54                         </div>
55                     </div>
56                     <div class="p-sum">¥24.80</div>
57                     <div class="p-action"><a href="javascript:;">洗掉</a></div>
58                 </div>
59                 <div class="cart-item">
60                     <div class="p-checkbox">
61                         <input type="checkbox" name="" id="" class="j-checkbox">
62                     </div>
63                     <div class="p-goods">
64                         <div class="p-img">
65                             <img src="img/p3.jpg" alt="">
66                         </div>
67                         <div class="p-msg">唐詩三百首+成語故事全2冊 一年級課外書 精裝注音兒童版 小學生二三年級課外閱讀書籍</div>
68                     </div>
69                     <div class="p-price">¥29.80</div>
70                     <div class="p-num">
71                         <div class="quantity-form">
72                             <a href="javascript:;" class="decrement">-</a>
73                             <input type="text" class="itxt" value="1">
74                             <a href="javascript:;" class="increment">+</a>
75                         </div>
76                     </div>
77                     <div class="p-sum">¥29.80</div>
78                     <div class="p-action"><a href="javascript:;">洗掉</a></div>
79                 </div>
80             </div>
81             <!-- 結算模塊 -->
82             <div class="cart-floatbar">
83                 <div class="select-all">
84                     <input type="checkbox" name="" id="" class="checkall">全選
85                 </div>
86                 <div class="operation">
87                     <a href="javascript:;" class="remove-batch"> 洗掉選中的商品</a>
88                     <a href="javascript:;" class="clear-all">清理購物車</a>
89                 </div>
90                 <div class="toolbar-right">
91                     <div class="amount-sum">已經選<em>1</em>件商品</div>
92                     <div class="price-sum">總價: <em>¥12.60</em></div>
93                     <div class="btn-area">去結算</div>
94                 </div>
95             </div>  <!-- cart-floatbar end -->
96         </div>  <!-- cart-warp end -->
97     </div>  <!-- w end -->
98 </body>
car.html
  1 * {
  2     margin: 0;
  3     padding: 0
  4 }
  5 em,
  6 i {
  7     font-style: normal;
  8 }
  9 li {
 10     list-style: none;
 11 }
 12 a {
 13     color: #666;
 14     text-decoration: none;
 15 }
 16 a:hover {
 17     color: #e33333;
 18 }
 19 body {
 20     font: 12px/1.5 'Microsoft YaHei', 'Heiti SC', tahoma, arial, 'Hiragino Sans GB', \\5B8B\4F53, sans-serif;
 21     color: #666
 22 }
 23 .w {
 24     width: 1200px;
 25     margin: 0 auto;
 26 }
 27 .cart-thead {
 28     height: 32px;
 29     line-height: 32px;
 30     margin: 5px 0 10px;
 31     padding: 5px 0;
 32     background: #f3f3f3;
 33     border: 1px solid #e9e9e9;
 34     border-top: 0;
 35     position: relative;
 36 }
 37 .cart-thead>div,
 38 .cart-item>div {
 39     float: left;
 40 }
 41 .t-checkbox,
 42 .p-checkbox {
 43     height: 18px;
 44     line-height: 18px;
 45     padding-top: 7px;
 46     width: 122px;
 47     padding-left: 11px;
 48 }
 49 .t-goods {
 50     width: 400px;
 51 }
 52 .t-price {
 53     width: 120px;
 54     padding-right: 40px;
 55     text-align: right;
 56 }
 57 .t-num {
 58     width: 150px;
 59     text-align: center;
 60 }
 61 .t-sum {
 62     width: 100px;
 63     text-align: right;
 64 }
 65 .t-action {
 66     width: 130px;
 67     text-align: right;
 68 }
 69 .cart-item {
 70     height: 160px;
 71     border-style: solid;
 72     border-width: 2px 1px 1px;
 73     border-color: #aaa #f1f1f1 #f1f1f1;
 74     background: #fff;
 75     padding-top: 14px;
 76     margin: 15px 0;
 77 }
 78 .check-cart-item {
 79     background: #fff4e8;
 80 }
 81 .p-checkbox {
 82     width: 50px;
 83 }
 84 .p-goods {
 85     margin-top: 8px;
 86     width: 565px;
 87 }
 88 .p-img {
 89     float: left;
 90     border: 1px solid #ccc;
 91     padding: 5px;
 92 }
 93 .p-msg {
 94     float: left;
 95     width: 210px;
 96     margin: 0 10px;
 97 }
 98 .p-price {
 99     width: 110px;
100 }
101 .quantity-form {
102     width: 80px;
103     height: 22px;
104 }
105 .p-num {
106     width: 170px;
107 }
108 .decrement,
109 .increment {
110     float: left;
111     border: 1px solid #cacbcb;
112     height: 18px;
113     line-height: 18px;
114     padding: 1px 0;
115     width: 16px;
116     text-align: center;
117     color: #666;
118     background: #fff;
119     margin-left: -1px;
120 }
121 .itxt {
122     float: left;
123     border: 1px solid #cacbcb;
124     width: 42px;
125     height: 18px;
126     line-height: 18px;
127     text-align: center;
128     padding: 1px;
129     margin-left: -1px;
130     font-size: 12px;
131     font-family: verdana;
132     color: #333;
133     -webkit-appearance: none;
134 }
135 .p-sum {
136     font-weight: 700;
137     width: 145px;
138 }
139 .cart-floatbar {
140     height: 50px;
141     border: 1px solid #f0f0f0;
142     background: #fff;
143     position: relative;
144     margin-bottom: 50px;
145     line-height: 50px;
146 }
147 .select-all {
148     float: left;
149     height: 18px;
150     line-height: 18px;
151     padding: 16px 0 16px 9px;
152     white-space: nowrap;
153 }
154 .select-all input {
155     vertical-align: middle;
156     display: inline-block;
157     margin-right: 5px;
158 }
159 .operation {
160     float: left;
161     width: 200px;
162     margin-left: 40px;
163 }
164 .clear-all {
165     font-weight: 700;
166     margin: 0 20px;
167 }
168 .toolbar-right {
169     float: right;
170 }
171 .amount-sum {
172     float: left;
173 }
174 .amount-sum em {
175     font-weight: 700;
176     color: #E2231A;
177     padding: 0 3px;
178 }
179 .price-sum {
180     float: left;
181     margin: 0 15px;
182 }
183 .price-sum em {
184     font-size: 16px;
185     color: #E2231A;
186     font-weight: 700;
187 }
188 .btn-area {
189     font-weight: 700;
190     width: 94px;
191     height: 52px;
192     line-height: 52px;
193     color: #fff;
194     text-align: center;
195     font-size: 18px;
196     font-family: "Microsoft YaHei";
197     background: #e54346;
198     overflow: hidden;
199 }
car.css

 

具體功能實作:

1. 當全選按鈕改變時,讓小復選框按鈕和全選按鈕保持一致,

全選按鈕被選中時,讓所有商品背景色改變,反之則去掉背景色,同時也要改變已選商品件數和總額

 1 $(".checkall").change(function() {
 2     // 當全選按鈕改變時,讓小復選框按鈕和全選按鈕保持一致(隱式迭代,不需要回圈遍歷)
 3     $(".j-checkbox, .checkall").prop("checked", $(this).prop("checked"));
 4     getSum();   // 計算總額函式
 5     // 添加背景
 6     // 判斷是否是選中狀態,是的話添加check-cart-item類,沒有就移除
 7     if($(this).prop("checked")) {
 8         $(".cart-item").addClass("check-cart-item");
 9     } else {
10         $(".cart-item").removeClass("check-cart-item");
11     }
12 })

2. 當小復選框按鈕改變時,判斷是否所有的小按鈕都是選中狀態,是的話讓全選按鈕為選中狀態,否則為未選中狀態,

通過已選復選框的個數是否等于所有小復選框的總個數來判斷,同時也要改變背景色和總額模塊

 1 $(".j-checkbox").change(function() {
 2     if($(".j-checkbox:checked").length === $(".j-checkbox").length) {
 3         $(".checkall").prop("checked", true);
 4     } else {
 5         $(".checkall").prop("checked", false);
 6     }
 7     getSum();
 8     // 當小復選框為選中狀態時,改變背景顏色(添加check-cart-item類)
 9     if($(this).prop("checked")) {
10         $(this).parents(".cart-item").addClass("check-cart-item");
11     } else {
12         $(this).parents(".cart-item").removeClass("check-cart-item");
13     }
14 })

3. 用戶可以通過點擊加減號或者直接修改文本框來修改商品數量,后邊的小計也做相應的變化

①點擊+按鈕,文本框數字加一,小計加價,

先把原來的數量獲取過來,然后在原來的基礎上加一再賦給文本框;把單價獲取過來,乘以文本框數量就是小計

 1 $(".increment").click(function() {
 2     var n = $(this).siblings(".itxt").val();
 3     n++;
 4     $(this).siblings(".itxt").val(n);
 5     // 小計模塊
 6     // num為獲取過來的單價,用substr()截取字串把前邊的¥去掉
 7     var num = $(this).parents(".p-num").siblings(".p-price").html().substr(1);
 8     // toFixed(2)保留兩位小數
 9     var price = (num * n).toFixed(2);
10     $(this).parents(".p-num").siblings(".p-sum").html("¥" + price);
11     getSum();
12 })

②點擊-按鈕,文本框數字減一,小計減價,

具體方法同上,有一點不一樣是商品數量不能小于1,要判斷一下

 1 $(".decrement").click(function() {
 2     var n = $(this).siblings(".itxt").val();
 3     n <= 1 ? n : n--;
 4     $(this).siblings(".itxt").val(n);
 5     // 小計模塊
 6     var num = $(this).parents(".p-num").siblings(".p-price").html().substr(1);
 7     // toFixed(2)保留兩位小數
 8     var price = (num * n).toFixed(2);
 9     $(this).parents(".p-num").siblings(".p-sum").html("¥" + price);
10     getSum();
11 })

③直接修改文本框改變數量

1 $(".itxt").change(function() {
2     var n = $(this).val();
3     var num = $(this).parents(".p-num").siblings(".p-price").html().substr(1);
4     // toFixed(2)保留兩位小數
5     var price = (num * n).toFixed(2);
6     $(this).parents(".p-num").siblings(".p-sum").html("¥" + price);
7     getSum();
8 })

4. 計算已選商品數及總額,封裝成一個函式,頁面加載完時應先呼叫一下,更新資料

宣告變數來存盤已選商品數以及總額,用each()遍歷已選商品,

 1 function getSum() {
 2     var count = 0;
 3     var money = 0;
 4     // 只遍歷選中的商品   each遍歷,i為索引,ele為物件
 5     $(".j-checkbox:checked").parents(".cart-item").find(".itxt").each(function(i, ele) {
 6         count += parseInt($(ele).val());   // 會有小誤差,要取整一下
 7     })
 8     $(".amount-sum em").text(count);
 9     $(".j-checkbox:checked").parents(".cart-item").find(".p-sum").each(function(i, ele) {
10         money += parseFloat($(ele).text().substr(1));
11     })
12     $(".price-sum em").text("¥" + money.toFixed(2));
13 }

5. 洗掉模塊

 1 // 洗掉單個商品
 2 $(".p-action a").click(function() {
 3     $(this).parents(".cart-item").remove();
 4     getSum();
 5 })
 6 // 洗掉選中商品
 7 $(".remove-batch").click(function() {
 8     $(".j-checkbox:checked").parents(".cart-item").remove();
 9     getSum();
10 })
11 // 清理購物車
12 $(".clear-all").click(function() {
13     $(".cart-item").remove();
14     getSum();
15 })

 

完整JS代碼:

 1 $(function() {
 2     $(".checkall").change(function() {
 3         // 當全選按鈕改變時,讓小復選框按鈕和全選按鈕保持一致(隱式迭代,不需要回圈遍歷)
 4         $(".j-checkbox, .checkall").prop("checked", $(this).prop("checked"));
 5         getSum();   // 計算總額函式
 6         // 添加背景
 7         // 判斷是否是選中狀態,是的話添加check-cart-item類,沒有就移除
 8         if($(this).prop("checked")) {
 9             $(".cart-item").addClass("check-cart-item");
10         } else {
11             $(".cart-item").removeClass("check-cart-item");
12         }
13     })
14     $(".j-checkbox").change(function() {
15         if($(".j-checkbox:checked").length === $(".j-checkbox").length) {
16             $(".checkall").prop("checked", true);
17         } else {
18             $(".checkall").prop("checked", false);
19         }
20         getSum();
21         // 當小復選框為選中狀態時,改變背景顏色(添加check-cart-item類)
22         if($(this).prop("checked")) {
23             $(this).parents(".cart-item").addClass("check-cart-item");
24         } else {
25             $(this).parents(".cart-item").removeClass("check-cart-item");
26         }
27     })
28 
29     // 點擊+按鈕,文本框數字加一
30     $(".increment").click(function() {
31         var n = $(this).siblings(".itxt").val();
32         n++;
33         $(this).siblings(".itxt").val(n);
34         // 小計模塊
35         // num為獲取過來的單價,用substr()截取字串把前邊的¥去掉
36         var num = $(this).parents(".p-num").siblings(".p-price").html().substr(1);
37         // toFixed(2)保留兩位小數
38         var price = (num * n).toFixed(2);
39         $(this).parents(".p-num").siblings(".p-sum").html("¥" + price);
40         getSum();
41     })
42     // 點擊-按鈕,文本框數字減一
43     $(".decrement").click(function() {
44         var n = $(this).siblings(".itxt").val();
45         n <= 1 ? n : n--;
46         $(this).siblings(".itxt").val(n);
47         // 小計模塊
48         var num = $(this).parents(".p-num").siblings(".p-price").html().substr(1);
49         // toFixed(2)保留兩位小數
50         var price = (num * n).toFixed(2);
51         $(this).parents(".p-num").siblings(".p-sum").html("¥" + price);
52         getSum();
53     })
54     // 當用戶直接修改文本框時
55     $(".itxt").change(function() {
56         var n = $(this).val();
57         var num = $(this).parents(".p-num").siblings(".p-price").html().substr(1);
58         // toFixed(2)保留兩位小數
59         var price = (num * n).toFixed(2);
60         $(this).parents(".p-num").siblings(".p-sum").html("¥" + price);
61         getSum();
62     })
63 
64     // 計算總額函式
65     getSum();
66     function getSum() {
67         var count = 0;
68         var money = 0;
69         // 只遍歷選中的商品   each遍歷,i為索引,ele為物件
70         $(".j-checkbox:checked").parents(".cart-item").find(".itxt").each(function(i, ele) {
71             count += parseInt($(ele).val());   // 會有小誤差,要取整一下
72         })
73         $(".amount-sum em").text(count);
74         $(".j-checkbox:checked").parents(".cart-item").find(".p-sum").each(function(i, ele) {
75             money += parseFloat($(ele).text().substr(1));
76         })
77         $(".price-sum em").text("¥" + money.toFixed(2));
78     }
79 
80     // 洗掉商品模塊
81     // 洗掉單個商品
82     $(".p-action a").click(function() {
83         $(this).parents(".cart-item").remove();
84         getSum();
85     })
86     // 洗掉選中商品
87     $(".remove-batch").click(function() {
88         $(".j-checkbox:checked").parents(".cart-item").remove();
89         getSum();
90     })
91     // 清理購物車
92     $(".clear-all").click(function() {
93         $(".cart-item").remove();
94         getSum();
95     })
96 })

 

轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/24984.html

標籤:jQuery

上一篇:jQuery模仿ToDoList實作簡單的待辦事項串列

下一篇:sharepoint 2016 管理中心,無法跳出頁面

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • IEEE1588PTP在數字化變電站時鐘同步方面的應用

    IEEE1588ptp在數字化變電站時鐘同步方面的應用 京準電子科技官微——ahjzsz 一、電力系統時間同步基本概況 隨著對IEC 61850標準研究的不斷深入,國內外學者提出基于IEC61850通信標準體系建設數字化變電站的發展思路。數字化變電站與常規變電站的顯著區別在于程序層傳統的電流/電壓互 ......

    uj5u.com 2020-09-10 03:51:52 more
  • HTTP request smuggling CL.TE

    CL.TE 簡介 前端通過Content-Length處理請求,通過反向代理或者負載均衡將請求轉發到后端,后端Transfer-Encoding優先級較高,以TE處理請求造成安全問題。 檢測 發送如下資料包 POST / HTTP/1.1 Host: ac391f7e1e9af821806e890 ......

    uj5u.com 2020-09-10 03:52:11 more
  • 網路滲透資料大全單——漏洞庫篇

    網路滲透資料大全單——漏洞庫篇漏洞庫 NVD ——美國國家漏洞庫 →http://nvd.nist.gov/。 CERT ——美國國家應急回應中心 →https://www.us-cert.gov/ OSVDB ——開源漏洞庫 →http://osvdb.org Bugtraq ——賽門鐵克 →ht ......

    uj5u.com 2020-09-10 03:52:15 more
  • 京準講述NTP時鐘服務器應用及原理

    京準講述NTP時鐘服務器應用及原理京準講述NTP時鐘服務器應用及原理 安徽京準電子科技官微——ahjzsz 北斗授時原理 授時是指接識訓通過某種方式獲得本地時間與北斗標準時間的鐘差,然后調整本地時鐘使時差控制在一定的精度范圍內。 衛星導航系統通常由三部分組成:導航授時衛星、地面檢測校正維護系統和用戶 ......

    uj5u.com 2020-09-10 03:52:25 more
  • 利用北斗衛星系統設計NTP網路時間服務器

    利用北斗衛星系統設計NTP網路時間服務器 利用北斗衛星系統設計NTP網路時間服務器 安徽京準電子科技官微——ahjzsz 概述 NTP網路時間服務器是一款支持NTP和SNTP網路時間同步協議,高精度、大容量、高品質的高科技時鐘產品。 NTP網路時間服務器設備采用冗余架構設計,高精度時鐘直接來源于北斗 ......

    uj5u.com 2020-09-10 03:52:35 more
  • 詳細解讀電力系統各種對時方式

    詳細解讀電力系統各種對時方式 詳細解讀電力系統各種對時方式 安徽京準電子科技官微——ahjzsz,更多資料請添加VX 衛星同步時鐘是我京準公司開發研制的應用衛星授時時技術的標準時間顯示和發送的裝置,該裝置以M國全球定位系統(GLOBAL POSITIONING SYSTEM,縮寫為GPS)或者我國北 ......

    uj5u.com 2020-09-10 03:52:45 more
  • 如何保證外包團隊接入企業內網安全

    不管企業規模的大小,只要企業想省錢,那么企業的某些服務就一定會采用外包的形式,然而看似美好又經濟的策略,其實也有不好的一面。下面我通過安全的角度來聊聊使用外包團的安全隱患問題。 先看看什么服務會使用外包的,最常見的就是話務/客服這種需要大量重復性、無技術性的服務,或者是一些銷售外包、特殊的職能外包等 ......

    uj5u.com 2020-09-10 03:52:57 more
  • PHP漏洞之【整型數字型SQL注入】

    0x01 什么是SQL注入 SQL是一種注入攻擊,通過前端帶入后端資料庫進行惡意的SQL陳述句查詢。 0x02 SQL整型注入原理 SQL注入一般發生在動態網站URL地址里,當然也會發生在其它地發,如登錄框等等也會存在注入,只要是和資料庫打交道的地方都有可能存在。 如這里http://192.168. ......

    uj5u.com 2020-09-10 03:55:40 more
  • [GXYCTF2019]禁止套娃

    git泄露獲取原始碼 使用GET傳參,引數為exp 經過三層過濾執行 第一層過濾偽協議,第二層過濾帶引數的函式,第三層過濾一些函式 preg_replace('/[a-z,_]+\((?R)?\)/', NULL, $_GET['exp'] (?R)參考當前正則運算式,相當于匹配函式里的引數 因此傳遞 ......

    uj5u.com 2020-09-10 03:56:07 more
  • 等保2.0實施流程

    流程 結論 ......

    uj5u.com 2020-09-10 03:56:16 more
最新发布
  • 使用Django Rest framework搭建Blog

    在前面的Blog例子中我們使用的是GraphQL, 雖然GraphQL的使用處于上升趨勢,但是Rest API還是使用的更廣泛一些. 所以還是決定回到傳統的rest api framework上來, Django rest framework的官網上給了一個很好用的QuickStart, 我參考Qu ......

    uj5u.com 2023-04-20 08:17:54 more
  • 記錄-new Date() 我忍你很久了!

    這里給大家分享我在網上總結出來的一些知識,希望對大家有所幫助 大家平時在開發的時候有沒被new Date()折磨過?就是它的諸多怪異的設定讓你每每用的時候,都可能不小心踩坑。造成程式意外出錯,卻一下子找不到問題出處,那叫一個煩透了…… 下面,我就列舉它的“四宗罪”及應用思考 可惡的四宗罪 1. Sa ......

    uj5u.com 2023-04-20 08:17:47 more
  • 使用Vue.js實作文字跑馬燈效果

    實作文字跑馬燈效果,首先用到 substring()截取 和 setInterval計時器 clearInterval()清除計時器 效果如下: 實作代碼如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta ......

    uj5u.com 2023-04-20 08:12:31 more
  • JavaScript 運算子

    JavaScript 運算子/運算子 在 JavaScript 中,有一些運算子可以使代碼更簡潔、易讀和高效。以下是一些常見的運算子: 1、可選鏈運算子(optional chaining operator) ?.是可選鏈運算子(optional chaining operator)。?. 可選鏈操 ......

    uj5u.com 2023-04-20 08:02:25 more
  • CSS—相對單位rem

    一、概述 rem是一個相對長度單位,它的單位長度取決于根標簽html的字體尺寸。rem即root em的意思,中文翻譯為根em。瀏覽器的文本尺寸一般默認為16px,即默認情況下: 1rem = 16px rem布局原理:根據CSS媒體查詢功能,更改根標簽的字體尺寸,實作rem單位隨螢屏尺寸的變化,如 ......

    uj5u.com 2023-04-20 08:02:21 more
  • 我的第一個NPM包:panghu-planebattle-esm(胖虎飛機大戰)使用說明

    好家伙,我的包終于開發完啦 歡迎使用胖虎的飛機大戰包!! 為你的主頁添加色彩 這是一個有趣的網頁小游戲包,使用canvas和js開發 使用ES6模塊化開發 效果圖如下: (覺得圖片太sb的可以自己改) 代碼已開源!! Git: https://gitee.com/tang-and-han-dynas ......

    uj5u.com 2023-04-20 08:01:50 more
  • 如何在 vue3 中使用 jsx/tsx?

    我們都知道,通常情況下我們使用 vue 大多都是用的 SFC(Signle File Component)單檔案組件模式,即一個組件就是一個檔案,但其實 Vue 也是支持使用 JSX 來撰寫組件的。這里不討論 SFC 和 JSX 的好壞,這個仁者見仁智者見智。本篇文章旨在帶領大家快速了解和使用 Vu ......

    uj5u.com 2023-04-20 08:01:37 more
  • 【Vue2.x原始碼系列06】計算屬性computed原理

    本章目標:計算屬性是如何實作的?計算屬性快取原理以及洋蔥模型的應用?在初始化Vue實體時,我們會給每個計算屬性都創建一個對應watcher,我們稱之為計算屬性watcher ......

    uj5u.com 2023-04-20 08:01:31 more
  • http1.1與http2.0

    一、http是什么 通俗來講,http就是計算機通過網路進行通信的規則,是一個基于請求與回應,無狀態的,應用層協議。常用于TCP/IP協議傳輸資料。目前任何終端之間任何一種通信方式都必須按Http協議進行,否則無法連接。tcp(三次握手,四次揮手)。 請求與回應:客戶端請求、服務端回應資料。 無狀態 ......

    uj5u.com 2023-04-20 08:01:10 more
  • http1.1與http2.0

    一、http是什么 通俗來講,http就是計算機通過網路進行通信的規則,是一個基于請求與回應,無狀態的,應用層協議。常用于TCP/IP協議傳輸資料。目前任何終端之間任何一種通信方式都必須按Http協議進行,否則無法連接。tcp(三次握手,四次揮手)。 請求與回應:客戶端請求、服務端回應資料。 無狀態 ......

    uj5u.com 2023-04-20 08:00:32 more