localstorage如何存储样式

比如我点击后样式改变,如何将改变的样式存到localstorage中去,并存下点击的次数?

<!doctype html>
<html lang="en">

    <head>
        <meta charset="UTF-8" />
        <title>Document</title>
        <script src="http://libs.baidu.com/jquery/1.7.0/jquery.min.js" type="text/javascript" charset="utf-8"></script>
        <style>
            .box {
                width: 100px;
                height: 100px;
                background: #333;
                color: #fff;
                margin: 15px auto;
            }
        </style>
    </head>

    <body>
        <div class="box">1</div>
        <div class="box">2</div>
        <div class="box">3</div>
        <div class="box">4</div>
        <div class="box">5</div>
        <script type="text/javascript">            
            $(".box").click(function() {
                $(this).css('background', 'red');
            });
        </script>
    </body>

</html>
阅读 5.4k
4 个回答
window.localStorage.setItem('style', JSON.stringify({background: 'red', count: 1}))

localstorage使用方法? 不在这里多说了
直接看文档: https://developer.mozilla.org...

点击的时候直接:
localStorage.setItem("bgColor", "xxx");
下次先document.ready的时候 读取 localStorage.getItem("bgColor")是否有值, 再去改变页面样式.

可以把一个样式 json 字符串存进去

$('box').on('click', ev => {
  let css = localStorage.getItem('style') // 读取存储
  css = css ? JSON.parse(css) : { background: 'red', click: 0 }
  css.click++ // 记录点击次数
  $(ev.currentTarget).css(css) // 设置样式
  localStorage.setItem('style', JSON.stringify(css)) // 覆盖存储
})

localStorage的存储方式是key-value,value一定是字符串。所以你把要存储的东西转成字符串就ok了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题