gpt4 book ai didi

javascript - 有没有办法可以简化 jQuery 代码

转载 作者:行者123 更新时间:2023-11-28 14:10:07 24 4
gpt4 key购买 nike

各位,我创建了一组 4 个按钮(在列表中),当用户将鼠标悬停在按钮上时,它们会显示其下方每个按钮的说明。我使用 jQuery 来切换段落元素的类以使其正常工作。我所做的工作非常好,但我只是想知道是否有一种更干净、更简单的方法可以实现 jQuery 代码,或者它是完全正常的方式吗?我非常感谢您对此的意见。提前致谢。

$('#web').hover(function(){
$('#web-blurp').toggleClass('show-blurp');
});

$('#design').hover(function(){
$('#design-blurp').toggleClass('show-blurp');
});

$('#film').hover(function(){
$('#film-blurp').toggleClass('show-blurp');
});

$('#marketing').hover(function(){
$('#marketing-blurp').toggleClass('show-blurp');
});
body{
background-color: black;
}

.hero-container {
position: absolute;
top: 6%;
left: 0;
right: 0;
margin: 18% auto;
}

.hero-content {
text-align: center;
margin: 0 auto;
}

.hero-content li {
display: inline-block;
}

.hero-content a {
display: block;
width: 200px;
background-color: #fff;
margin-right: 20px;
text-align: center;
border-radius: 5px;
}

.hero-content a {
text-decoration: none;
}

.hero-content span {
display: inline-block;
margin: 40% 0;
font-family: Sans-Serif;
text-transform: uppercase;
font-size: 1.2em;
font-weight: 400;
color: blue;

}

.feat-blurp {
width: 810px;
margin: 0 auto;
color: #fff;
font-family: Sans-Serif;
font-weight: lighter;
font-size: 1.3em;
}

.hide-blurp {
display: none;
opacity: 0;
transition: opacity .5s linear;
}

.show-blurp {
display: block;
opacity: 1;
transition: opacity .5s linear;
animation-name: blurp-up, blurp-fade;
animation-duration: 1s;
animation-fill-mode: both;
}

@keyframes blurp-up {
from{ transform: translateY(50px)}
to{ transform: translateY(0)}
}
@keyframes blurp-fade {
from { opacity: 0; }
to { opacity: 1; }
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div class="hero-container">
<div class="btn-list">
<ul class="hero-content">
<li><a href="#" class="feat-btn box-one" id="web">
<span>button 1</span>
</a></li>
<li><a href="#" class="feat-btn box-two" id="design">
<span>button 2</span>
</a></li>
<li><a href="#" class="feat-btn box-three" id="film">
<span>button 3</span>
</a></li>
<li><a href="#" class="feat-btn box-four" id="marketing">
<span>button 4</span>
</a></li>
</ul>
</div>
<div class="btn-blurps">
<div class="feat-blurp">
<p id="web-blurp" class="hide-blurp">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris</p>
<p id="design-blurp" class="hide-blurp">nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat </p>
<p id="film-blurp" class="hide-blurp">reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
<p id="marketing-blurp" class="hide-blurp">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris</p>
</div>
</div>
</div>

最佳答案

我的建议是在段落中使用 -data 属性来显示正确的段落,而不是为每个按钮编写一个处理程序。通过这种方式,您也不需要为每个按钮提供单独的 ID。

$('.feat-btn').hover(function(){
var id = $(this).data('id');
$('#' + id).toggleClass('show-blurp');
});
body{
background-color: black;
}

.hero-container {
position: absolute;
top: 6%;
left: 0;
right: 0;
margin: 18% auto;
}

.hero-content {
text-align: center;
margin: 0 auto;
}

.hero-content li {
display: inline-block;
}

.hero-content a {
display: block;
width: 200px;
background-color: #fff;
margin-right: 20px;
text-align: center;
border-radius: 5px;
}

.hero-content a {
text-decoration: none;
}

.hero-content span {
display: inline-block;
margin: 40% 0;
font-family: Sans-Serif;
text-transform: uppercase;
font-size: 1.2em;
font-weight: 400;
color: blue;

}

.feat-blurp {
width: 810px;
margin: 0 auto;
color: #fff;
font-family: Sans-Serif;
font-weight: lighter;
font-size: 1.3em;
}

.hide-blurp {
display: none;
opacity: 0;
transition: opacity .5s linear;
}

.show-blurp {
display: block;
opacity: 1;
transition: opacity .5s linear;
animation-name: blurp-up, blurp-fade;
animation-duration: 1s;
animation-fill-mode: both;
}

@keyframes blurp-up {
from{ transform: translateY(50px)}
to{ transform: translateY(0)}
}
@keyframes blurp-fade {
from { opacity: 0; }
to { opacity: 1; }
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="hero-container">
<div class="btn-list">
<ul class="hero-content">
<li><a href="#" class="feat-btn box-one" data-id="web">
<span>button 1</span>
</a></li>
<li><a href="#" class="feat-btn box-two" data-id="design">
<span>button 2</span>
</a></li>
<li><a href="#" class="feat-btn box-three" data-id="film">
<span>button 3</span>
</a></li>
<li><a href="#" class="feat-btn box-four" data-id="marketing">
<span>button 4</span>
</a></li>
</ul>
</div>
<div class="btn-blurps">
<div class="feat-blurp">
<p id="web" class="hide-blurp">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris</p>
<p id="design" class="hide-blurp">nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat </p>
<p id="film" class="hide-blurp">reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
<p id="marketing" class="hide-blurp">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris</p>
</div>
</div>
</div>

关于javascript - 有没有办法可以简化 jQuery 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59894738/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com