angular - 为什么 Ionic 默认不允许复制粘贴?
问题描述
从我看到的其他问题和离子论坛(见下面的链接)看来,离子在它的组件中有某种默认设置,自动应用于user-select: none
应用程序的主体。
我不是在这里寻找解决方法,而是我想了解这样做的目的。为什么 ionic 开发人员将其设为默认值?这究竟是如何应用的?后台是否有一些 javascript 正在应用它?
如果我在 app.scss 中应用解决方法:
body {
-webkit-user-select: text;
-moz-user-select: text;
-ms-user-select: text;
user-select: text;
}
或在 app.module.ts 中申请:
@NgModule({
declarations: [
....
],
imports: [
BrowserModule,
IonicModule.forRoot(MyApp, {
platforms: {
ios: {
scrollAssist: false,
autoFocusAssist: false
},
android: {
scrollAssist: false,
autoFocusAssist: false
}
}
}),
HttpModule
]
})
....,
..我会覆盖最初打算使用的 Ionic 的一些有用或基本功能吗?
应用这些选项之一会产生什么副作用?
参考链接: 离子2:如何使文本可选?
https://github.com/ionic-team/ionic/issues/5198#issuecomment-344606178
解决方案
Ionic 使用hammer.js,默认情况下以某种方式优化行为(眼睛触摸)。具体看这个页面:http ://hammerjs.github.io/tips/
“我不能再选择我的文字了!” Hammer 正在设置一个属性来改进桌面上平移的 UX。通常,桌面浏览器会在您拖动页面时选择文本。用户选择 css 属性禁用此功能。
如果您关心文本选择而不是桌面体验,您可以简单地从默认值中删除此选项。确保在创建实例之前执行此操作。
delete Hammer.defaults.cssProps.userSelect;
推荐阅读
- python - Conda 环境安装在错误的文件夹中?
- c++ - 如何通过 V2 Credential Provider 中的 GetSerialization 函数提交生物认证数据?
- javascript - 无法找出为什么该值未定义
- python-asyncio - asyncio.get_event_loop().run_until_complete(asyncio.sleep(1)) 是什么意思
- python - 如何使用 Django 将 postgresql 连接到 aws RDS
- ios - iOS - node-applesign:应用程序共享扩展辞职不起作用
- python - 序数逻辑回归:R vs python等价
- angular - Angular如何添加多个对象而不是覆盖到localStorage
- node.js - 创建离子项目时的Npm问题
- react-native - react-native-open-map 库不工作