我正在使用dhtmlx甘特圖UI組件,它有任務列表和圖形圖表。任務列表和圖形圖表包含在兩個單獨的div元素中,該元素同步並行滾動。通過滾動圖表區域,任務列表自動滾動,任務行位置與甘特圖行位置匹配。爲什麼有時scrollTop/scrollLeft不可寫?
檢查組件的源代碼,我發現了同步由下面的代碼來實現:
this.oData.onscroll = function() {
self.panelTime.scrollLeft = this.scrollLeft;
self.panelNames.scrollTop = this.scrollTop;
};
在UI控制所有HTML標記由JavaScript動態生成的。除了花費很長時間渲染800-ish任務列表之外,所有工作都很好。
爲了提高渲染時間,我決定構建自己的服務器端渲染模塊,以生成與最初生成的客戶端相同的HTML標記。這個標記是使用普通的jquery $ .get()從客戶端獲取的,並使用$(el).html()注入頁面。然後我將必要的事件處理程序作爲原始客戶端版本。
現在的問題是平行滾動不起作用。我可以在圖表區域捕獲滾動事件,但我無法設置任務列表區域的scrollTop屬性。我在firebug中測試以手動強制scrollTop屬性,但值沒有改變。看來,scrollTop屬性是隻讀的。
對此有任何解釋嗎?
謝謝你的解釋。我想我已經錯過了元素,所以scrollTop屬性轉到錯誤的div。 –