点击时如何更改引导轮播上的图像?

Posted

技术标签:

【中文标题】点击时如何更改引导轮播上的图像?【英文标题】:How can you change an image on a bootstrap carousel on click? 【发布时间】:2021-08-01 21:08:16 【问题描述】:

我目前有一个引导轮播,其中包含 3 张图片,每张图片都有我想要的标题,因此当您单击第一个轮播图片上的标题时,图片将变为 gif,但无法使用基本的 javascript

我想让plymouthImg变成permissionionImg,目前permissionionImg显示设置为none!important

<div id="carouselExampleCaptions" class="carousel slide" data-bs-ride="carousel">
      <div class="carousel-inner">
        <div class="carousel-item active">
          <img id="plymouthImg" src="imgs/plymouth1.jpg" class="d-block w-100" >
          <img id="permitionImg" src="imgs/plymouthbaw.gif" class="d-block w-100" >
          <div class="carousel-caption d-md-block">
            <h3 onclick="changeText()" class="plymouth">Welcome to the University of Plymouth</h3>
            <h3 class="permition">Welcome to Permition</h3>
          </div>
        </div>

这是h3上的JavaScript函数

function changeText() 
    const plymouthText = document.querySelector('.plymouth');
    const permitionText = document.querySelector('.permition');
    const plymouthImg = document.getElementById('plymouthImg');
    const permitionImg = document.getElementById('permitionImg');

    plymouthText.style.display = "none";
    permitionText.style.display = "block";
    plymouthImg.style.display = "none!important";
    permitionImg.style.display = "block!important";


【问题讨论】:

【参考方案1】:

我自己想出来了,所以我会把我的解决方案留在这里,以防其他人遇到这个问题。通过将图像包装在它们自己的单独 div 中并将显示更改应用到 div 而不是图像,它绕过了任何覆盖我编写的 JavaScript 的样式 html

<div id="carouselExampleCaptions" class="carousel slide" data-bs-ride="carousel">
      <div class="carousel-inner">
        <div class="carousel-item active">
          <div id="plymouthImg">
            <img src="imgs/plymouth1.jpg" class="d-block w-100" >
          </div>
          <div id="permitionImg">
            <img src="imgs/plymouthbaw.gif" class="d-block w-100" >
          </div>
          <div class="carousel-caption d-md-block">
            <h3 onclick="changeText()" class="plymouth">Welcome to the University of Plymouth</h3>
            <h3 class="permition">Welcome to Permition</h3>
          </div>

JavaScript

function changeText() 
    const plymouthText = document.querySelector('.plymouth');
    const permitionText = document.querySelector('.permition');
    const plymouthImg = document.getElementById('plymouthImg');
    const permitionImg = document.getElementById('permitionImg');

    plymouthText.style.display = "none";
    permitionText.style.display = "block";
    plymouthImg.style.display = "none";
    permitionImg.style.display = "block";

【讨论】:

以上是关于点击时如何更改引导轮播上的图像?的主要内容,如果未能解决你的问题,请参考以下文章

在引导轮播中使用图像而不是幻灯片背景

如何在引导轮播中对齐左侧图像

如何裁剪 twitter 引导轮播图像

如何调整引导轮播以调整图像大小并使图像可链接?

我希望我的引导轮播在按下键盘左右箭头时滑动

引导轮播中的响应式图像