javascript - 我如何允许用户使用颜色选择器选择我网站的背景颜色并存储它?

标签 javascript html css

<input name="Color Picker" id="picker" onclick="setColor()" type="color" />
function setColor() {
  getColor();
  if (localStorage.getItem('background') !== null) {
    getColour = localStorage.background;
    $('body').css('background', getColour);
  }
}

function getColor() {
  localStorage.getItem('background') = picker;

}

我想获取自定义颜色的用户输入并相应地更新网站背景。

最佳答案

Stackoverflow 片段似乎不喜欢使用 localStorage 所以这里是一个如何读写颜色的例子。我注释掉了供您在应用程序中使用的本地存储代码,而不是我用来演示代码的临时变量。

下面的示例使用 onchange 并在加载时存储当前颜色,有一个默认颜色,您可以点击一个按钮应用它,还有另一个按钮来应用存储/选择的颜色。

var defaultColor = '#00ff00';
var tempStorage;

function setColor() {
  //localStorage.setItem('background', $('#picker').val());
  tempStorage = $('#picker').val();
  $('body').css('background-color', tempStorage);
  applyBackgroundColor(tempStorage);
}

function getColor() {
  //localStorage.getItem('background');
  $('#picker').val(tempStorage);
  applyBackgroundColor(tempStorage);
}

function getDefaultColor() {
  $('#picker').val(defaultColor);
  applyBackgroundColor(defaultColor);
}

function applyBackgroundColor(colorValue){
  $('body').css('background-color', colorValue);
}

setColor();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input name="Color Picker" id="picker" onchange="setColor()" type="color" />
<button onclick="getDefaultColor()">Apply Default</button>
<button onclick="getColor()">Apply Stored</button>

Please note I used your own syntax and tried changing as little as possible to your original code, i.e: How you call the methods inline, etc..

Though in general I would recommend to not use inline bindings but use jQuery $(element).on('event', function(){}) instead. i.e: $(#picker).on('change', setColor)

关于javascript - 我如何允许用户使用颜色选择器选择我网站的背景颜色并存储它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47651521/

相关文章:

html - 重新排序 bootstrap 列

javascript - [Phonegap 3.4]phonegap.js 函数在除 index.html 之外的其他页面上不起作用

javascript - 函数仅在调用它的最新元素上运行

javascript - 输入 :focus only working once

javascript - JS - 找出被遮挡的 DOM 元素的可见百分比

php - 难以在 jQuery 中验证美国电话号码 - 需要和 PhoneUS

jquery - 使用 jQuery 添加发光的底部边框

css - 如何在相应页面中选择悬停

css - 无法让 Bootstrap 4 Horizo​​ntal Form 按要求工作

javascript - 如何在div中显示完整图像