雜項2018-6-8
*js執行順序優先級
process.nextTick > promise.then > setTimeout > setImmediate
原因是使用 Promise.then 添加的回調函數會被放到 microtask 隊列中,而 setTimeout 的回調函數會在macrotask 。
事件循環會先取 microtask 的任務,直到清空。而 macrotask 隊列則每次只取一個任務,之後會再次清空 microtask 隊列,再取一個 macrotask 。
*
js執行順序優先級
process.nextTick > promise.then > setTimeout > setImmediate
原因是使用 Promise.then 添加的回調函數會被放到 microtask 隊列中,而 setTimeout 的回調函數會在macrotask 。
事件循環會先取 microtask 的任務,直到清空。而 macrotask 隊列則每次只取一個任務,之後會再次清空 microtask 隊列,再取一個 macrotask 。
*
.serialize()
將用作提交的表單元素的值編譯成字符串。
.serializeArray()
將用作提交的表單元素的值編譯成擁有name和value對象組成的數組。例如[ { name: a value: 1 }, { name: b value: 2 },...]
*
document.documentElement.scrollTop和window.scrollTo() //改變滾動條高度,用這兩個都可以,註意document.body是不可以的
滾動條的scrollTop,可以同時寫三個,解決兼容性問題
document.body.scrollTop = total
document.documentElement.scrollTop = total
window.pageYOffset = total
封裝
let scrollTop= document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop
scrollTop=scrollTop+100
function scrollTop(ele){
document.body.scrollTop = ele
document.documentElement.scrollTop = ele
window.pageYOffset = ele
}
使用方法:scrollTop(scrollTop)//傳入距離的數字
***************************************************
/*復選框自定義樣式*/
input[type="checkbox"]{
-moz-appearance:none; /* Firefox */
-webkit-appearance:none; /* Safari 和 Chrome */
appearance:none;
display: inline-block;
height: 18px;
width: 18px;
outline: 0;
border: 0;
vertical-align: -7px;
background: url(../img/checkbox_unchecked.png) no-repeat;
background-size: contain;
background-position: 0px 0px;
}
input[type="checkbox"]:hover{cursor: pointer}
input[type="checkbox"]:checked{background: url(../img/checkbox_checked.png) no-repeat;background-size: contain;}
************美化滾動條**************
/*定義滾動條高寬及背景 高寬分別對應橫豎滾動條的尺寸*/
::-webkit-scrollbar
{
width: 10px;
height: 0px;
background-color: #F5F5F5;
}
/*定義滾動條軌道 內陰影+圓角*/
::-webkit-scrollbar-track
{
-webkit-box-shadow: inset 0 0 1px rgba(0,0,0,0);
border-radius: 10px;
background-color: #F5F5F5;
}
/*定義滑塊 內陰影+圓角*/
::-webkit-scrollbar-thumb
{
border-radius: 10px;
-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,.3);
background-color: #555;
}
************************************
git.we2tu.com //gitlab地址
oa.hemei.cn:8000
http://bug.etu6.org //bug地址
賬號:lixm
密碼:123456
\\172.17.5.124 //靜態文件地址
賬號:statictest
密碼:statictest
http://tripb2cwap.tb.yake.net // 供應商微店wap
http://tripb2cwap.tb.yake.net/34556/buyer/index.html
tripb2cweb.tb.yake.net // 供應商微店pc
賬號:cytrip
密碼:111111
http://test.admin.jintutrip.etu6.org //erppz測試環境
hmqtrip / 123456 //賬號和密碼
http://cy.tb.yake.net/details.html?dateid=7938547 //馨途平臺首頁
https://doc.react-china.org/ //react學習
https://www.jianshu.com/p/1626b8643676 //vue安裝
https://www.kancloud.cn/yunye/axios/234845 //axios 中文說明
https://www.jianshu.com/p/a138a525c287 //es6/es7介紹
http://azat.co/ //js技術牛人
http://demo.topjui.com/?s=bdtg //不錯的前端框架
https://www.cnblogs.com/dupd/p/7735450.html //vue方面的vue框架
http://blog.csdn.net/weiweismile123/article/details/70226319 //filter的用法(檢索內容用法)
https://www.jianshu.com/p/c17a5dd68474 //vue小細節講解
http://blog.163.com/yw_0721/blog/static/71645797201021232731933/ //jQuery.extend()的合並對象功能
http://jingyan.baidu.com/article/90bc8fc8bee0bcf652640c61.html?allowHTTP=1 //監控
http://www.sucaihuo.com/js/1946.html //html TO img
http://tripb2cwap.tb.yake.net/34556/buyer/line.poster.html?dateid=7938725 //海報頁本地(買家版)
http://tripb2cwap.tb.yake.net/30007/seller/line.details.html?lineid=8111385&dateid=7920341# (賣家版)
http://seller.ht.tb.yake.net/wap/configure.html //賣家版pc後臺
caoxuelian、111111
https://segmentfault.com/a/1190000011478657 //html2canvas繪制圖片問題
https://www.cnblogs.com/xiaohuochai/p/5314289.html //深刻理解margin
http://www.lingdublog.cc/ //零度前端,不錯的博客
C:\Users\Administrator\Documents\Tencent Files\1026819503\FileRecv //QQ下載路徑
http://kuangpf.com/mpvue-weui/#/ mpvue***UI
https://www.cnblogs.com/liulinjie/p/5663015.html //移動端Web頁面問題解決方案
///*****************
$(".product-type").find("li").each(function(){
var $thistext=$(this).text();
console.log($thistext)
$thistext=$thistext.substr(1,8);
$(this).html($thistext);
});
//用了async:false;同步請求,不用延時
"swiper": "^3.4.2", //swiper
vue安裝
# 全局安裝 vue-cli
$ npm install --global vue-cli
# 創建一個基於 webpack 模板的新項目
$ vue init webpack my-project
# 安裝依賴,走你
$ cd my-project
$ npm install
$ npm run dev
*******************************************
配置本地環境
1、projectinit下的conf文件裏新增一個配置文件
2、在WWW文件裏的domain.php,配置一個域名
3、在項目文件裏新增一個log文件夾
4、WWW文家下git一下tb reloadnginx,然後再 tb start
5、可以訪問了
*******************************************************
Windows系統默認是96dpi,Apple系統默認是72dpi。
因此 pt = px * dpi / 72
所以:1pt=px*96/72 //Windows環境下
*******************************************************
JSON.stringify() //對象轉化為對象字符串
JSON.parse() //對象字符串轉化為對象
/*****倒計時,個位數前補0******/
/ 倒計時
var timesHtml = $(‘.times ‘);
var countDown;
function addZero(n) {
return n < 10 ? ‘0‘ + n : n;
}
function newTime(seconds) {
countDown = seconds;
var timer = setInterval(function () {
countDown--;
var oDay = parseInt(countDown / (24 * 60 * 60));
var oHours = parseInt(countDown / (60 * 60) % 24);
var oMinutes = parseInt(countDown / 60 % 60);
var oSeconds = parseInt(countDown % 60);
oHours = addZero(oHours);
oMinutes = addZero(oMinutes);
oSeconds = addZero(oSeconds);
timesHtml.text(oHours + "時" + oMinutes + "分" + oSeconds + "秒")
//別忘記當時間為0的,要讓其知道結束了;
if (countDown <= 0) {
timesHtml.text("0")
clearInterval(timer )
}
}, 1000)
}
newTime(5000)//執行,傳入時間毫秒數
/************/
splice() //array.splice(index,howmany,item1,.....,itemX)
slice() //array.slice(start, end)
split()
item.toLowerCase().includes(key.toLowerCase())// es6的方案更好 item.toLowerCase().indexOf(key.toLowerCase()) != -1
**************************************
//截取中文字符串長度,並且增加換行符
var hah=$(".test").text();
getByteLen(hah);
function getByteLen(val) {
var len = 0;
for (var i = 0; i < val.length; i++) {
var a = val.charAt(i);
if (a.match(/[^\x00-\xff]/ig) != null)
{
len += 2;
//if(len%10==0){
var str = val, result = "";
for(var n=0,len=str.length;n<len;n++){
result += str[n];
if(n%40==0){
result += ‘<br>‘;
}
}
//}
}
else
{
len += 1;
}
}
//result.replace(/\"/g,"");
//result.replace("<br>", "");
console.log(result);
$(".test").html(result);
}
//倒計時10s
var fun=(function(){
var timer;
var i = 0;
function aa(x){
i++;
if(i===x){
clearTimeout(timer);
return false
}
timer=setTimeout(function(){aa(x); console.log(i);},1000);
};
return aa
})();fun(10)
雜項2018-6-8