在判斷scroll.scrollTop = 0事, if的條件是scroll.scrollTop==content.offsetHeight/2 ,為什么這里的offsetHeight除以2, 如果不除以2, 瀏覽器的效果時候,走完了content里的內(nèi)容,但是呢,不在循環(huán). 這會scollTop有關(guān)系, 當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)的方式有點不一樣的, 這里不做介紹,大家可以去百度. 當代碼執(zhí)行到 setTime(), setInterval()時,會不會馬上執(zhí)行他們中的函數(shù)里,不會,js在這里會在這里做下標記,放學后你等著. 繼續(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的頂部偏移.當內(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
最贊回答 / THMAIL
因為讀取的時候是從頭讀到尾的,js放在head的時候,里面定義的獲取的一些屬性還沒有被讀取到,所以js一般最好放在body的最下面。1、window.onload=function(){var con1=document.getElementById("con1");var con2=document.getElementById("con2");var are=document.getElementById("big");? ? ? ? ? ? ? ? var speed = 50;? ? ? ? ? ...
2016-08-14