我知道这个问题已经被问过十几次了,但这些问题的解决方案都不适合我。
我希望 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。
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:固定在身体上的设置位置。对我不起作用,因为当用户滚动时,主体不会,但滚动仍然阻止我的两个内部元素在溢出反弹动画时滚动。
body {
position: fixed;
}
Run Code Online (Sandbox Code Playgroud)
只将正文放在页面滚动上。滚动(溢出滚动)通过固定体发生......
尝试 3:防止默认触摸移动。没有用(是一个较旧的解决方案......)。
document.addEventListener("touchmove", function (e) {
e.preventDefault();
}, { passive: false });
Run Code Online (Sandbox Code Playgroud)
我什么都不做。不是在 safari …
我有一些 CSS,我想要一个默认颜色,然后用一个变量覆盖它。当 CSS 变量不存在时,我想使用后备颜色。
:root {
/*--tintColor: red;*/
}
.text {
color: blue;
color: var(--tintColor);
}
Run Code Online (Sandbox Code Playgroud)
当变量没有像注释掉那样设置时,颜色变为黑色。在这种情况下,我希望在未定义变量时颜色回到蓝色。这可能吗?
我有一个 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)
我怎样才能做到这一点?
我知道如何跟踪鼠标在画布区域上移动时的移动。
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
在 macOS 上使用 Safari 时,按钮和选择等表单控件使用系统的强调色。
通过转到“系统偏好设置”>“常规”更改强调色时,表单元素的颜色会相应更改。
如何在我自己的 CSS 样式中使用这种强调色?
CSS 解决方案是首选,但如果不能仅使用 CSS,JavaScript 解决方案也可以工作。
我想有一个变量,它可以有多种类型(只有我定义的那些),如:
var example: String, Int = 0
example = "hi"
Run Code Online (Sandbox Code Playgroud)
此变量应该只能保存Int和String类型的值.
这可能吗?
谢谢你的帮助 ;)
我希望能够快速测试零是正数还是负数。
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)
上面的代码不能像我需要的那样工作,有人可以帮助我吗?
谢谢 ;)
我在详细信息元素中有一个摘要:
<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 中删除此箭头?
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)。
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,但它已被弃用,因此这不是一个好的解决方案。
第二个答案建议构建一个自定义撤消重做堆栈来手动处理所有这些事件。所以我选择了第二种解决方案。
我使用简单的数组来存储版本来构建自定义撤消重做处理程序。为此,我使用该 …
在我的一条路线中,我想从不同的站点获取 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?
我得到以下 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)
问题是它只显示一个空视图。我该如何解决?
我有自己的小班:
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'的初始值设定项"
我该怎么做呢?
谢谢您的帮助 ;)