小编12M*_*e21的帖子

iOS safari:滚动在位置内被破坏:已修复;元素

在元素内部position: fixed;,如果您尝试在触摸开始时以错误的方式滚动滚动元素,滚动元素将“锁定”。

示例:触摸屏幕并向下拖动,然后向后拖动。该元素不会滚动。如果松开,等待几秒钟,然后尝试向上拖动,它就会滚动。
http://12me21.github.io/scroll-test.html

body {
   position: fixed;
   top: 0;
   bottom: 0;
   left: 0;
   right: 0;
}
#scroll-container {
   overflow-y: scroll;
   height: 100%;
}
#scroller {
   height: 200vh;
   font-size: 50px;
}
Run Code Online (Sandbox Code Playgroud)
<body>
   <div id=scroll-container>
      <div id=scroller>Test<br>more text</div>
   </div>
</body>
Run Code Online (Sandbox Code Playgroud)

这个答案:/sf/answers/3621311851/似乎与我遇到的问题相同,但修复不再有效。它似乎发生在所有固定元素内,并且不再由其引起-webkit-overflow-scrolling: touch;

现在有办法解决这个问题吗?或者我只需要完全避免position: fixed;

html css scroll mobile-safari ios

9
推荐指数
1
解决办法
7434
查看次数

更改 &lt;textarea&gt; 的值并允许用户撤消

过去,当您使用 javascript设置valuea 时textarea,Firefox 允许用户撤消此更改(例如,通过按 ctrl+Z)。但是,这不再有效,并且似乎没有任何体面的替代方案。

我已经尝试使用document.execCommand修改的textarea,但是这需要你自己来选择要修改的文本,它不会出现有可能在自动选择文本textarea

我也听说过,document.createEvent("TextEvent")但我找不到关于此的太多信息。看来只能在光标处插入文本,我也需要删除文本。

创建我自己的撤消/重做系统并捕获ctrl+ Z/Y按下不是一个可接受的解决方案。

这里已经问过类似的问题,但它们只涉及在光标处插入文本,而不是完全改变 textarea 的值。

html javascript firefox textarea undo-redo

5
推荐指数
1
解决办法
205
查看次数

标签 统计

html ×2

css ×1

firefox ×1

ios ×1

javascript ×1

mobile-safari ×1

scroll ×1

textarea ×1

undo-redo ×1