時(shí)間選擇器滑動(dòng)選擇日期的時(shí)候總會(huì)觸發(fā)主頁(yè)面背景滑動(dòng),特別是拉到頂部或者底部的時(shí)候,主頁(yè)面背景抖動(dòng)非常嚴(yán)重,百度了很多資料,試了好幾種方法,都沒(méi)能解決這個(gè)問(wèn)題,哪位踩過(guò)坑的大神可以提供一下思路。。。。
這是時(shí)間選擇器組件的核心代碼:
<template>
<div>
<div class="picker_content">
<div class="picker_title">
<span class="title_cancel" @click="cancelChooseDate">取消</span>
<span class="title_text">請(qǐng)選擇{{data}}時(shí)間</span>
<span class="title_submit" @click="submitChooseDate">確定</span>
</div>
<div class="picker_body">
<div class="center_body"></div>
<div class="body_year" @scroll.prevent="scrollDate('year')">
<div class="year_body" v-for="(item, index) in yearData" :key="index">
<span class="year_text">{{item}}</span>
</div>
</div>
<div class="body_month" @scroll.prevent="scrollDate('month')">
<div class="month_body" v-for="(item, index) in monthData" :key="index">
<span class="month_text">{{item}}</span>
</div>
</div>
<div class="body_day" @scroll.prevent="scrollDate('day')">
<div class="day_body" v-for="(item, index) in dayData" :key="index">
<span class="day_text">{{item}}</span>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
export default {
props: {
data: {
type: String,
default: ''
},
theDate: {
type: String,
default: ''
}
},
data() {
return {
initData: ['1', '2', '3', '4', '5'],
yearData: ['', '', '2018年', '2019年', '2020年', '2021年', '2022年', '', ''],
monthData: ['', '', '1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月' ,'11月', '12月', '', ''],
allDayData: ['', '', '1號(hào)', '2號(hào)', '3號(hào)', '4號(hào)', '5號(hào)', '6號(hào)', '7號(hào)', '8號(hào)', '9號(hào)', '10號(hào)', '11號(hào)', '12號(hào)', '13號(hào)', '14號(hào)', '15號(hào)', '16號(hào)', '17號(hào)', '18號(hào)', '19號(hào)', '20號(hào)', '21號(hào)', '22號(hào)', '23號(hào)', '24號(hào)', '25號(hào)', '26號(hào)', '27號(hào)', '28號(hào)', '29號(hào)', '30號(hào)', '31號(hào)', '', ''],
dayData: [],
year: undefined,
month: undefined,
day: undefined,
temp: {
selectedMonth: undefined,
selectedDay: undefined,
beginOrEnd: undefined
}
}
},
created() {
this.dayData = this.allDayData
},
watch: {
theDate: 'initDate'
},
methods: {
initDate() {
let _date = new Date()
let _year = _date.getFullYear() + '年'
let _month = this.theDate.split('月')[0] + '月'
let _day = this.theDate.split('月')[1]
//定位當(dāng)前年份并高亮
for (const v of this.yearData) {
if (_year == v) {
document.getElementsByClassName('body_year')[0].scrollTop = (this.yearData.indexOf(v) - 2) * 42
document.getElementsByClassName('body_year')[0].children[this.yearData.indexOf(v)].children[0].classList.add('selected_style')
}
}
//定位當(dāng)前月份并高亮
for (const v of this.monthData) {
if (_month == v) {
document.getElementsByClassName('body_month')[0].scrollTop = (this.monthData.indexOf(v) - 2) * 42
document.getElementsByClassName('body_month')[0].children[this.monthData.indexOf(v)].children[0].classList.add('selected_style')
}
}
//定位當(dāng)前天數(shù)并高亮
for (const v of this.dayData) {
if (_day == v) {
document.getElementsByClassName('body_day')[0].scrollTop = (this.dayData.indexOf(v) - 2) * 42
document.getElementsByClassName('body_day')[0].children[this.dayData.indexOf(v)].children[0].classList.add('selected_style')
}
}
},
scrollDate(data) {
let _yearArr = []
let _monthArr = []
let _dayArr = []
for (const v of document.getElementsByClassName('body_year')[0].children) {
_yearArr.push(v)
}
for (const v of document.getElementsByClassName('body_month')[0].children) {
_monthArr.push(v)
}
for (const v of document.getElementsByClassName('body_day')[0].children) {
_dayArr.push(v)
}
if (data == 'year') {
let a = document.getElementsByClassName('body_year')[0].scrollTop
let year = undefined
let month = undefined
//取當(dāng)前高亮月份
for (const v of _monthArr) {
if (v.children[0].classList[1] == 'selected_style') {
month = parseInt(v.children[0].innerText.slice(0, -1))
}
}
for (const v of _yearArr) {
if (((2 + parseInt(a/42)) == _yearArr.indexOf(v)) && (a%42 <= 21)) {
v.children[0].classList.add('selected_style')
//取當(dāng)前高亮年份
year = parseInt(v.children[0].innerText.slice(0, -1))
//根據(jù)當(dāng)前月份判斷天數(shù)
if (month == '1' || month == '3' || month == '5' || month == '7' || month == '8' || month == '10' || month == '12') {
this.dayData = this.allDayData
}
if (month == '4' || month == '6' || month == '9' || month == '11') {
this.dayData = this.allDayData.slice(0, -3)
this.dayData.push('')
this.dayData.push('')
}
//當(dāng)前月份為二月份時(shí)聯(lián)合當(dāng)前年份判斷天數(shù)
if (month == '2' && year%4 == 0) {
this.dayData = this.allDayData.slice(0, -4)
this.dayData.push('')
this.dayData.push('')
}
if (month == '2' && year%4 != 0) {
this.dayData = this.allDayData.slice(0, -5)
this.dayData.push('')
this.dayData.push('')
}
} else {
v.children[0].classList.remove('selected_style')
}
}
}
if (data == 'month') {
let a = document.getElementsByClassName('body_month')[0].scrollTop
let year = undefined
//取當(dāng)前高亮年份
for (const v of _yearArr) {
if (v.children[0].classList[1] == 'selected_style') {
year = parseInt(v.children[0].innerText.slice(0, -1))
}
for (const v of _monthArr) {
if (((2 + parseInt(a/42)) == _monthArr.indexOf(v)) && (a%42 <= 21)) {
v.children[0].classList.add('selected_style')
//取當(dāng)前高亮月份
let month = parseInt(v.children[0].innerText.slice(0, -1))
//判斷該月份確定天數(shù)
if (month == '1' || month == '3' || month == '5' || month == '7' || month == '8' || month == '10' || month == '12') {
this.dayData = this.allDayData
}
if (month == '4' || month == '6' || month == '9' || month == '11') {
this.dayData = this.allDayData.slice(0, -3)
this.dayData.push('')
this.dayData.push('')
}
//當(dāng)前月份為二月份時(shí)聯(lián)合當(dāng)前年份判斷天數(shù)
if (month == '2' && year%4 == 0) {
this.dayData = this.allDayData.slice(0, -4)
this.dayData.push('')
this.dayData.push('')
}
if (month == '2' && year%4 != 0) {
this.dayData = this.allDayData.slice(0, -5)
this.dayData.push('')
this.dayData.push('')
}
} else {
v.children[0].classList.remove('selected_style')
}
}
}
}
if (data == 'day') {
let a = document.getElementsByClassName('body_day')[0].scrollTop
for (const v of _dayArr) {
if (((2 + parseInt(a/42)) == _dayArr.indexOf(v)) && (a%42 <= 21)) {
v.children[0].classList.add('selected_style')
} else {
v.children[0].classList.remove('selected_style')
}
}
}
},
cancelChooseDate() {
this.$emit('closeTimePicker', false)
},
submitChooseDate() {
let _monthArr = []
let _dayArr = []
for (const v of document.getElementsByClassName('body_month')[0].children) {
_monthArr.push(v)
}
for (const v of document.getElementsByClassName('body_day')[0].children) {
_dayArr.push(v)
}
for (const v of _monthArr) {
if (v.children[0].classList[1] == 'selected_style') {
this.temp.selectedMonth = v.children[0].innerText
}
}
for (const v of _dayArr) {
if (v.children[0].classList[1] == 'selected_style') {
this.temp.selectedDay = v.children[0].innerText
}
}
this.temp.beginOrEnd = this.data
this.$emit('chooseDate', this.temp)
}
}
}
</script>
這是首頁(yè)的代碼:
<template>
<div class="container">
<div class="bgColor" style="height:100%;width:100%;background-color: #f5f5f5;">
<Swiper v-if="list.length > 0" :autoPlay='true' :showIndicator='true' interval="2500" duration="500">
<Slide v-for="(item,index) in list" :key="index">
<img class="img" :src=item.src>
</Slide>
</Swiper>
<div class="body_top">
<div class="freedomCoach" @click="selectedFreedom">
<span class="freedomCoachText">查找教練</span>
</div>
<div class="myCoach" @click="selectedMy">
<span class="myCoachText">我的教練</span>
</div>
</div>
<div class="body_outside">
<div class="body">
<div class="body_left">
<img class="left_image" src="../assets/IndexDemo/weizhi@2x.png">
</div>
<div class="body_right">
<span class="right_city">{{nowCity}}</span>
<div class="right_location" @click="refresh">
<img class="right_location_image" src="../assets/IndexDemo/shape@2x.png">
<span class="right_location_text" id="myLocation">我的位置</span>
</div>
</div>
</div>
<div class="body">
<div class="body_left">
<img class="left_image" src="../assets/IndexDemo/booking_cat@2x.png">
</div>
<div class="body_right">
<div class="gear_project" v-for="(item1, index1) in gearData" :key="index1" @click="chooseGearType(index1)">
<div class="project_point"></div>
<span class="project_text">{{item1}}</span>
</div>
</div>
</div>
<div class="body">
<div class="body_left">
<img class="left_image" src="../assets/IndexDemo/shijian@2x.png">
</div>
<div class="body_right">
<div class="right_beginDate" @click="chooseBeginDate">
<span class="begin_text">開(kāi)始</span>
<span class="begin_date">{{beginDate}}</span>
</div>
<img class="right_centerImg" src="../assets/IndexDemo/next@2x.png">
<div class="right_endDate" @click="chooseEndDate">
<span class="end_text">結(jié)束</span>
<span class="end_date">{{endDate}}</span>
</div>
</div>
</div>
<div class="body">
<div class="body_left">
<img class="left_image" src="../assets/IndexDemo/xiangmu@2x.png">
</div>
<div class="body_right">
<div class="right_project" v-for="(item, index) in indexData" :key="index" @click="chooseOnePrj(index)">
<div class="project_point"></div>
<span class="project_text">{{item}}</span>
</div>
</div>
</div>
<div class="body">
<div class="body_left">
<img class="left_image" src="../assets/IndexDemo/sousuo@2x.png">
</div>
<div class="body_right">
<input class="right_input" v-model="searchString" placeholder="搜索教練、駕校等等">
</div>
</div>
<div class="body_appointment" @click="searchCoach">
<span class="appointment_text">開(kāi)始搜索</span>
</div>
</div>
<img class="adImage" src="../assets/IndexDemo/home_banner_03@2x.png" @click="toCoachesList">
<FooterItem></FooterItem>
</div>
<!-- 時(shí)間選擇器引用 -->
<time-picker :titleData="titleData" :theDate="theDate" :showSomething="showTimePicker" @returnData="returnData" @returnStatus="returnStatus"></time-picker>
<!-- 提示框組件引用 -->
<toast :showSomething="showToast" :title="toastTitle" :width="toastWidth" :type="toastType" @changeShow="changeShow"></toast>
<!-- Loading組件引用 -->
<loading :showSomething="showLoading"></loading>
</div>
</template>
<script>
import { Swiper, Slide } from "vue-swiper-component";
import FooterItem from "../components/Footer/Footer";
import TimePicker from "../components/TimePicker/Index";
import Toast from "../components/Toast/Index";
import constants from "../utils/constants";
import { isNullOrEmpty } from "../utils/validate";
import { getAdImage } from "../api/Index/index";
import Loading from "../components/Loading/Index";
export default {
data() {
return {
indexData: ["報(bào)名學(xué)車(chē)", "科目二", "科目三"],
showTimePicker: false,
titleData: undefined,
beginDate: "",
endDate: "",
theDate: "",
nowCity: "",
subjectType: undefined,
searchString: "",
showToast: undefined,
toastTitle: "",
toastWidth: "",
toastType: "",
showLoading: undefined,
list: [],
indexDetails: {},
address: "",
tempCity: "",
adcode: "",
gearData: ["C1手動(dòng)", "C2自動(dòng)"],
gearType: undefined
};
},
components: {
FooterItem,
TimePicker,
Toast,
Swiper,
Slide,
Loading
},
created() {
let vm = this;
let date = new Date();
let _beginDate = date.getFullYear();
let _endDate = date.getFullYear();
if (date.getMonth() + 1 < 10) {
_beginDate = _beginDate + "-" + "0" + (date.getMonth() + 1);
_endDate = _endDate + "-" + "0" + (date.getMonth() + 1);
} else {
_beginDate = _beginDate + "-" + (date.getMonth() + 1);
_endDate = _endDate + "-" + "0" + (date.getMonth() + 1);
}
if (date.getDate() < 10) {
_beginDate = _beginDate + "-" + "0" + date.getDate();
// _endDate = _endDate + "-" + "0" + date.getDate();//默認(rèn)結(jié)束時(shí)間與開(kāi)始時(shí)間為同一天
_endDate = _endDate + "-" + "0" + (date.getDate() + 6); //默認(rèn)結(jié)束時(shí)間與開(kāi)始時(shí)間間隔一周
} else {
_beginDate = _beginDate + "-" + date.getDate();
// _endDate = _endDate + "-" + date.getDate();//默認(rèn)結(jié)束時(shí)間與開(kāi)始時(shí)間為同一天
_endDate = _endDate + "-" + (date.getDate() + 6); //默認(rèn)結(jié)束時(shí)間與開(kāi)始時(shí)間間隔一周
}
window.localStorage.setItem(constants.startDate, _beginDate);
window.localStorage.setItem(constants.endDate, _endDate);
vm.beginDate = date.getMonth() + 1 + "月" + date.getDate() + "號(hào)";
// vm.endDate = date.getMonth() + 1 + "月" + date.getDate() + "號(hào)";//默認(rèn)結(jié)束時(shí)間與開(kāi)始時(shí)間為同一天
// vm.endDate = date.getMonth() + 1 + "月" + (date.getDate() + 6) + "號(hào)";//默認(rèn)結(jié)束時(shí)間與開(kāi)始時(shí)間間隔一周
let dayTime = date.setDate(date.getDate() + 6); //獲取當(dāng)前時(shí)間+6天的時(shí)間戳
let d = new Date(dayTime);
let M =
(date.getMonth()[0] + 1 < 10
? "0" + (date.getMonth() + 1)
: date.getMonth() + 1) + "月";
let D = date.getDate() + "號(hào)";
vm.endDate = M + D;
var map, geolocation, searchcity, geocoder;
map = new AMap.Map("container", {
resizeEnable: true
});
//加載地圖,調(diào)用城市查詢(xún)服務(wù)
map.plugin("AMap.CitySearch", function() {
searchcity = new AMap.CitySearch({
enableHighAccuracy: true //是否使用高精度定位,默認(rèn):true
});
map.addControl(searchcity);
searchcity.getLocalCity();
AMap.event.addListener(searchcity, "complete", onSearchComplete); //返回城市信息
});
function onSearchComplete(data) {
vm.nowCity = data.city;
}
//加載地圖,調(diào)用瀏覽器定位服務(wù)
map.plugin("AMap.Geolocation", function() {
geolocation = new AMap.Geolocation({
enableHighAccuracy: true, //是否使用高精度定位,默認(rèn):true
timeout: 10000 //超過(guò)10秒后停止定位,默認(rèn):無(wú)窮大
});
map.addControl(geolocation);
geolocation.getCurrentPosition();
AMap.event.addListener(geolocation, "complete", onComplete); //返回定位信息
});
function onComplete(data) {
data.position.getLat();
data.position.getLng();
let _lat = data.position.getLat();
let _lng = data.position.getLng();
window.localStorage.setItem(constants.latitude, _lat);
window.localStorage.setItem(constants.longitude, _lng);
//逆地理編碼插件引入與對(duì)象創(chuàng)建
map.plugin("AMap.Geocoder", function() {
//回調(diào)函數(shù)
//實(shí)例化Geocoder
geocoder = new AMap.Geocoder({
city: "020" //城市,默認(rèn):“全國(guó)”
});
//逆地理編碼
var lnglatXY = [data.position.getLng(), data.position.getLat()];
geocoder.getAddress(lnglatXY, function(status, result) {
if (status === "complete" && result.info === "OK") {
//獲得了有效的地址信息:
result.regeocode.formattedAddress;
vm.adcode =
result.regeocode.addressComponent.adcode.slice(0, 4) + "00";
vm.nowCity = result.regeocode.addressComponent.city; //教練列表定位城市
vm.tempCity = result.regeocode.addressComponent.city;
vm.address =
result.regeocode.addressComponent.street +
result.regeocode.addressComponent.streetNumber; //學(xué)員當(dāng)前定位位置
} else {
alert("獲取地址失敗");
}
});
});
}
// let _lat = "23.133267";
// let _lng = "113.368004";
// window.localStorage.setItem(constants.latitude, _lat);
// window.localStorage.setItem(constants.longitude, _lng);
//首頁(yè)加載廣告輪播圖
vm.showLoading = true;
let _imgList = [];
getAdImage().then(response => {
const data = response.data;
vm.indexDetails = data.data;
for (const v of vm.indexDetails) {
let _tmp = {};
_tmp.src = v.imgUrl;
_imgList.push(_tmp);
}
for (const v of _imgList) {
vm.list.push(v);
}
vm.showLoading = false;
});
},
mounted() {
// document.getElementsByClassName("bgColor")[0].style.cssText =
// "position:absolute; left: 0; top: 0; width: 100%; height: " +
// window.screen.height +
// "px; z-index: -1; background-color: #f5f5f5;";
// "position:absolute; left: 0; top: 0; width: 100%; height: 106%; z-index: -1;background-color: #f5f5f5;"
document
.getElementsByClassName("freedomCoach")[0]
.classList.add("selectedStyle");
document
.getElementsByClassName("freedomCoachText")[0]
.classList.add("selectedTextStyle");
},
methods: {
chooseOnePrj(data) {
let _arr = [];
for (const v of document.getElementsByClassName("right_project")) {
_arr.push(v);
}
for (const v of _arr) {
if (data == _arr.indexOf(v)) {
v.children[0].classList.add("choose_point_style");
v.children[1].classList.add("choose_text_style");
if (v.children[1].innerText == "報(bào)名學(xué)車(chē)") {
this.subjectType = " ";
} else if (v.children[1].innerText == "科目二") {
this.subjectType = "1";
} else {
this.subjectType = "2";
}
} else {
v.children[0].classList.remove("choose_point_style");
v.children[1].classList.remove("choose_text_style");
}
}
},
chooseGearType(data) {
let _arr = [];
for (const v of document.getElementsByClassName("gear_project")) {
_arr.push(v);
}
for (const v of _arr) {
if (data == _arr.indexOf(v)) {
v.children[0].classList.add("choose_point_style");
v.children[1].classList.add("choose_text_style");
if (v.children[1].innerText == "C1手動(dòng)") {
this.gearType = "c1";
} else {
this.gearType = "c2";
}
} else {
v.children[0].classList.remove("choose_point_style");
v.children[1].classList.remove("choose_text_style");
}
}
},
chooseBeginDate() {
this.showTimePicker = true;
this.theDate = this.beginDate;
this.titleData = "開(kāi)始";
},
chooseEndDate() {
this.showTimePicker = true;
this.theDate = this.endDate;
this.titleData = "結(jié)束";
},
returnData(data) {
this.showTimePicker = data.show;
let _date = new Date();
if (data.text == "開(kāi)始") {
this.beginDate = data.date;
let _beginDate = _date.getFullYear();
if (this.beginDate.split("月")[0] < 10) {
_beginDate = _beginDate + "-" + "0" + this.beginDate.split("月")[0];
} else {
_beginDate = _beginDate + "-" + this.beginDate.split("月")[0];
}
if (this.beginDate.split("月")[1].split("號(hào)")[0] < 10) {
_beginDate =
_beginDate +
"-" +
"0" +
this.beginDate.split("月")[1].split("號(hào)")[0];
} else {
_beginDate =
_beginDate + "-" + this.beginDate.split("月")[1].split("號(hào)")[0];
}
window.localStorage.setItem(constants.startDate, _beginDate);
}
if (data.text == "結(jié)束") {
this.endDate = data.date;
let _endDate = _date.getFullYear();
if (this.endDate.split("月")[0] < 10) {
_endDate = _endDate + "-" + "0" + this.endDate.split("月")[0];
} else {
_endDate = _endDate + "-" + this.endDate.split("月")[0];
}
if (this.endDate.split("月")[1].split("號(hào)")[0] < 10) {
_endDate =
_endDate + "-" + "0" + this.endDate.split("月")[1].split("號(hào)")[0];
} else {
_endDate =
_endDate + "-" + this.endDate.split("月")[1].split("號(hào)")[0];
}
window.localStorage.setItem(constants.endDate, _endDate);
}
this.theDate = "";
},
returnStatus(data) {
this.showTimePicker = data;
this.theDate = "";
},
selectedFreedom() {
//清除樣式
document
.getElementsByClassName("myCoach")[0]
.classList.remove("selectedStyle");
document
.getElementsByClassName("myCoachText")[0]
.classList.remove("selectedTextStyle");
//增加樣式
document
.getElementsByClassName("freedomCoach")[0]
.classList.add("selectedStyle");
document
.getElementsByClassName("freedomCoachText")[0]
.classList.add("selectedTextStyle");
},
selectedMy() {
//清除樣式
document
.getElementsByClassName("freedomCoach")[0]
.classList.remove("selectedStyle");
document
.getElementsByClassName("freedomCoachText")[0]
.classList.remove("selectedTextStyle");
//增加樣式
document
.getElementsByClassName("myCoach")[0]
.classList.add("selectedStyle");
document
.getElementsByClassName("myCoachText")[0]
.classList.add("selectedTextStyle");
//跳轉(zhuǎn)至團(tuán)隊(duì)教練頁(yè)面
this.$router.push({
path: "/teamCoachesList"
});
},
computingTime(data1, data2) {
let data;
let days;
let date = new Date();
data1 =
date.getFullYear() +
"/" +
data1.split("月")[0] +
"/" +
data1.split("月")[1].split("號(hào)")[0];
data2 =
date.getFullYear() +
"/" +
data2.split("月")[0] +
"/" +
data2.split("月")[1].split("號(hào)")[0];
data1 = Date.parse(data1);
data2 = Date.parse(data2);
data = data2 - data1;
data = Math.abs(data);
days = Math.floor(data / (24 * 3600 * 1000));
if (days < 7) {
return true;
} else {
return false;
}
},
searchCoach() {
if (isNullOrEmpty(this.subjectType)) {
this.showToast = true;
this.toastTitle = "請(qǐng)選擇科目";
this.toastType = "text";
return;
}
if (!this.computingTime(this.endDate, this.beginDate)) {
this.showToast = true;
this.toastTitle = "所選日期應(yīng)一周內(nèi)";
this.toastType = "text";
this.toastWidth = "200px";
return;
}
if (isNullOrEmpty(this.gearType)) {
this.showToast = true;
this.toastTitle = "請(qǐng)選擇駕照類(lèi)型";
this.toastType = "text";
return;
}
window.localStorage.setItem(
constants.currentCity,
this.tempCity
// document.getElementsByClassName("right_city")[0].innerText
);
window.localStorage.setItem(constants.subjectTypeId, this.subjectType);
window.localStorage.setItem(constants.gearType, this.gearType);
// window.localStorage.setItem(constants.currentCityCode, "440100");
window.localStorage.setItem(constants.currentCityCode, this.adcode);
if (this.searchString) {
window.localStorage.setItem(constants.searchStr, this.searchString);
} else {
window.localStorage.setItem(constants.searchStr, " ");
}
setTimeout(() => {
this.$router.push({
path: "/coachesList"
});
}, 500);
},
changeShow(data) {
this.showToast = data;
this.toastTitle = "";
this.toastType = "";
this.toastWidth = "";
},
toCoachesList() {
this.subjectType = "2";
window.localStorage.setItem(constants.subjectTypeId, this.subjectType);
this.$router.push({
path: "/coachesList",
query: {
type: "peilian"
}
});
},
refresh() {
this.nowCity = this.address;
document.getElementById("myLocation").style.color = "#0084ff";
}
}
};
</script>北大青鳥(niǎo)APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國(guó)IT技能型緊缺人才,是大數(shù)據(jù)專(zhuān)業(yè)的國(guó)家
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國(guó)一站式人才培養(yǎng)平臺(tái)、一站式人才輸送平臺(tái)。2014年4月3日在美國(guó)成功上市,融資1
北大課工場(chǎng)是北京大學(xué)校辦產(chǎn)業(yè)為響應(yīng)國(guó)家深化產(chǎn)教融合/校企合作的政策,積極推進(jìn)“中國(guó)制造2025”,實(shí)現(xiàn)中華民族偉大復(fù)興的升級(jí)產(chǎn)業(yè)鏈。利用北京大學(xué)優(yōu)質(zhì)教育資源及背
博為峰,中國(guó)職業(yè)人才培訓(xùn)領(lǐng)域的先行者
曾工作于聯(lián)想擔(dān)任系統(tǒng)開(kāi)發(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ū)ο箝_(kāi)發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫(kù),具有快速界面開(kāi)發(fā)的能力,對(duì)瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁(yè)制作和網(wǎng)頁(yè)游戲開(kāi)發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開(kāi)發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國(guó)Software AG 技術(shù)顧問(wèn),美國(guó)Dachieve 系統(tǒng)架構(gòu)師,美國(guó)AngelEngineers Inc. 系統(tǒng)架構(gòu)師。