【发布时间】:2021-10-31 05:28:10
【问题描述】:
我目前正在将一个旧但仍然很漂亮的网站迁移到 Gatsby PWA。
旧网站是纯粹用 HTML 和 jQuery 构建的,并且有许多带有 jQuery 函数的漂亮动画。
技术上,我通过自定义html.js成功导入了一些外部脚本,包括jQuery(v3.3.7)和Bootstrap(3.3.1)。
我还更新了一些属性名称,例如 class 到 className、style - 字符串到对象等
我认为有点困难的是在旧的 HTML 文件中使用带有 onmouseover 之类的事件的 jQuery 函数。
例如,
...
<div className="section">
<div className="block_information" id="block_information">
<div className="row first_row">
<div className="col-md-2 col-xs-12 icon_block_information top">
<div className="svg_text" onmouseover="runSmile()">
~~~~~~~~~~~~~~~~~~~~~~~~
<svg viewBox="0 0 80.25 80.25">
...
<g id="icon_smile_1">
<path
id="icon_smile"
className="cls-2"
...
而runSmile 函数看起来像,
function runSmile() {
window.ks = (function () {
function z(a) {
return "undefined" !== typeof a;
}
function v(a, b) {
return a && 0 == a.indexOf(b);
}
function N(a) {
if (!isFinite(a)) throw "non-finite value";
}
function O(a) {
if (14 >= a) return 16;
(a = X[a]) || (a = 0);
return a;
}
function D(a) {
return 0 <= a ? Math.pow(a, 1 / 3) : -Math.pow(-a, 1 / 3);
}
...
document.ks = ks;
(function (ks) {
ks.animate(
"#icon_smile",
[{ p: 6, t: [0, 1000], v: [0, 360], e: [[0], [0]] }],
{
autoplay:
document.location.search
.substr(1)
.split("&")
.indexOf("autoplay=true") < 0,
},
);
})(ks);
}
在这种情况下,我可以使用 jQuery 函数,只进行少量更新,并且不将事件属性(如 onmouseover 更新为 onFocus)吗?
如果我必须更新 jQuery 函数和事件属性,我该怎么办?
提前致谢。
【问题讨论】:
标签: html jquery reactjs gatsby