使用ui-ace http://angular-ui.github.io/ui-ace/並嘗試在單個網頁中使用多個代碼編輯器。 plunker例子是這裏https://plnkr.co/GPictv3HdtGWW76fHw2l使用多個ui-ace代碼編輯器的滾動問題
您應該能夠通過以下步驟來重現滾動已發行:
- 向下滾動到代碼editor4並選擇一些文本在editor4
- 向上滾動碼editor1和選擇在editor1
- 滾動回代碼editor4和一些文字,當你在代碼editor4單擊選擇或編輯文本的窗口自動向上滾動顯示代碼editor1
顯示編輯器1 - 4的主要代碼在這裏。我如何防止自動滾動行爲?如果用戶點擊其中一個代碼編輯器來編輯或選擇文本,該窗口不應滾動到不同的代碼編輯器。如果我將style.css
中的高度更改爲70px而不是500px,則在最大化時所有代碼編輯器都適合瀏覽器窗口,並且在不同代碼編輯器中選擇或編輯代碼時不會出現自動滾動問題。如果縮小瀏覽器窗口高度,使代碼編輯器不適合窗口,那麼當您嘗試在不同代碼編輯器中選擇或編輯代碼時,滾動問題將再次出現。
<section>
<label>Editor1:</label>
<div ui-ace="{
useWrapMode : false,
showGutter: false,
theme:'monokai',
mode: 'javascript'
}" ng-model="editor1">Ace 1 here</div>
<br>
<label>Editor2:</label>
<div ui-ace="{
useWrapMode : false,
showGutter: false,
theme:'monokai',
mode: 'javascript'
}" ng-model="editor2">Ace 2 here</div>
<br>
<label>Editor3:</label>
<div ui-ace="{
useWrapMode : false,
showGutter: false,
theme:'monokai',
mode: 'javascript'
}" ng-model="editor3">Ace 3 here</div>
<br>
<label>Editor4:</label>
<div ui-ace="{
useWrapMode : false,
showGutter: false,
theme:'monokai',
mode: 'javascript'
}" ng-model="editor4">Ace 4 here</div>
</section>