初學(xué)js
初學(xué)就不要去想這些問題。
1、瀏覽器解析js代碼,生成函數(shù)showkey,document將函數(shù)showkey與一個(gè)keydown事件綁定
瀏覽器只是外在的一個(gè)應(yīng)用,從技術(shù)角度,它又是由內(nèi)核加外圍的管理調(diào)度邏輯構(gòu)成的。內(nèi)核主要又分 html 與 css 的解析渲染, js 的解析執(zhí)行。這些綜合起來,才能解釋 document
這類 api ,及 showkey
這個(gè)函數(shù)定義。
2、按下某個(gè)按鍵
3、鍵盤設(shè)備將按鍵信息傳送給cpu
管理設(shè)備是在“操作系統(tǒng)”這一層,不會(huì)到 cpu 這一層。而瀏覽器是建立在“操作系統(tǒng)”基礎(chǔ)上的。
4、cpu捕獲到這個(gè)按鍵信息,將其傳送到瀏覽器進(jìn)程中生成一個(gè)事件對(duì)象event:keydownevent
5、瀏覽器document安裝了事件監(jiān)聽程序,在事件更新中獲得按鍵事件event:keydownevent
6、document發(fā)現(xiàn)這個(gè)事件與showkey函數(shù)綁定,然后調(diào)用showkey
7、然后document和事件監(jiān)聽程序清除這個(gè)事件的記錄,等待下一個(gè)事件
完全錯(cuò)誤,概念混亂。難得說了。
在build
文件夾下有utils.js
,注意這里
其中return中返回相關(guān)loader的迭代器,注釋掉
// postcss: generateLoaders(),即可
path: '/b' 后面沒帶參數(shù),所以this.$router.push({})的時(shí)候匹配不到b后面的/geshouxq
https://router.vuejs.org/zh-c...
具體點(diǎn) 來個(gè)demo 或者你期待的效果
D3
go
什么的都可以做這方面的結(jié)構(gòu)圖
如果一個(gè)描述符不具有value,writable,get 和 set 任意一個(gè)關(guān)鍵字,那么它將被認(rèn)為是一個(gè)數(shù)據(jù)描述符。如果一個(gè)描述符同時(shí)有(value或writable)和(get或set)關(guān)鍵字,將會(huì)產(chǎn)生一個(gè)異常。 ---------取自MDN原話。
意思大概就是不可能定一個(gè)屬性即可以對(duì)它進(jìn)行正常讀寫,又可以在它上面架設(shè)一層getter/setter來進(jìn)行訪問改寫。
MDN地址 > https://developer.mozilla.org...
手機(jī)碼字,見諒(逃
給這個(gè)DOM加個(gè)樣式
display:none
文檔 Table-column Attributes有個(gè)show-overflow-tooltip
屬性,你看能滿足需求不。。
*第一步:排序,時(shí)間從近到遠(yuǎn)
*第二步:分割,將數(shù)組分成5個(gè)一組,返回新數(shù)組
*第三步:抽離,將相同時(shí)間抽離出來組成要求上的數(shù)據(jù)格式
第一步:排序
var compare = function (prop) {
return function (obj1, obj2) {
var val1 = obj1[prop];
var val2 = obj2[prop];
if (!isNaN(Number(val1)) && !isNaN(Number(val2))) {
val1 = Number(val1);
val2 = Number(val2);
}
if (val1 < val2) {
return 1;
} else if (val1 > val2) {
return -1;
} else {
return 0;
}
}
}
//用法
arr.sort(compare("time"))
第二步:分割
//分割
Array.prototype.chunk = function(size) {
var array = this;
const length = array.length
if (!length || !size || size < 1) {
return []
}
let index = 0
let resIndex = 0
let result = new Array(Math.ceil(length / size))
while (index < length) {
result[resIndex++] = array.slice(index, (index += size))
}
return result
}
//用法
arr.chunk(5)
第三步:抽離
//抽離
function sortArr(arr, str) {
var _arr = [],
_t = [],
// 臨時(shí)的變量
_tmp;
// 按照特定的參數(shù)將數(shù)組排序?qū)⒕哂邢嗤档门旁谝黄? arr = arr.sort(function(a, b) {
var s = a[str],
t = b[str];
return s < t ? -1 : 1;
});
if ( arr.length ){
// _tmp = arr[0][str];
_tmp = new Date(arr[0][str]).getFullYear()
}
// 將相同類別的對(duì)象添加到統(tǒng)一個(gè)數(shù)組
for (let i=0;i<arr.length;i++) {
if(new Date(arr[i][str]).getFullYear()===_tmp){
// if ( arr[i][str] === _tmp ){
_t.push( arr[i] );
} else {
_tmp = new Date(arr[i][str]).getFullYear();
_arr.push( _t );
_t = [arr[i]];
}
}
// 將最后的內(nèi)容推出新數(shù)組
_arr.push(_t);
return _arr;
}
//用法,這里僅對(duì)一維數(shù)組使用
sortArr( arr, 'time')
//我將數(shù)據(jù)一二步處理后開始二叉數(shù)循環(huán)
var cc = arr.sort(compare("time")).chunk(5)
var _cc = []
for(let i=0;i<cc.length;i++){
//抽離
var _datas=sortArr( cc[i], 'time')
//根據(jù)所給數(shù)據(jù)結(jié)構(gòu)進(jìn)行賦值
_cc.push({section:i+1, sectionDatas:[]})
for(let o=0;o<_datas.length;o++){
_cc[i].sectionDatas.push({
data:new Date(_datas[o][0].time).getFullYear(),
datas:[]
})
}
for(let p=0;p<_cc[i].sectionDatas.length;p++){
_cc[i].sectionDatas[p].datas=sortArr(cc[i], 'time')[p]
}
}
功力不夠,謹(jǐn)慎使用
class Functor {
constructor(data){
this.data = data
}
map(data){
return new Functor(data)
}
//排序
compare(prop) {
var result = this.data.sort(function (obj1, obj2) {
var val1 = obj1[prop];
var val2 = obj2[prop];
if (!isNaN(Number(val1)) && !isNaN(Number(val2))) {
val1 = Number(val1);
val2 = Number(val2);
}
if (val1 < val2) {
return 1;
} else if (val1 > val2) {
return -1;
} else {
return 0;
}
})
return this.map(result)
}
//分割
chunk(size) {
var array = this.data;
//獲取數(shù)組的長度,如果你傳入的不是數(shù)組,那么獲取到的就是undefined
const length = array.length
//判斷不是數(shù)組,或者size沒有設(shè)置,size小于1,就返回空數(shù)組
if (!length || !size || size < 1) {
return []
}
//核心部分
let index = 0 //用來表示切割元素的范圍start
let resIndex = 0 //用來遞增表示輸出數(shù)組的下標(biāo)
//根據(jù)length和size算出輸出數(shù)組的長度,并且創(chuàng)建它。
let result = new Array(Math.ceil(length / size))
//進(jìn)行循環(huán)
while (index < length) {
//循環(huán)過程中設(shè)置result[0]和result[1]的值。該值根據(jù)array.slice切割得到。
result[resIndex++] = array.slice(index, (index += size))
}
//輸出新數(shù)組
// return result
return this.map(result)
}
//抽離
sortArr(arr, str) {
var _arr = [],
_t = [],
// 臨時(shí)的變量
_tmp;
// 按照特定的參數(shù)將數(shù)組排序?qū)⒕哂邢嗤档门旁谝黄? arr = arr.sort(function(a, b) {
var s = a[str],
t = b[str];
return s < t ? -1 : 1;
});
if ( arr.length ){
// _tmp = arr[0][str];
_tmp = new Date(arr[0][str]).getFullYear()
}
// 將相同類別的對(duì)象添加到統(tǒng)一個(gè)數(shù)組
for (let i=0;i<arr.length;i++) {
if(new Date(arr[i][str]).getFullYear()===_tmp){
// if ( arr[i][str] === _tmp ){
_t.push( arr[i] );
} else {
_tmp = new Date(arr[i][str]).getFullYear();
_arr.push( _t );
_t = [arr[i]];
}
}
// 將最后的內(nèi)容推出新數(shù)組
_arr.push(_t);
return _arr;
}
//轉(zhuǎn)指定json格式
dataToJSON(){
var _json = []
var _this = this;
this.data.forEach(function(item,i){
var _datas=_this.sortArr( item, 'time')
_json.push({section:i+1, sectionDatas:[]})
for(let o=0;o<_datas.length;o++){
_json[i].sectionDatas.push({
data:new Date(_datas[o][0].time).getFullYear(),
datas:[]
})
}
for(let p=0;p<_json[i].sectionDatas.length;p++){
_json[i].sectionDatas[p].datas=_datas[p]
}
})
return _json
}
}
Functor.of = function(data){
return new Functor(data)
}
使用方法
Functor.of(a).compare("time").chunk(5).dataToJSON() //返回一個(gè)新的值,不改變原來數(shù)據(jù)
將swiper的 indicator-dots='true'刪掉,自己寫指示點(diǎn)代碼,當(dāng)swiper的current值等于循環(huán)圖片的最后一個(gè)值時(shí),將指示點(diǎn)的z-index改為-1
wxml:
wxss:
js:
效果:
最后一張圖的時(shí)候指示點(diǎn)隱藏,按鈕出現(xiàn)
我知道了,你在console.log后又改了元素的值,所以console.log元素的話,會(huì)顯示修改后的元素
https://jsfiddle.net/2s66wh6t/1/
sortable不添加不就行了
card如果是inline就可以
shouldhide 你設(shè)置為false后,渲染的是if里面的數(shù)據(jù),if里面沒有ref
看你設(shè)計(jì)稿是針對(duì)什么分辨率設(shè)計(jì)的,到小數(shù)點(diǎn)是不可能的
這就是用 Python 來操作 XML 而已。
這個(gè)問題早有人問過了 ?
https://segmentfault.com/q/10...
北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
北大青鳥中博軟件學(xué)院創(chuàng)立于2003年,作為華東區(qū)著名互聯(lián)網(wǎng)學(xué)院和江蘇省首批服務(wù)外包人才培訓(xùn)基地,中博成功培育了近30000名軟件工程師走向高薪崗位,合作企業(yè)超4
中公教育集團(tuán)創(chuàng)建于1999年,經(jīng)過二十年潛心發(fā)展,已由一家北大畢業(yè)生自主創(chuàng)業(yè)的信息技術(shù)與教育服務(wù)機(jī)構(gòu),發(fā)展為教育服務(wù)業(yè)的綜合性企業(yè)集團(tuán),成為集合面授教學(xué)培訓(xùn)、網(wǎng)
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國一站式人才培養(yǎng)平臺(tái)、一站式人才輸送平臺(tái)。2014年4月3日在美國成功上市,融資1
曾工作于聯(lián)想擔(dān)任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項(xiàng)目經(jīng)理從事移動(dòng)互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團(tuán)項(xiàng)目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺(tái)面向?qū)ο箝_發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對(duì)瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國Software AG 技術(shù)顧問,美國Dachieve 系統(tǒng)架構(gòu)師,美國AngelEngineers Inc. 系統(tǒng)架構(gòu)師。