我在网站上创建了一个导航栏,当我在Chrome中尝试使用导航栏时,它无法正常工作。 在Microsoft Edge中,导航栏运行良好。 但是在Chrome浏览器中,当我打开导航栏并将鼠标移至导航栏时,模糊动画立即开始播放,非常容易出错。
在Edge中,仅当将光标移至文本时,打开动画开始时导航栏才能正常工作。
我完全不知道我做错了什么。有专家可以检查吗?
在Codepen .io网站上,您可以看到错误,并且区别明显 打开导航栏时,只需移动鼠标光标 在两个文本之间。
代码如下:
$('.toggle').on('click', function() {
$('.menu').toggleClass('active');
});
$(window).on("load", function() {
$('.menu').toggleClass('active');
});
body {
font-family: 'Roboto Condensed', sans-serif;
font-size: 16px;
overflow: auto;
text-transform: uppercase;
font-weight: bold;
}
.menu {
height: 70px;
width: 70px;
left: 70px;
top: 20px;
text-align: center;
position: absolute;
background: #0e0f0f;
overflow: hidden;
transition: all 0.2s ease;
z-index: 999;
}
.menu.active {
width: 85%;
transition: width 0.3s;
-webkit-transition: width .3s;
-moz-transition: width 0.3s;
}
.menu.active .menuContent * {
opacity: 1;
}
.menu.active span i:nth-child(1) {
transform: rotate(-45deg) translate(-50%, -50%);
top: 50%;
}
.menu.active span i:nth-child(2) {
transform: translateX(-100px);
opacity: 0;
}
.menu.active span i:nth-child(3) {
transform: rotate(45deg) translate(-50%, -50%);
top: 50%;
}
.menu span {
width: 70px;
height: 70px;
position: absolute;
left: 0px;
cursor: pointer;
background: #0e0f0f;
opacity: 0.3;
z-index: 1;
}
.menu span i {
position: absolute;
transform-origin: 50% 50%;
width: 45%;
height: 2px;
left: 0;
right: 0;
margin: auto;
background-color: #ccc;
transition: transform 0.3s ease, opacity 0.1s ease 0.1s;
}
.menu span i:nth-child(1) {
top: 40%;
}
.menu span i:nth-child(2) {
top: 50%;
}
.menu span i:nth-child(3) {
top: 60%;
}
.menu .menuContent {
position: absolute;
width: 100%;
height: 100%;
line-height: 40px;
right: 0px;
text-align: center;
}
.menu .menuContent * {
opacity: 0;
}
.menu .menuContent ul li {
display: inline-block;
margin-left: 140px;
margin-right: 50px;
color: #2d3235;
transition: opacity 0.3s ease 0.3s;
cursor: pointer;
position: relative;
}
.menu .menuContent ul li:hover:before {
opacity: 0.8;
top: 13px;
left: 20px;
}
.menu .menuContent ul li:hover:after {
opacity: 0.8;
bottom: 13px;
left: -20px;
}
body {
margin: 0;
padding: 0;
background-color: #112b38;
}
ul {
display: inline;
margin-bottom: 500px;
}
ul li {
margin: 12px 100px;
transition: 0.5s;
}
ul li a {
display: block;
position: relative;
text-decoration: none;
padding: 0px;
font-size: 18px;
font-family: sans-serif;
color: #fff;
text-transform: uppercase;
transition: 0.5s;
}
ul:hover li a {
transform: scale(1.5);
opacity: .2;
filter: blur(5px);
}
ul li a:hover {
transform: scale(2);
opacity: 1;
filter: blur(0);
}
ul li a:before {
content: '';
position: absolute;
top: 0px;
left: 0px;
width: 100%;
height: 100%;
transition: 0.5s;
background: #43bc0b;
transform-origin: right;
transform: scaleX(0);
z-index: -1;
}
ul li a:hover:before {
transition: 0.5s;
transform-origin: left;
transform: scaleX(1);
}
a,
a:hover,
a:focus {
text-decoration: none;
color: white;
}
body {
background-color: #112b38;
}
<!DOCTYPE html>
<html lang="hu">
<head>
<link rel="stylesheet" href="css/animate.css">
<link rel="stylesheet" href="css/bootstrap.min.css">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
<meta charset="UTF-8">
<title>PC Szerviz Sinko</title>
</head>
<body>
<div class='menu'>
<span class='toggle'>
<i></i>
<i></i>
<i></i>
</span>
<div class='menuContent'>
<ul>
<li><a href="Legujabb.html">Home</a></li>
<li><a href="szolgaltatasok.html">Services</a></li>
<li><a href="rolunk.html">About us</a></li>
<li><a href="elerhetoseg.html">Contact Us</a></li>
<li><a href="#">Portfolio</a></li>
</ul>
</div>
</div>
<script src="https://code.jquery.com/jquery-3.3.1.js"></script>
<script src="js/bootstrap.min.js"></script>
<script src="js/jquery.min.js"></script>
答案 0 :(得分:1)
据我正确理解,您只希望当鼠标光标位于菜单项上而不是导航栏的其余部分时才模糊。 尝试更换
ul:hover li a
{
transform: scale(1.5);
opacity: .2;
filter:blur(5px);
}
与
ul:before li a
{
transform: scale(1.5);
opacity: .2;
filter:blur(5px);
}
因此请在使用之前而不是将鼠标悬停。