我的元素有 transition: transform .5s
然后它有一个单独的类: transform: translatex(-100%)
所以我想要实现的是,最初,元素位于左侧. 在窗口上载,渲染元素时,我删除了变换类,浏览器会将元素设置为正确的位置.
但实际发生的是,当页面变得可见/渲染时,元素已经处于正确的位置.并且没有动画.
我试过setTimeout(function() {}, 0);它不起作用.如果我setTimeout 1秒,它可以工作,但有时渲染需要很长时间,我必须setTimeout 2秒.但有时它会变得很快,2秒钟需要等待很长时间.
总的来说,我觉得这不是一种可靠或正确的方法.
我怎样才能达到我想要的,正确的方法?
编辑:对不起家伙,在尝试组装演示后,我意识到我没有在窗口上卸载类.这是因为我的元素及其javascript和css都加载了AJAX.所以它可以在窗口加载之前或窗口加载之后发生.
无论如何,现在我的问题是,如果窗口需要很长时间才能加载怎么办?是否有可能在窗口加载之前渲染我的元素?或者浏览器仅在整个窗口完成加载时呈现?
因为我想尽快为元素制作动画.那么,在窗口需要很长时间才能加载(图像和连接缓慢,以及东西)的情况下,等待窗口加载是否安全?
如果我在窗口加载后用AJAX加载元素,我可以通过删除转换立即运行动画吗?或者我应该检测元素何时被渲染?
所以我想要一种简单的方法来循环节点列表,但我一直讨厌不能forEach在节点列表上使用。
所以,现在我这样做:Array.prototype.forEach.call(nodeList, callback)。
对于索引,我做:Array.prototype.indexOf.call(nodeList, node)。
对于几乎所有的事情,我都在nodeLists上使用Array.prototype。
但我想知道这些是否被视为黑客?
他们的做法正确吗?
另外,假设我实际上不需要 nodeList 中的数组,那么使用它是否有优势Array.from(nodeList).forEach(callback)?
在此 MDN 页面创建和触发事件中,它显示了使用Event或来创建事件的示例CustomEvent。它解释了CustomEvent允许自定义细节,但除此之外,它并没有说太多。
那么区别是什么呢?如果我正在创建一个通用的滚动事件,我应该使用CustomEvent? 还是仅针对javascript中不存在的事件?
另外,我注意到它MouseEvent也是 的子级Event,所以如果我要创建点击事件,我可以只使用new MouseEvent('click')?
谢谢
正如标题所说.我似乎无法看到两者之间的区别,我似乎无法看到第二个参数的切换点.
有人可以向我解释一下吗?
大家好
我在此页面上阅读过[使用IndexedDB]:https : //developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API/Using_IndexedDB
该浏览器将提示用户授予创建indexedDB的权限,并且该用户可能会拒绝该权限。请参阅下面的引用:
最可能的问题是用户决定不授予您的Web应用程序创建数据库的权限。IndexedDB的主要设计目标之一是允许存储大量数据供脱机使用。(要了解有关每个浏览器可以拥有多少存储空间的更多信息,请参阅存储空间限制。)
显然,浏览器不想让某些广告网络或恶意网站污染您的计算机,因此浏览器会在任何给定的Web应用程序首次尝试打开IndexedDB进行存储时提示用户。用户可以选择允许或拒绝访问。
但是,在我的本地主机上进行测试时,Firefox和Google Chrome均未要求我提供许可。并且数据库已成功创建(似乎)。
那么,那篇文章过时了吗?还是因为我正在本地主机上进行测试?还是我想念的其他东西?
亲切的问候
我正在使用 ajax 从网页中获取 JSON 数据。所以我已经设置responseType为json. 如果网页成功处理数据,它会返回一个有效的 JSON 字符串,这很好。
但是如果网页失败,它会返回一个包含错误信息的 JSON 字符串,(抱歉误会),它返回一个错误字符串,而不是 json 字符串,因此 JavaScript 不会将其识别为有效的 JSON 字符串。所以如果我检查response,它是空的。在这种情况下,我想查看响应字符串并检查错误消息是什么。
var xhr = new XMLHttpRequest();
xhr.responseType = "json";
xhr.open("POST", "/someEndpoint");
xhr.send();
xhr.onload = function() {
console.log(xhr.response);
}
Run Code Online (Sandbox Code Playgroud)
(小提琴重现问题。)
如果/someEndpoint返回有效的 JSON,xhr.response则为 JavaScript 对象。但是,如果它不是有效的 JSON(当端点响应错误消息时),那么我会在xhr.response. 我无法访问 invalid-JSON 错误响应,因为访问xhr.responseText给出了错误:
未捕获的 DOMException:无法从“XMLHttpRequest”读取“responseText”属性:仅当对象的“responseType”为“”或“text”(为“json”)时,才能访问该值
使用 运行请求后,我不知道如何读取原始 HTTP 响应responseType="json",因为responseText无法访问。
看到这个codepen:https ://codepen.io/anon/pen/jBjZGx
我不知道是什么原因造成的。我尝试删除垂直标题,但空白区域仍然存在。
这是代码:
section{
width: 1000px;
height: 200px;
white-space: nowrap;
background: yellow;
border: 1px solid green;
overflow-x: auto;
overflow-y: hidden;
z-index: 1;
}
a{
display: inline-flex;
min-width: calc(2 * 1cm);
width:100%;
height:100%;
overflow: hidden;
border-left: .2rem solid #282323;
border-right: .2rem solid #282323;
box-sizing: border-box;
color: currentcolor;
position: relative;
scroll-snap-align: center none;
text-decoration: none;
transition: box-shadow .5s,transform 1s;
}
a:first-child{
background: red;
justify-content: flex-end;
}
a:last-child{
background: orange;
}
.flex{
display: flex;
flex-direction: column;
}Run Code Online (Sandbox Code Playgroud)
<section>
<a> …Run Code Online (Sandbox Code Playgroud)