jquery - 使用本地存储来存储图像背景位置,使用 jquery 进行 chrome 扩展
问题描述
因此,当我单击一个按钮时,应该发生的是背景图像中心本身,然后当我再次单击它时,它会将背景位置设置为未设置。但是,我的问题是我需要用户的背景位置选择保持不变,而不是重置为未设置。
这是我的html按钮:
<input type="button" id="centerImgBackground" value="Center Image" name="background-image-center">
这是我的 Jquery/JS:
window.onload=function(){
isImgNotCentered = true;
localStorage.setItem("toCenter","center center");
localStorage.setItem("unCenter","unset");
$("#centerImgBackground").click(function(){
if(isImgNotCentered){
$('body').css('background-position', localStorage.getItem("toCenter"));
isImgNotCentered = false;
}
else {
$('body').css('background-position',localStorage.getItem("unCenter"));
isImgNotCentered = true;
}
});
}
解决方案
这是一个正确的方法:http: //jsfiddle.net/xpvt214o/229813/
function setBGToUnset(){
setStyle("unset");
}
function setBGToCenter(){
setStyle("center center");
}
function setStyle(value){
localStorage.setItem("style",value);
$('body').css('background-position', localStorage.getItem("style"));
console.log("style saved: "+value);
}
$(document).ready(function(){
var style = localStorage.getItem("style");
console.log("default style: "+style);
if(style != undefined && style === "unset"){
setBGToUnset();
} else {
setBGToCenter();
}
$("#centerImgBackground").on("click", function(){
var style = localStorage.getItem("style");
if(style != undefined && style === "unset"){
setBGToCenter();
} else {
setBGToUnset();
}
});
});
不要忘记取消阻止第三方 cookie 和站点数据以进行测试链接
推荐阅读
- java - 为什么 findById 响应未找到 id 但 findAll 返回具有此 id 的对象
- android - 如何禁用布局中的所有复选框?
- python - 通过来自不同目录的子进程运行文件
- payment - 生成应用程序密码 - 响应 6985 - 不使用 PDOL
- angular - Angular9:为什么主题没有在点击操作符内触发?
- node.js - 使用 Gmail API 从 nodejs 服务器中的 G-Suite 发送电子邮件返回 400 错误请求
- ios - iOS模拟器崩溃
- elasticsearch - 在弹性搜索索引中查找所有单词及其频率
- html - ReactJS - How To Setup 3 Divs One On-Top Of The Other?
- javascript - node.js 中的 setInterval 是否在计算机入睡时开始运行?