Как в локальном хранилище развернуть / свернуть настройки CSS
Я ищу способ использовать локальное хранилище, чтобы запомнить настройки CSS элемента развернуть / свернуть
так что для моего JavaScript выглядит следующим образом (который захватывает идентификатор и обрабатывает развернуть / свернуть)
function toggleHeight(id, link) {
var e = document.getElementById(id);
if(e.style.maxHeight == '450px') {
e.style.maxHeight = '0px';
} else {
e.style.maxHeight = '450px';
}
}
Итак, я ищу что-то, что захватывает div id på, щелкая ссылку, и сохраняет изменения при нажатии, а затем запоминание при обновлении.
3 ответа
Как и было обещано, вот мое решение:
<script type="text/javascript">
function toggleHeight(id, link) {
var e = document.getElementById(id);
var height = localStorage.getItem(id);
if(e.style.maxHeight == '450px' || e.style.maxHeight == 'inherit') {
e.style.maxHeight = '0px';
localStorage.setItem(id,"closed");
} else {
e.style.maxHeight = '450px';
localStorage.setItem(id, "open");
}
}
function load() {
var setting
var e
var link
for (x in localStorage){
setting = localStorage.getItem(x);
e = document.getElementById(x);
link = document.getElementById('forumlink'+x);
if (setting == 'open')
{
e.style.maxHeight = '450px';
}
else
{
e.style.maxHeight = '0px';
}
}
}
</script>
Это сохраняет состояние div при нажатии и устанавливает для открытия / закрытия
При загрузке страницы он захватывает сохраненное значение и устанавливает максимальную высоту css после значения открытия / закрытия.
Надеюсь, что некоторые другие могут использовать это
Может как то так
var height = localStorage.getItem(id+"-height");
localStorage.setItem(id+"-height", height);
Вот как я это решил: рабочая скрипка
//extra methods to get and set objects in staid of strings
Storage.prototype.setObject = function(key, value) {
this.setItem(key, JSON.stringify(value));
}
Storage.prototype.getObject = function(key) {
var value = this.getItem(key);
return value && JSON.parse(value);
}
//fetch the object or make a new and set constant values
var toggleState = localStorage.getObject('toggleState') || {},
MIN_SIZE= '0px',
MAX_SIZE= '450px';
//shown is an optional parameter
function toggleHeight(id, shown) {
var e = document.getElementById(id);
if(shown === true || (typeof shown === "undefined" && e.style.maxHeight == MIN_SIZE)) {
show(id);
} else {
hide(id);
}
}
function show(id){
var e = document.getElementById(id);
e.style.maxHeight = MAX_SIZE;
toggleState[id] = true;
localStorage.setObject('toggleState',toggleState);
}
function hide(id){
var e = document.getElementById(id);
e.style.maxHeight = MIN_SIZE;
toggleState[id] = false;
localStorage.setObject('toggleState',toggleState);
}
//loop over it to set initial values
for(var i in toggleState){
toggleHeight(i, toggleState[i]);
}
//do manual toggle, hide, show
toggleHeight('someID');
Вы видите, что я разделил шоу и скрытие, так что вы можете показать скрывать их по отдельности, если хотите, или вы все еще можете использовать метод переключения.