1、如图位置是一个html中的可编辑内容的div标签,在里边输入文字,会有一个光标。
2、通过getSelection可以获得一个Selection对象,如图。因为是一个光标,anchor和focus(选择的起点和终点)一样,偏移也一样。
3、如图,则进行文字选择,而且是跨行选择,以第一行为起点,第二行为终点,选择文字。
4、再次getSelection,可以看到anchorNode是起始节点,anchorOffset是起始偏移,focus是结束的。
5、如果从第二行倒着选到第一行,使用getSelection获取选择区域,可以看到anchorNode和focusNode和刚才相比,互换了。
6、使用一个node的textContent属性可以获得文字。结合focusOffset和anchorOffset,实际上可以获取光标/选中区域前后的文字。
7、将起始和结束位置设置为相同,而且都在结束节点的末尾。即变成闪烁光标。
panzoom.js触控屏和鼠标缩放速度不一致是由于触控屏反应更灵敏。Panzoom支持直接平移和缩放SVG元素。在IE11中,CSS动画/转换不适用于SVG元素,至少对于转换样式来说是这样。它们可以在其他浏览器中工作。可以使用setTransform选项在IE11中手动实现转换,并为javascript动画集成tweening库。鼠标的手势操作主要还是基于mousedown、mousemove、mouseup来实现。触屏设备基于touchstart、touchmove、touchend来实现。
本身这两种设备就是不等同的。而且现实工作中。谁会搞一个既在PC浏览器上支持,又在触屏浏览器上支持的东西呢?因为我们的网站本来就是分为桌面版和触屏版。让用户自由选择好了,我们开发者区分对待。
更何况,二者的手势形势从根本上就是不同的。触屏设备支持多点触控,可以进行pinch(双指缩放)、rotate(双指旋转)、双指下拉、双指上推等等特殊手势。请问鼠标如何去实现呢?
所以说,我们作为前端开发,不要总期许有一个大而全,万能的大神,写一个啥都能干的东西出来。即便是大神也要考虑有所为,有所不为啊。