小编swi*_*ynx的帖子

如何在 iOS 13 Safari 中禁用身体滚动(当保存为 PWA 到主屏幕时)?

问题:

我知道这个问题已经被问过十几次了,但这些问题的解决方案都不适合我。

我希望 iOS 13 Safari 上的 body 元素不滚动。这意味着没有滚动,也没有弹性反弹(溢出滚动)效果。

我设置了两个彼此相邻的元素overflow: scroll;,它们应该滚动,只是它们周围的主体不应该滚动。

我尝试过的所有解决方案都不适用于头部带有以下标签并保存到主屏幕的渐进式网络应用程序。

<meta name="apple-mobile-web-app-capable" content="yes">
Run Code Online (Sandbox Code Playgroud)

我尝试过的解决方案:

尝试 1:设置隐藏在正文和/或 html 上的溢出。不适用于 iOS 13 Safari。

/sf/answers/1262625801/

html {  
    position: relative;
    overflow: hidden;
    height: 100%;
}

body {
    position: relative;
    overflow: hidden;
    height: 100%;
}
Run Code Online (Sandbox Code Playgroud)

在 iOS 13 safari 中什么都不做,但在 macOS safari 和 Firefox 中有效。

尝试2:固定在身体上的设置位置。对我不起作用,因为当用户滚动时,主体不会,但滚动仍然阻止我的两个内部元素在溢出反弹动画时滚动。

/sf/answers/3351221961/

body {
    position: fixed;
}
Run Code Online (Sandbox Code Playgroud)

只将正文放在页面滚动上。滚动(溢出滚动)通过固定体发生......

尝试 3:防止默认触摸移动。没有用(是一个较旧的解决方案......)。

/sf/answers/3489737471/

document.addEventListener("touchmove", function (e) {
    e.preventDefault();
}, { passive: false });
Run Code Online (Sandbox Code Playgroud)

我什么都不做。不是在 safari …

html javascript css safari ios

15
推荐指数
3
解决办法
9045
查看次数

如何仅在 CSS 变量存在时使用它们?

我有一些 CSS,我想要一个默认颜色,然后用一个变量覆盖它。当 CSS 变量不存在时,我想使用后备颜色。

:root {
    /*--tintColor: red;*/
}

.text {
    color: blue;
    color: var(--tintColor);
}
Run Code Online (Sandbox Code Playgroud)

当变量没有像注释掉那样设置时,颜色变为黑色。在这种情况下,我希望在未定义变量时颜色回到蓝色。这可能吗?

html css css-variables

10
推荐指数
1
解决办法
2738
查看次数

如何在 &lt;img&gt; 标签中更改 svg 上的描边颜色?

我有一个 svg 文件,例如 a.svg,其内容为:

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 50 50">
    <g fill="none" fill-rule="evenodd">
        <line x1="25" y1="15" x2="35" y2="24.6" stroke-width="3" stroke-linecap="round"/>
        <line x1="25" y1="35" x2="35" y2="24.6" stroke-width="3" stroke-linecap="round"/>
    </g>
</svg>
Run Code Online (Sandbox Code Playgroud)

svg 没有描边颜色,但是当我使用如下标签导入此 svg 时,我希望能够在 css 中设置描边颜色:

HTML:

<img src="a.svg">
Run Code Online (Sandbox Code Playgroud)

CSS:

img {
    stroke: red;
    /* This doesn't work */
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

html css svg

10
推荐指数
1
解决办法
1万
查看次数

触摸事件的movementX和movementY替代方案是什么?

我知道如何跟踪鼠标在画布区域上移动时的移动。

var canvas = document.getElementById("canvas");
var info = document.getElementById("info");

function getMovements(e) {
  info.innerHTML =  "x change: " + String(e.movementX) + " , y change: " + String(e.movementY);
}

canvas.addEventListener("mousemove", getMovements);
Run Code Online (Sandbox Code Playgroud)
canvas {
  background-color:bisque;
}
Run Code Online (Sandbox Code Playgroud)
<canvas id ="canvas" width=300, height=300></canvas>
<div id=info></div>
Run Code Online (Sandbox Code Playgroud)

但是,当&不起作用时,我该如何对canvas.addEventListener("touchmove", getMovements);事件做同样的事情呢?e.movementXe.movementY

javascript

10
推荐指数
1
解决办法
5543
查看次数

如何在 CSS 中使用 macOS 系统强调色?

在 macOS 上使用 Safari 时,按钮和选择等表单控件使用系统的强调色。

通过转到“系统偏好设置”>“常规”更改强调色时,表单元素的颜色会相应更改。

如何在我自己的 CSS 样式中使用这种强调色?

CSS 解决方案是首选,但如果不能仅使用 CSS,JavaScript 解决方案也可以工作。

html javascript css macos

8
推荐指数
1
解决办法
610
查看次数

在Swift中有一个具有多种类型的变量

我想有一个变量,它可以有多种类型(只有我定义的那些),如:

var example: String, Int = 0
example = "hi"
Run Code Online (Sandbox Code Playgroud)

此变量应该只能保存Int和String类型的值.

这可能吗?

谢谢你的帮助 ;)

types ios swift

6
推荐指数
4
解决办法
3306
查看次数

如何将负零与正零分开?

我希望能够快速测试零是正数还是负数。

let neg: CGFloat = -0
let pos: CGFloat = +0

