ccs3 transform,transition,animation了解下
這是PHP?
我一個菜逼前端 BB一句?
是不是 $this 指向的問題?
@donglegend 你好,謝謝,基本上可以,但是這種方式感覺有缺陷,如下:
//假設我想在1s中完成動畫(滑動250px)
//那么我需要函數執(zhí)行多少次呢?
//很顯然,如果我想動畫看上去越順滑,那必須每次移動的像素就越小,所以函數執(zhí)行越頻繁;
//相反,如果函數間隔時間越大,動畫會非常難看(一次移動的像素太多)
問題:假設我滑動的距離足夠大(1000px),執(zhí)行的時間足夠短(0.3s),看上去動畫要足夠順滑(每次移動5px),那么函數需要多長時間執(zhí)行一次呢? 。0.3 / (1000 / 5) ,0.3s要執(zhí)行200次函數,每 0.0015s 執(zhí)行一次,這么頻繁的執(zhí)行函數到底有沒有問題呢?如果每次只能移動1px呢?
再者就是這些計算麻煩,不如css3動畫來得方便。
我用css實現的動畫和js鉤子實現的作比較,都是0.3s,總感覺css的動畫要快,要順滑。
<template>
<transition
v-on:before-enter="beforeEnter"
v-on:enter="enter"
v-on:leave="leave"
>
<slot></slot>
</transition>
</template>
<script>
export default {
name: 'animation',
data() {
return {
enterTimer: null,
leaveTimer: null
}
},
methods: {
beforeEnter: function(el) {
//設置滑塊的初始位置(滑塊的寬度)
el.style.bottom = '-250px'
},
enter: function(el, done) {
clearInterval(this.leaveTimer)
let _v = 0
//假設我想在1s中完成動畫(滑動250px)
//那么我需要函數執(zhí)行多少次呢?
//很顯然,如果我想動畫看上去越順滑,那必須每次移動的像素就越小,所以函數執(zhí)行越頻繁;
//相反,如果函數間隔時間越大,動畫會非常難看(一次移動的像素太多)
this.enterTimer = setInterval(() => {
if (_v < 250) {
_v += 2.5
} else {
_v = 250
clearInterval(this.enterTimer)
done()
}
el.style.opacity = _v
el.style.transform = `translateY(-${_v}px)`
}, 3)
},
leave: function(el, done) {
clearInterval(this.enterTimer)
let _v = 250
this.leaveTimer = setInterval(() => {
if (_v > 0) {
_v -= 2.5
} else {
_v = 0
clearInterval(this.leaveTimer)
done()
}
el.style.opacity = _v
el.style.transform = `translateY(-${_v}px)`
}, 3)
}
}
}
</script>
之前一直以為官方價紹了兩種方式是等價的,并且兩種方式對應的demo不是等效的,感覺這是巨大的一個坑
在地圖上倒好做了,德高百度啥的直接有現成的接口,設定路徑就行了。
src="img[nowIndex].src" 一樣的啊
es6:
var items = document.querySelectorAll("li");
for(let i = 0; i<items.length;i++){
items[i].onclick = function(){
console.log(i)
}
}
es5:
var items = document.querySelectorAll("li");
for(var i = 0; i<items.length;i++){
(function(i){
items[i].onclick = function(){
console.log(i)
}
})(i)
}
for循環(huán)直接就運行了跑了6次,等你點擊的時候i已經等于5
axios 的攔截器可以試一下
//添加請求攔截器
axios.interceptors.request.use(config => {
//在發(fā)送請求之前做某事,比如說 設置loading動畫顯示
return config
}, error => {
//請求錯誤時做些事
return Promise.reject(error)
})
//添加響應攔截器
axios.interceptors.response.use(response => {
//對響應數據做些事,比如說把loading動畫關掉
return response
}, error => {
//請求錯誤時做些事
return Promise.reject(error)
})可以用v-show+vue過渡動畫,這樣就可以實現
在顯示動畫中,加上動畫延時,這樣就不會出現同步和重疊的情況,
但這樣會有一種情況就是初始化的時候會慢,如果想要解決,還可以初始化后給他們加上一個class,
然后.fade-enter-active.xxxx 兩個class都有就加上動畫延時,transtion-delay,就能解決
你應該把進退場動畫放在動態(tài)元素上。
<div *ngFor="let item of projects" [@myanim]>
...
</div>this.$nextTick(()=>{
this.$set(......)
})
cocos2d-js
一個想法(實際是不是這樣做的就不知道了):每次滾動播放一定的幀數,如果出現連續(xù)滾動則要做防抖動處理,并根據滾動距離進行幀的播放。看網站的效果似乎還用了緩動函數,因為滾動一次的時候從開始到停止并不是很流暢。
原來這個原因:
/**
* 觸摸小配件中
*/
partTouchMove: function (e) {
//獲取當前小配件的partTouchData
//let partTouchData = e.currentTarget.dataset.item.partTouchData;
//獲取當前小配件的id
let id = e.currentTarget.dataset.item.id;
let partTouchData = this.data.showDogs[id].partTouchData
把
let partTouchData = e.currentTarget.dataset.item.partTouchData;
改為
let partTouchData = this.data.showDogs[id].partTouchData
完美解決?。?!
可能是通過data-綁定了復雜數據,不斷循環(huán)獲取的時候,會嚴重影響性能。
使用.bind(this)綁定上下文
北大青鳥APTECH成立于1999年。依托北京大學優(yōu)質雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數據專業(yè)的國家
達內教育集團成立于2002年,是一家由留學海歸創(chuàng)辦的高端職業(yè)教育培訓機構,是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
北大課工場是北京大學校辦產業(yè)為響應國家深化產教融合/校企合作的政策,積極推進“中國制造2025”,實現中華民族偉大復興的升級產業(yè)鏈。利用北京大學優(yōu)質教育資源及背
博為峰,中國職業(yè)人才培訓領域的先行者
曾工作于聯想擔任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔任項目經理從事移動互聯網管理及研發(fā)工作,曾創(chuàng)辦藍懿科技有限責任公司從事總經理職務負責iOS教學及管理工作。
浪潮集團項目經理。精通Java與.NET 技術, 熟練的跨平臺面向對象開發(fā)經驗,技術功底深厚。 授課風格 授課風格清新自然、條理清晰、主次分明、重點難點突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網頁制作和網頁游戲開發(fā)。
具有10 年的Java 企業(yè)應用開發(fā)經驗。曾經歷任德國Software AG 技術顧問,美國Dachieve 系統(tǒng)架構師,美國AngelEngineers Inc. 系統(tǒng)架構師。