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

如何使用jQuery maphilight实现点击切换高亮色的营地预订交互地图功能

交互式露营地预订地图选中效果实现方案

基于你使用的maphilight库,按照以下步骤操作即可实现点击切换选中高亮的效果:

  • 第一步:给所有可用(绿色未预订)的<area>标签添加两个自定义属性,方便后续逻辑判断
    示例标签结构:
    <area shape="poly" coords="xxx,xxx,xxx" href="#" data-available="true" data-selected="false" alt="营地A">
    
    其中data-available="true"标记为可预订地块,data-selected="false"为默认未选中状态。
  • 第二步:在页面中添加如下jQuery代码,放在</body>标签之前即可
    $(function() {
      // 初始化maphilight基础配置,可根据你的原有配置调整参数
      $('img[usemap]').maphilight({
        fill: true,
        fillOpacity: 0.6,
        stroke: true,
        strokeColor: '000000',
        strokeOpacity: 0.8
      });
    
      // 给所有可预订地块绑定点击事件
      $('area[data-available="true"]').on('click', function(e) {
        e.preventDefault(); // 阻止点击area默认跳转行为
        const $area = $(this);
        const isSelected = $area.data('selected');
        
        // 切换选中状态
        $area.data('selected', !isSelected);
        
        // 根据状态设置高亮颜色
        if (!isSelected) {
          // 选中状态:黄色高亮
          $area.data('maphilight', {
            fillColor: 'FFFF00',
            alwaysOn: true
          });
        } else {
          // 取消选中:恢复绿色可用状态
          $area.data('maphilight', {
            fillColor: '00FF00',
            alwaysOn: true
          });
        }
        // 触发maphilight更新渲染
        $area.trigger('alwaysOn.maphilight');
      });
    });
    
  • 第三步:参数调整说明
    如果需要修改选中颜色、透明度等效果,直接调整对应fillColor(十六进制颜色码,不带#前缀)、fillOpacity(透明度,取值范围0-1)的参数值即可。
    已预订的红色地块不需要添加data-available="true"属性,不会触发上述点击逻辑,可避免用户误选。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 06:45:03