老師講的是思路 代碼 當(dāng)然還能優(yōu)化很多了 大家理解了滾動的原理就好了嘛 何必計較細節(jié)
2016-08-30
這一課講的邏輯非?;靵y,并且有講解錯誤的地方,如setTimeout 里面的 area.scrollTop++,并不是一直加1,而是只加1次,容易造成誤導(dǎo)
2016-08-28
老師講的有點復(fù)雜。我想這樣可以實現(xiàn)的:設(shè)一個大的定時器,每個2秒執(zhí)行一遍小定時器。小定時器里每50毫秒實現(xiàn)moveB.scrollTop+=1; 再執(zhí)行判斷:if(moveB.scrollTop%aheight==0){clearInterval(timer2);}
2016-08-26
理論上當(dāng)li少到可以全部顯示在可視界面的話,偏移時的scrollTop永遠少于con1.scrollHeight。就達不到老師的判定條件:
if(moveB.scrollTop>=con1.scrollHeight){
moveB.scrollTop=0;
}else{
moveB.scrollTop+=1;
}
可以用console.log測試box.scrollTop和con.scrollHeight進行驗證。
我覺得把添加子結(jié)點放在定時器內(nèi),讓它不斷地產(chǎn)生新子結(jié)點,達到滾動的目的挺好的。
if(moveB.scrollTop>=con1.scrollHeight){
moveB.scrollTop=0;
}else{
moveB.scrollTop+=1;
}
可以用console.log測試box.scrollTop和con.scrollHeight進行驗證。
我覺得把添加子結(jié)點放在定時器內(nèi),讓它不斷地產(chǎn)生新子結(jié)點,達到滾動的目的挺好的。
2016-08-26
在判斷scroll.scrollTop = 0事, if的條件是scroll.scrollTop==content.offsetHeight/2 ,為什么這里的offsetHeight除以2, 如果不除以2, 瀏覽器的效果時候,走完了content里的內(nèi)容,但是呢,不在循環(huán). 這會scollTop有關(guān)系, 當(dāng)scorllTop滾到頂部,下面沒有內(nèi)容的時候,ScrollTop++是沒有用的, 但是這個時候呢scroll.scrollTop!=content.offsetHeigh,就停止了. 為了scrollTop
==offsetHeigh,把offsetHeigh/2就可以無縫滾動了.
==offsetHeigh,把offsetHeigh/2就可以無縫滾動了.
2016-08-23
這種方式去實現(xiàn)無線滾動有一個缺點就是, 不同的瀏覽器對scrollTop理解不同,兼容性很差, 效果不好,會跳一下.就是字還沒有走完, scrollTop就等于offsetHeight, 就賦值scrollTop為0了,效果不是很理想. 建議用jquery的方法來實現(xiàn). 里面有解決瀏覽器兼容性的問題
2016-08-23
老師特別喜歡用setTime(), setInterval()這兩個循環(huán)調(diào)用的方法, 他們循環(huán)的方式有點不一樣的, 這里不做介紹,大家可以去百度. 當(dāng)代碼執(zhí)行到 setTime(), setInterval()時,會不會馬上執(zhí)行他們中的函數(shù)里,不會,js在這里會在這里做下標記,放學(xué)后你等著. 繼續(xù)執(zhí)行后面的代碼,為什么這里沒有馬上執(zhí)行setTime()中的方法,因為在寫的時候setTime(fun,time),這里寫的是fun,不是fun(),寫fun()后就是調(diào)用函數(shù),會馬上調(diào)用函數(shù),這里setTime()不允許這樣,寫fun,就是函數(shù)名, 函數(shù)名是函數(shù)的指針,在time循環(huán)后調(diào)用這個函數(shù).
2016-08-23
這里說下文中的一個地方,有點奇怪, setInterval("fun()",time),為什么這里要給fun()加括號呢, 加引號后, JS會自動的調(diào)用eval()方法,然后eval()來執(zhí)行這個方法fun(). JS定義setInterval(fun,time),這里的fun不是調(diào)用函數(shù)本身, 是指向函數(shù)的指針,然后在隔time時間后找到函數(shù)的物理位置并執(zhí)行它. 或者用代碼串的方式setInterval("scroll()",time),記住這里的代碼串要加(),加空號是為了讓eval()執(zhí)行它. 不同的寫法, 結(jié)果是相同的.
2016-08-23
說下這里的scrollTop(),滾動條相對于其頂部的偏移, 就是滾動條向上移動,相對div的頂部偏移.當(dāng)內(nèi)容剛剛好偏移出這個div的顯示區(qū)域的時候,這個scollTop就等于div中內(nèi)容的offsetHeight. 這里要給這個div加上overflow:hidden; 同樣的, 也是給他設(shè)置scollTop(),讓他內(nèi)容向上滾. 不是它自己滾動. 在不同的瀏覽器中滾動多少也不一樣,比如你設(shè)置的是滾動10px, chrome滾動了12px, 火狐滾動了15px,實際的效果有所差別. IE版本沒有測試過,不做評論
2016-08-22