cookie 保存和清除用户样式

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Title</title>
  6. <style>
  7. .container {
  8. border: 1px solid #ccc;
  9. width: 300px;
  10. margin: 20px auto;
  11. text-align: center;
  12. }
  13. .container > h1 {
  14. margin: 100px auto;
  15. }
  16. body > form {
  17. width: 350px;
  18. margin: 20px auto;
  19. display: flex;
  20. justify-content: space-between;
  21. align-items: center;
  22. }
  23. </style>
  24. </head>
  25. <body>
  26. <form action="">
  27. <div>
  28. <div>
  29. <label for="bg">背景 rgb</label>
  30. <input type="text" name="bg1" id="bg1" size="3" value="255">
  31. <input type="text" name="bg2" id="bg2" size="3" value="255">
  32. <input type="text" name="bg3" id="bg3" size="3" value="255">
  33. </div>
  34. <div>
  35. <label for="color">字体 rgb</label>
  36. <input type="text" name="color1" id="color1" size="3" value="0">
  37. <input type="text" name="color2" id="color2" size="3" value="0">
  38. <input type="text" name="color3" id="color3" size="3" value="0">
  39. </div>
  40. </div>
  41. <div>
  42. <input type="button" value="确定" id="ensure">
  43. <input type="button" value="清理" id="clear">
  44. </div>
  45. </form>
  46. <div class="container">
  47. <h1 class="text">Hello world!</h1>
  48. </div>
  49. <script>
  50. window.onload = initialize;
  51. function initialize() {
  52. var form = document.forms[0],
  53. bg1 = getCookie('bg1') || 255,
  54. bg2 = getCookie('bg2') || 255,
  55. bg3 = getCookie('bg3') || 255,
  56. color1 = getCookie('color1') || 0,
  57. color2 = getCookie('color2') || 0,
  58. color3 = getCookie('color3') || 0;
  59. // 表单赋值
  60. form.bg1.value = bg1;
  61. form.bg2.value = bg2;
  62. form.bg3.value = bg3;
  63. form.color1.value = color1;
  64. form.color2.value = color2;
  65. form.color3.value = color3;
  66. // 修改背景和字体颜色
  67. document.getElementsByClassName('container')[0].style.backgroundColor = `rgb(${bg1}, ${bg2}, ${bg3})`;
  68. document.getElementsByClassName('text')[0].style.color = `rgb(${color1}, ${color2}, ${color3})`;
  69. // 绑定点击改变和删除背景和字体颜色事件
  70. document.getElementById('ensure').onclick = changeAttr;
  71. document.getElementById('clear').onclick = removeAttr;
  72. }
  73. function changeAttr() {
  74. var form = document.forms[0],
  75. bg1 = form.bg1.value,
  76. bg2 = form.bg2.value,
  77. bg3 = form.bg3.value,
  78. color1 = form.color1.value,
  79. color2 = form.color2.value,
  80. color3 = form.color3.value;
  81. // cookie 保存背景
  82. setCookie('bg1', bg1);
  83. setCookie('bg2', bg2);
  84. setCookie('bg3', bg3);
  85. // cookie 保存字体颜色
  86. setCookie('color1', color1);
  87. setCookie('color2', color2);
  88. setCookie('color3', color3);
  89. // 修改背景和字体颜色
  90. document.getElementsByClassName('container')[0].style.backgroundColor = `rgb(${bg1}, ${bg2}, ${bg3})`;
  91. document.getElementsByClassName('text')[0].style.color = `rgb(${color1}, ${color2}, ${color3})`;
  92. }
  93. function removeAttr() {
  94. // cookie 删除背景
  95. delCookie('bg1');
  96. delCookie('bg2');
  97. delCookie('bg3');
  98. // cookie 删除字体颜色
  99. delCookie('color1');
  100. delCookie('color2');
  101. delCookie('color3');
  102. // 页面重载
  103. location.reload();
  104. }
  105. function getCookie(name) {
  106. var cookies = document.cookie ? document.cookie.split(';') : [];
  107. for (var i = 0; i < cookies.length; i++) {
  108. if (0 === cookies[i].trim().indexOf(name)) {
  109. return cookies[i].trim().split('=')[1].trimLeft();
  110. }
  111. }
  112. return '';
  113. }
  114. function setCookie(name, value, expiredays = 30) {
  115. var cookies = document.cookie ? document.cookie.split(';') : [], date = new Date();
  116. date.setTime(date.getTime() + expiredays * 24 * 60 * 60 * 1000);
  117. // 修改存在的 name, expires 值
  118. for (var i = 0; i < cookies.length; i++) {
  119. if (0 === cookies[i].trim().indexOf(name)) {
  120. var existName = true;
  121. cookies[i] = name + '=' + value;
  122. continue;
  123. }
  124. if (0 === cookies[i].trim().indexOf('expires')) {
  125. var existExpires = true;
  126. cookies[i] = 'expires=' + date.toUTCString();
  127. continue;
  128. }
  129. if (0 === cookies[i].trim().indexOf('path')) {
  130. var existPath = true;
  131. }
  132. }
  133. // 添加未存在的 name, expires, path 值
  134. if ('undefined' === typeof existName) {
  135. cookies.unshift(name + '=' + value);
  136. }
  137. if ('undefined' === typeof existExpires) {
  138. cookies.push('expires=' + date.toUTCString());
  139. }
  140. if ('undefined' === typeof existPath) {
  141. cookies.push('path=/');
  142. }
  143. // 设置 cookie
  144. document.cookie = cookies.join(';');
  145. }
  146. function delCookie(name) {
  147. var cookies = document.cookie ? document.cookie.split(';') : [], date = new Date();
  148. date.setTime(date.getTime() - 1);
  149. // 删除存在的 name 值,修改 expires 值
  150. for (var i = 0; i < cookies.length; i++) {
  151. if (0 === cookies[i].trim().indexOf(name)) {
  152. cookies.splice(i, 1);
  153. }
  154. if (0 === cookies[i].trim().indexOf('expires')) {
  155. var existExpires = true;
  156. cookies[i] = 'expires=' + date.toUTCString();
  157. }
  158. if (0 === cookies[i].trim().indexOf('path')) {
  159. var existPath = true;
  160. }
  161. }
  162. // 如果未存在 expires, path 值
  163. if ('undefined' === typeof existExpires) {
  164. cookies.push('expires=' + date.toUTCString());
  165. }
  166. if ('undefined' === typeof existPath) {
  167. cookies.push('path=/');
  168. }
  169. // 设置 cookie
  170. document.cookie = cookies.join(';');
  171. }
  172. </script>
  173. </body>
  174. </html>

背景和字体颜色

  • 改变背景黄色和字体红色rgb值

改变背景和字体颜色

  • 刷新页面仍保持黄色背景,红色字体,点击清理,恢复原来样式

更多相关文章

  1. localstroage的保存用户设置
  2. localStorage使用
  3. 带有二级分类的导航
  4. Element Plus组件-按钮、图标、ColorPicker 颜色选择器、日历、R
  5. uni-app实现一进入H5页面,背景音乐自动播放
  6. 有关H5中背景音乐的自动播放功能
  7. 字体图标引用、无序列表颜色设置、盒模型
  8. html 背景图片全局填充
  9. php之session实战

随机推荐

  1. Android视频缩略图(二)
  2. 【Android小项目】找不同,改编自"寻找房祖
  3. VMware虚拟机Ubuntu1804编译Android 10.0
  4. android设置activity全屏 | 无标题
  5. selector属性介绍
  6. Android Studio 3.0开始android Device M
  7. 【30篇突击 android】源码统计四
  8. android 的短息发声阅读软件源码
  9. Android 浏览器的开发实例分享
  10. android动态增加控件时控制样式的方法