最近一直在使用vue.js來構建項目,先分享一下一些簡單可複用的函數。
1:時間戳轉換
Date.prototype.format = function(fmt){ //author: yumeiqiang
var o = {
"M+": this.getMonth() + 1, //月份
"d+": this.getDate(), //日
"w+":'星期'+this.getDay(),
"h+": this.getHours(), //小時
"m+": this.getMinutes(), //分
"s+": this.getSeconds(), //秒
"q+": Math.floor((this.getMonth() + 3) / 3), //季度
"S": this.getMilliseconds() //毫秒
};
if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
for (var k in o)
if (new RegExp("(" + k + ")").test(fmt))
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
return fmt;
};
使用方法爲 new Date(時間戳).format("yyyy-MM-dd w hh:mm:ss")可隨意在format函數中自定義添加
2:URL參數截取函數
var getUrl = {
getUrlParam: function (name) {
return decodeURIComponent((new RegExp('[?|&]' + name + '=' + '([^&;]+?)(&|#|;|$)').exec(location.search)
||[,""])[1].replace(/\+/g, '%20'))||null;
}
};
使用方法:假設URL連接爲http://www.baidu.com?from=yu&id=13456
截取from的參數爲 getUrl.getUrlParam('from')可獲得yu
3:自定義彈窗
var alertFn = function (text) {//1秒倒計時
document.getElementById('alert1').style.display='block';
var time = 1;
document.getElementById('alert1').innerHTML=text;
Showalert(time);
};
var Showalert = function (time) {
setTimeout(function () {
time--;
if (time < 0) {
document.getElementById('alert1').style.display='none'
} else {
Showalert(time);
}
}, 1000);
};
使用方法:在html中標籤例如 <div class='alert1' id='alert1'></div> id名稱與上述中保持一致,而後自定義css彈窗樣式與內容,
而後只需在須要使用彈窗的地方調用 alertFn()便可
4:點擊按鈕加入購物車
var cart = function($event){ var el=$event.currentTarget; var tkId=el.getAttribute("data-id"); var name=el.getAttribute("data-name"); var price=el.getAttribute("data-price"); var img=el.getAttribute("data-img"); var reserved=el.getAttribute("data-order"); this.message++; var product = { 'tkId': tkId, 'tkName': name, 'num':1, 'img':img, 'price': parseFloat(price), 'reserved': parseInt(reserved), 'pid': getUrl.getUrlParam('share') ? getUrl.getUrlParam('share') : 0 }; console.log(product.pid); //添加購物車 var ShoppingCart = localStorage.getItem('ShoppingCart'); if(ShoppingCart==null||ShoppingCart==""){ //第一次加入商品 var jsonStr = {"productlist":[{"img":product.img,"tkId":product.tkId,"tkName":product.tkName,"num":product.num, "price":product.price, "reserved":product.reserved, "pid": product.pid}], "totalNumber":product.num,"totalAmount":(product.price * product.num)}; localStorage.setItem("ShoppingCart", JSON.stringify(jsonStr)); console.log(JSON.stringify(jsonStr)); } else { // add goods var jsonStr = JSON.parse(ShoppingCart); var productlist = jsonStr.productlist; var result=false; //查找購物車中是否有該商品 for(var i in productlist) { if(productlist[i].tkId == product.tkId){ productlist[i].num++; productlist[i].pid = product.pid; jsonStr.totalNumber++; jsonStr.totalAmount += parseFloat(product.price); result = true; } } if(!result){ //沒有該商品就直接加進去 productlist.push({"img":product.img, "tkId":product.tkId, "tkName":product.tkName, "num":product.num, "price":product.price, "reserved":product.reserved, "pid": product.pid}); jsonStr.totalNumber++; jsonStr.totalAmount += parseFloat(product.price); } //保存購物車 localStorage.setItem("ShoppingCart", JSON.stringify(jsonStr)); }}