if pos == neg {
    // this gets executed, but I don't want this
}
Run Code Online (Sandbox Code Playgroud)

上面的代码不能像我需要的那样工作,有人可以帮助我吗?

谢谢 ;)

numbers zero ios swift negative-zero

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

如何删除摘要元素侧面的箭头

我在详细信息元素中有一个摘要:

<details>
  <summary>Hello</summary>
</details>
Run Code Online (Sandbox Code Playgroud)

我努力了:

summary {
  display: block; /* works in firefox */
  list-style: none; /* works in firefox */
}

/* didn't work in any browser */
summary::marker,
summary::-webkit-details-marker {
  display: none;
}

/* Solution for Chrome and Safari? */
Run Code Online (Sandbox Code Playgroud)

从这个问题如何隐藏 Chrome 中 HTML5 <details> 元素上默认显示的箭头?

但这些解决方案实际上都不适用于 Chrome。

如何在 chrome 中删除此箭头?

html css google-chrome

5
推荐指数
2
解决办法
4635
查看次数

如何生成用于不记名令牌的加密安全随机数?

我想生成一个安全的随机数,用于 Vapor Swift 中的不记名令牌。

我看过OpenCrypto但它似乎无法生成随机数。

我该怎么做呢?

random cryptography swift vapor

5
推荐指数
2
解决办法
1735
查看次数

如何使自定义文本编辑器在修改 DOM 后使用撤消和重做快捷方式?

contenteditable我正在使用div 上的属性构建一个小型自定义编辑器。

默认情况下,当用户粘贴 HTML 内容时,HTML 会插入到 div 中contenteditable,这是我不想要的。

为了解决这个问题,我使用了一个自定义粘贴处理程序,如下问题所示:

停止在 contenteditable div 中粘贴 html 样式,仅粘贴纯文本

editor.addEventListener("paste", (e) => {
  e.preventDefault();

  const text = e.clipboardData.getData('text/plain');

  document.execCommand("insertText", false, text.replaceAll("\n", "<div><br></div>"));
})
Run Code Online (Sandbox Code Playgroud)

到目前为止,一切都很好。因为execCommand已弃用,所以我使用了替代品,即基本上使用范围来手动插入文本(去除 HTML)。

execCommand() 现已过时,有什么替代方法?

替换 contenteditable div 中选定的文本

editor.addEventListener("paste", (e) => {
  e.preventDefault();

  const text = (e.originalEvent || e).clipboardData.getData("text/plain");

  const selection = window.getSelection();
  selection.deleteFromDocument();

  const range = selection.getRangeAt(0);
  range.insertNode(document.createTextNode(text));
  range.collapse();
});
Run Code Online (Sandbox Code Playgroud)

这很有效,直到我注意到粘贴某些内容后撤消和重做命令不再起作用。这是因为在自定义粘贴事件中完成了 DOM 修改,这是一个破坏因素。


在寻找解决方案时,我发现了以下问题:

允许 contenteditable 在 dom 修改后撤消

第一个答案建议使用execCommand,但它已被弃用,因此这不是一个好的解决方案

第二个答案建议构建一个自定义撤消重做堆栈来手动处理所有这些事件。所以我选择了第二种解决方案。


我使用简单的数组来存储版本来构建自定义撤消重做处理程序。为此,我使用该 …

javascript events

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

如何使用 Vapor Swift 获取 URL 的 HTML?

在我的一条路线中,我想从不同的站点获取 HTML。https://docs.vapor.codes/4.0/content/ documents支持 JSON 等,但我在原始 HTML 上找不到任何内容。

request.client.get(URI(string: "https://example.com/")).map { (response: ClientResponse) -> String? in
    if response.status == .ok && response.content.contentType == .html {
        return response.content... // How do I get raw html?
    }

    return nil
}
Run Code Online (Sandbox Code Playgroud)

如何从客户端响应中获取原始 HTML?

response request swift vapor

4
推荐指数
1
解决办法
220
查看次数

为什么我的 WKWebView 没有显示在 swiftUI 视图中?

我得到以下 swiftUI 代码:

import SwiftUI
import WebKit

struct WebView: NSViewRepresentable {
    func makeNSView(context: Context) -> WKWebView {
        let view: WKWebView = WKWebView()
        guard let url: URL = URL(string: "https://google.com") else { return view }
        let request: URLRequest = URLRequest(url: url)

        view.load(request)

        return view
    }

    func updateNSView(_ view: WKWebView, context: Context) {

    }
}

struct ContentView: View {
    var body: some View {
        WebView()
            .frame(maxWidth: .infinity, maxHeight: .infinity)
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是它只显示一个空视图。我该如何解决?

macos swift swiftui

2
推荐指数
1
解决办法
424
查看次数

在swift中将自定义类型转换为CGFloat

我有自己的小班:

class EPPercent {
    init(_: CGFloat) {

    }
}
Run Code Online (Sandbox Code Playgroud)

现在我想将此类的元素转换为CGFloat:

var percent: Any = 0
percent = EPPercent(100)
var toCGFloat = CGFloat(percent)
Run Code Online (Sandbox Code Playgroud)

这给出了一个错误:

"无法使用类型'(EPPercent)'的参数列表调用类型'CGFloat'的初始值设定项"

我该怎么做呢?

谢谢您的帮助 ;)

types class ios swift

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