English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
所有分類

用js控制捲軸問題程式碼如下function upup(){  timer = setInterval('scrollup()',50);}function downdown(){  timer = setInterval('scrolldown()',50);}function stopstop(){  clearInterval(timer);}function scrollup(){  currentpos = document.body.scrollTop;  window.scroll(0,--currentpos);}function scrolldown(){  currentpos = document.getElementById('orderpic').scrollTop;  document.getElementById('orderpic').scrollTo(0,++currentpos);}說明:當我觸碰到畫面上的指定圖案 會執行function upup或function downdown離開圖案就執行function stopstopfunction upup是正常的 可以正確的控制 視窗的y軸但我現在在視窗中有一個div區塊 是有y軸的我在 function downdown想控制它往下捲動但是確沒半法執行我猜測是document.getElementById('orderpic').scrollTo(0,++currentpos);有問題能否告訴我正確的寫法咧

2006-11-17 09:42:33 · 2 個解答 · 發問者 Jelly 7 in 電腦與網際網路 程式設計

Aureliano
建議你回答問題 先仔細看一下發問內容
並且回答問題 也先去翻翻書
不但有 scrollTO(x,y) 還有 scrollBy(x,y)

另外 windows.scroll() 是控制網頁主視窗的 捲軸
但問題內容是要控制 網頁中的div id=orderpic 區塊的捲軸
如果沒有做改變 我不覺得有辦法達到我要的目地

2006-11-19 16:39:39 · update #1

coolzero
先謝謝你的回答
不過對於第2點
發生的問題
似乎無法解決 ><

你的範例中 我沒有看到針對問題的註解耶

2006-11-20 08:48:11 · update #2

2 個解答

安安喔,看了你寫的程式之後,小弟有幾個建議,提供給你參考看看..

第一點建議:
scroll(),scrollTo(),scrollBy(),這3個方法,其實只能用在window物件上,也就是說
你只可以利用這3總方式,來變更目前視窗滾軸的位置而已..它們無法針對某
一個物件來作,舉例來說,你要在Div區塊使用的話便不可以..

第二點建議:
要針對某一個物件來作變更滾軸位置的話,你可以利用物件的scrollTop屬性
來作,但是您必須確定該物件的可滾動範圍,你可以利用物件的scrollHeight屬
性來取得..

但是這會有問題,在IE與FireFox裡,本屬性所傳回的值並不是實際的滾動範圍
值,請見我的範例,我有解決的方法,在此不多作介紹..

第三點建議:
利用setTimeOut()函式,定時變更變更滾軸位置,便可以達到你要的效果..

第四點建議:
我寫了一個小範例,希望對你有幫助..因為字數問題,無法在此貼出,請至下面
我的範例頁面去看看ㄅ..

http://www40.websamba.com/MyAsp101/DivScroll.htm

嗯就是這樣,希望對你有幫助...^_^另外有空可以到我的知識檔案裡逛逛喔.搞
不好有我曾經回答過的答案,對你有幫助喔..

ps:感謝喔,上次推薦小弟,在此向您說聲謝謝囉...以後有機會的話,在多多交流
ㄅ..

2006-11-20 06:13:38 · answer #1 · answered by jeff 5 · 0 0

根據我個人的了解, JavaScript 本身並沒有提供 scrollTo( ) 的函式,
您可以參考您往上捲動的函式的寫法看看:
將 document.getElementById( "orderpic" ).scrollTo( 0, ++currentpos ); 改成
window.scroll( 0, ++currentpos );
請參考。

2006-11-19 05:26:10 · answer #2 · answered by Aureliano 3 · 0 0

fedest.com, questions and answers