You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将图片作为选择器 实现选中跳转及选中状态图标切换

图片选择器功能实现方案

你现有代码存在两个核心问题:getval函数里的self指向全局window对象,拿不到选中的图片值;没有单独维护选中状态,无法实现选中后的图标持久切换效果。可以按下面的方式修改:


完整修改代码

JS部分

// 全局变量存储当前选中的选项,默认未选中
let selectedValue = null;

// 图片选中处理函数
function selectOption(ele, value) {
  // 先重置两张图片为未选中的默认状态
  const universalBtn = document.querySelector('.universal-button');
  const disneyBtn = document.querySelector('.disney-button');
  universalBtn.src = '/Archives/Universal Botao.png';
  disneyBtn.src = '/Archives/Disney Botao.png';

  // 更新选中值,把当前点击的图片切换为选中态图标
  selectedValue = value;
  if (value === 1) {
    ele.src = '/Archives/Disney Universal Rosa.png';
  } else {
    ele.src = '/Archives/Disney Botao Rosa.png';
  }
}

// 鼠标悬停处理:未选中时才切换hover图标
function handleHover(ele, value) {
  if (selectedValue !== value) {
    if (value === 1) {
      ele.src = '/Archives/Disney Universal Rosa.png';
    } else {
      ele.src = '/Archives/Disney Botao Rosa.png';
    }
  }
}

// 鼠标移出处理:未选中时才切回默认图标
function handleOut(ele, value) {
  if (selectedValue !== value) {
    if (value === 1) {
      ele.src = '/Archives/Universal Botao.png';
    } else {
      ele.src = '/Archives/Disney Botao.png';
    }
  }
}

// NEXT按钮跳转逻辑
function getval() {
  if (!selectedValue) {
    alert('请先选择一个园区');
    return;
  }
  if (selectedValue === 1) {
    window.location.href = "universal-result.html";
  } else if (selectedValue === 2) {
    window.location.href = "disney-result.html";
  }
}

HTML部分

<body class="choosepark-body">
  <p class="text-choosepark">Você quer ingresso para qual complexo?</p>
  <input 
    type="image" 
    src="/Archives/Universal Botao.png" 
    onmouseover="handleHover(this, 1)" 
    onmouseout="handleOut(this, 1)"
    onclick="selectOption(this, 1)"
    class="universal-button" 
    value="1"
  >
  <input 
    type="image" 
    src="/Archives/Disney Botao.png" 
    onmouseover="handleHover(this, 2)" 
    onmouseout="handleOut(this, 2)"
    onclick="selectOption(this, 2)"
    class="disney-button" 
    value="2"
  >
  <button onclick="getval()" class="next-button">NEXT</button>
</body>

实现效果说明

  • 点击任意图片时,会自动记录选中值,同时将当前图片切换为高亮(粉色)图标,另一张图片恢复默认图标
  • 鼠标悬停在未选中的图片上时,依然保留原来的hover切粉色效果,鼠标移出自动切回默认
  • 选中状态下的图片会一直保持粉色高亮,不会因为鼠标移出恢复默认
  • 点击NEXT按钮时,如果没选任何选项会弹出提示,选了就自动跳转到对应园区的结果页

内容的提问来源于stack exchange,提问作者Fadrick

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 04:24:17