javascript - 在页面重新加载中保留 div 隐藏/显示
问题描述
我有一个隐藏和显示 html div 的按钮
<button id="hideshow" title="Click to Show/Hide Assessment"></button>
这是脚本
$(document).ready(function(){ /// hide and show button
$('#hideshow').click(function() {
$('#containerDiv1').toggle("slideLeft");
$("i", this).toggleClass("fas fa-lg fa-chevron-up fas fa-lg fa-chevron-down");
});
});
现在我要实现的是当用户选择隐藏div并单击按钮时,当他重新加载页面时它应该仍然隐藏。因为默认情况下,当我的网页打开时,我的 div 会显示。
有什么帮助吗??
解决方案
使用sessionStorage
,localStorage
或 acookie
来保持状态,然后在页面加载时检索和恢复它。这确实需要一些工作,但 UI 的闪烁是免费的;)
这说明了原理:
$(document).ready(function(){ /// hide and show button
const containerState = localStorage.getItem('containerDiv1');
switch (containerState) {
case 'visible':
// your code for when the user last saw it "visible"
break;
case 'hidden':
// your code for when the user last saw it "hidden"
break;
default:
// any action that should take place when containerState is empty (not set, never clicked)
}
$('#hideshow').click(function() {
$('#containerDiv1').toggle("slideLeft");
$("i", this).toggleClass("fas fa-lg fa-chevron-up fas fa-lg fa-chevron-down");
// on every click, store the current visibility state in localStorage
localStorage.setItem('containerDiv1', $('#containerDiv1:visible').length ? 'visible' : 'hidden');
});
});
推荐阅读
- sql - 插入表格并从最后插入的行中选择 id
- sql-server-2008-r2 - 由于类型冲突,反透视数据失败
- c++ - 增加二叉树的正确方法
- flutter - 使用带有 easy_localization 的 LocaleKeys 时如何进行单元测试?
- amazon-web-services - 使用 UpdateItemEnhancedRequest DynamoDb java sdk2 更新特定属性
- python - 我想根据列对工作表中 excel 文件中存在的数据进行排序。(excel文件有多个工作表)
- openvpn - OpenVPN 路由已成功添加,但 http 服务器上的连接超时
- r - 将字符串变为数字,忽略因子的字母顺序
- ios - 带有 Testflight 应用程序版本号的网站
- c# - 如何从 Dictionary 对象创建一个 json 结构?