javascript - 如何将 CSS 效果转换为 Javascript/jQuery

标签 javascript jquery css

我想将 CSS 效果 转换为 javascript 代码。

我想在页面加载时自动离开一个部分。也就是说,一旦电路板加载了一个 div 的相同效果。你可以去 Hover Me 看看 CSS 效果。

如果你不能使用这个库,我想看看代码中发生了什么

现在我可以帮你添加我的 JavaScript/jQuery 代码吗?

谢谢

html{
    background: #080808;
}

div {
    background: none;
    border: 0;
    box-sizing: border-box;
    margin: 1em;
    padding: 1em 2em;
    color: #fff;
    font-size: inherit;
    font-weight: 700;
    position: relative;
    vertical-align: middle;
}
div::before, div::after {
    box-sizing: inherit;
    content: '';
    position: absolute;
    width: 100%;
    height: 100%;
}

.draw {
    transition: color 0.25s;
}
.draw::before, .draw::after {
    border: 2px solid transparent;
    width: 0;
    height: 0;
}
.draw::before {
    top: 0;
    left: 0;
}
.draw::after {
    bottom: 0;
    right: 0;
}
.draw:hover {
    color: #60daaa;
}
.draw:hover::before, .draw:hover::after {
    width: 100%;
    height: 100%;
}
.draw:hover::before {
    border-top-color: #60daaa;
    border-right-color: #60daaa;
    transition: width 0.25s ease-out, height 0.25s ease-out 0.25s;
}
.draw:hover::after {
    border-bottom-color: #60daaa;
    border-left-color: #60daaa;
}

.meet:hover {
    color: #fbca67;
}
.meet::after {
    top: 0;
    left: 0;
}
.meet:hover::before {
    border-top-color: #fbca67;
    border-right-color: #fbca67;
}
.meet:hover::after {
    border-bottom-color: #fbca67;
    border-left-color: #fbca67;
    transition: height 0.25s ease-out, width 0.25s ease-out 0.25s;
}
<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <link rel="stylesheet" href="css/uikit-rtl.min.css">
    <link rel="stylesheet" href="style.css">
    <title>Document</title>
    <script src="js/jquery.js"></script>
</head>
<body id="top">
    <div onload="loading()" id="iki" class="draw meet">Hover Me</div>
    <script src="js/uikit.min.js"></script>
    <script src="js/uikit-icons.min.js"></script>
</body>
</html>

最佳答案

这里有一个解决方案,

1) 将所有 :hover 更改为 .hover

2) 然后使用JavaScript

添加这个类
document.addEventListener("DOMContentLoaded", function(event) { 
  document.querySelectorAll('.draw')[0].classList.add('hover');
});

找到类似答案How to execute CSS3 animation onLoad instead of hover?

关于javascript - 如何将 CSS 效果转换为 Javascript/jQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51491550/

相关文章:

javascript - ES6 promise /在多个 promise 完成后调用函数(不能使用 Promises.all)

javascript - 如果文本长度增加jquery,则 overflow hidden

html - 为什么页面宽度会影响 Firefox 中的 "margin-top:50%"?

javascript - JQuery点击功能没有触发

css - 如何去除sphinx文档中对内部超链接的强调

javascript - 在 Retina 显示屏上将 HTML 渲染到 Canvas

javascript - 如何使用 jquery 将 div 动画化为不同的方向并淡出

javascript - 如何防止表单操作 URL 的 XSS?

javascript - 如何获取 Json 数组中的值并单独使用它们

javascript - 具有相同属性值的 sibling