2010-11-29 67 views
1

好吧,故事是我的用戶需要一個多選下拉列表,這在ASP.NET中不存在,所以我要用的簡單解決方案是我使用帶有多重選擇的列表框,我從大小1開始,onmouseover將大小改爲10,onmouseout將它重新設置爲1。足夠簡單,用戶不知道其中的差異。擴展下拉區域而不是下面的javascript

現在,我的問題來自於這樣一個事實:由於我的Web應用程序中有任何控件,因此我將這些列表框設置爲比其他控件更高的z-index數字,這會產生一個問題:在我的列表框中靠近頁面底部,列表在下面展開而不在上面,部分列表框位於頁面底部,但由於onmouseout重置了列表框的大小,我無法向下滾動頁面。

有誰知道我需要設置什麼才能讓它擴大而不是降低?

編輯此外,有些人可能會問:「你爲什麼不只是重新排列列表框中的網頁較高的位置」的原因,這是不是一個可行的選項,我對超過40個控制頁面,它們被分組在一起,我不是隨機地將它們放在他們所在的位置(即投資信息在一個部分,在另一個帳戶中,在另一個帳戶中的適用性)

+0

是jQuery的一個選項?有幾個很好的多選插件,我目前正在使用。 – Silkster 2010-11-29 23:30:33

+0

老實說我是一個新手程序員,一直在做這個工作大概2個月也許我不太熟悉javascript,所以我不知道你會怎樣去使用Jquery – IWriteApps 2010-11-30 14:33:42

回答

1

編輯:值得注意的是,jQuery下面的版本會更緊湊,在我看來,更容易理解。

Glo,你現在的代碼在這裏會有所幫助,特別是因爲看起來你很難改變我們給的任何東西,或者實現我們可能描述的東西。無論如何,這在IE7,Firefox和Opera中都能達到預期效果; Safari瀏覽器和Chrome瀏覽器變得古怪:http://jsfiddle.net/bUFzq/35/(從http://www.plus2net.com/html_tutorial/html_frmddl.php修改)。

CSS只是使選擇的位置相對於其默認位置。元素只能相對於其他定位元素進行定位。 `位置:相對;'將元素保留在原來的位置,直到你移動它,而不是絕對的和固定的。它也相對於其最近定位的祖先的邊緣進行定位。 (IT行業有一個令人遺憾的增加Y向下而不是向上的慣例,只是向上或向下)

element.offsetHeight是元素的計算高度 - 它在屏幕上出現的大小。 element.style.bottom(就像它的堂表頂部,左邊和右邊)一樣,在元素中心的方向上設置元素與相應邊緣的偏移量。 setAttribute是不言自明的;它的行爲就好像你實際上在編輯HTML一樣。 Mostelement.style(不在所有其他對象上)的屬性表示和修改具有相似名稱的CSS屬性。例如,element.style.backgroundColor設置background-color屬性。

addEvent是從Dustin Diaz的Rock Solid addEvent()複製的函數,因爲瀏覽器對於如何執行事件並不十分認同。但是,如果我不在單個腳本區域內工作,我會將其腳本放在單獨的文件中,並將其放在另一個文件中。我做了`var addEvent = init();'就是讓你不必翻閱他的源代碼,儘管它是一個好代碼的好例子。 1)因爲我需要這個高度值以備後用,2)因爲某種原因(至少在jsFiddle中)它不是從正確的位置開始的,並且只有當聽衆按照該順序被呼叫時纔會到達那裏。