You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

实现点击图片按钮隐藏div并通过LocalStorage实现页面刷新后不显示

Hey,这事儿好办!我给你写一套完整的实现代码,既能点击后隐藏这个WhatsApp横幅,还能通过LocalStorage记住状态,刷新页面后也不会再显示。

完整实现方案

第一步:调整HTML结构

先给你的div加个唯一ID,方便后续在JS里精准操作它:

<div id="whatsappBanner" class="whatsapp">
  <a href="https://chat.whatsapp.com/........." target="_blank">
    <img src="/img/whatsapp_group.png" alt="Whatsapp Join Button">
    <div class="whatsappbut">To Find Out MORE!</div>
  </a>
</div>

第二步:添加核心JavaScript逻辑

这段JS会完成两个关键操作:

  1. 页面加载时自动检查LocalStorage,若已标记横幅为隐藏,直接让它消失
  2. 给横幅绑定点击事件,点击后立即隐藏横幅并把状态存入LocalStorage
document.addEventListener('DOMContentLoaded', function() {
  const whatsappBanner = document.getElementById('whatsappBanner');
  
  // 页面刚加载时先检查存储状态,已隐藏就直接隐藏元素
  if(localStorage.getItem('hideWhatsappBanner') === 'true') {
    whatsappBanner.style.display = 'none';
    return;
  }
  
  // 给横幅里的链接绑定点击事件
  const bannerLink = whatsappBanner.querySelector('a');
  bannerLink.addEventListener('click', function() {
    // 隐藏横幅
    whatsappBanner.style.display = 'none';
    // 把隐藏状态存入LocalStorage,永久记住这个选择
    localStorage.setItem('hideWhatsappBanner', 'true');
    // 这里不阻止默认跳转,毕竟用户本来就要打开WhatsApp链接
  });
});

可选:添加平滑隐藏动画(优化用户体验)

如果想让隐藏过程更丝滑,不用生硬的瞬间消失,可以加个CSS过渡效果:

.whatsapp {
  transition: all 0.3s ease;
  opacity: 1;
  transform: translateY(0);
}
.whatsapp.hidden {
  opacity: 0;
  transform: translateY(-10px);
  pointer-events: none;
  height: 0;
  overflow: hidden;
}

然后把JS里的whatsappBanner.style.display = 'none'替换成下面的代码,让动画生效:

whatsappBanner.classList.add('hidden');
// 动画结束后再彻底隐藏元素(可选)
whatsappBanner.addEventListener('transitionend', function() {
  whatsappBanner.style.display = 'none';
}, { once: true });

这样用户点击后会看到横幅平滑消失,体验会好很多~

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

火山引擎 最新活动