javascript - JavaScript - 使用 data-pic 添加 img
问题描述
我正在尝试在span
with data-pic中添加图像,但现在我想尝试图片轮播,如何使用 JavaScript 索引 data-pic 来实现效果?
我遵循以下说明:
$(".product-colors span").click(function () {
$(".product-colors span").removeClass("active");
$(this).addClass("active");
$("body").css("background", $(this).attr("data-color"));
$(".product-price").css("color", $(this).attr("data-color"));
$(".product-button").css("color", $(this).attr("data-color"));
$(".product-pic").css("background-image", $(this).attr("data-pic"));
});
.product-colors span {
width: 14px;
height: 14px;
margin: 0 10px;
border-radius: 50%;
cursor: pointer;
position: relative;
}
.blue {
background: #7ed6df;
}
.green {
background: #badc58;
}
.yellow {
background: #f9ca24;
}
.rose {
background: #ff7979;
}
.product-colors .active:after {
content: "";
width: 22px;
height: 22px;
border: 2px solid #8888;
position: absolute;
border-radius: 50%;
box-sizing: border-box;
left: -4px;
top: -4px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js" charset="utf-8"></script>
<body>
<div class="product-card">
<h1>A new model of free group travel</h1>
<p>Travel destination</p>
<div class="product-pic"></div>
<div class="product-colors" id="Banner">
<span class="blue active" data-color="#7ed6df" data-pic="url(1.jpg)"></span>
<span class="green" data-color="#badc58" data-pic="url(2.jpg)"></span>
<span class="yellow" data-color="#f9ca24" data-pic="url(3.jpg)"></span>
<span class="rose" data-color="#ff7979" data-pic="url(4.jpg)"></span>
</div>
<div class="product-info">
<div class="product-price">$90</div>
<a href="Paying.html" class="product-button">Add to Cart</a>
</div>
</div>
</body>
我正在学习 JavaScript 的基础知识,我不知道如何实现此功能。
希望你能帮我
谢谢你的帮助 :)
解决方案
你不能同时使用背景和背景图像,一个会覆盖另一个,顺便问一下,你想创建什么?旋转木马还是什么?好吧,我想这就是你想要做的,为了实现这一点,你需要声明$('body')
两次,将背景颜色添加到第一个,然后将背景图像添加到第二个或(反之亦然),如下是最终代码
var span = $('.product-colors span');
span.on('click', function() {
span.removeClass('active');
$(this).addClass('active');
$('body').css("background-color", $(this).attr('data-color'));
$('body').css('background-image', $(this).attr('data-pic'));
});
然后去css,我background-blend
给它添加了属性,为了把background-color
and混合background-image
在一起,我也设置span
了display: inline-block
查看此 codepen 链接以查看此处所做的所有更改
推荐阅读
- android - 如何将多个 EditText 值从 RecyclerView 适配器传递到主 Activity?
- vba - 打开上次修改的文件并复制到上次修改的工作簿中
- java - 考虑在你的配置中定义一个 'org.springframework.security.oauth2.client.registration.ReactiveClientRegistrationRepository' 类型的 bean
- qt - 如何检查应用程序是否已最小化
- c# - 从xml字符串中提取值
- javascript - 从角度观察结果检查结果后打破循环
- laravel - Laravel 悲观锁锁定整个表而不是单行
- git - 在从站/容器上运行 PreBuildMerge 时,未正确传递 user.name 和 user.email
- css-grid - 特定分数对齐中心
- javascript - 用一个包裹的新元素替换一个元素