javascript - 如何将元素的背景位置更改为新的 CSS 属性?
问题描述
我有以下代码:
$(".element").css("background-position","center");
出于某种原因,它不会在 CSS 中创建一个新属性,background-position: center
而是将其添加到 background 属性中,如下所示:
background: center center rgb(251, 251, 251);
我如何做到这一点,以便在Javascript / jQuery中更改背景位置(就像您可以在检查元素或纯 css 中所做的那样):
background-position: center;
解决方案
您可以使用 css 变量 https://developer.mozilla.org/en-US/docs/Web/CSS/Using_CSS_custom_properties
示例代码
const Root = document.documentElement;
var h_Pos = ['center','right','left'] , nPH = 0
, v_Pos = ['center','bottom','top'] , nPV = 0
btH.onclick=_=> { nPH = ++nPH %3; Root.style.setProperty('--PosH', h_Pos[nPH]) }
btV.onclick=_=> { nPV = ++nPV %3; Root.style.setProperty('--PosV', v_Pos[nPV]) }
:root {
--PosH : center;
--PosV : center;
}
html {
height: 100%;
background: orange no-repeat var(--PosH) var(--PosV) url(https://i.picsum.photos/id/926/200/200.jpg);
}
<button id="btH"> change horizontal Position</button>
<button id="btV"> change vertical Position</button>
推荐阅读
- android - 使用片段之间的参数正确初始化 ViewModel
- filebeat - Filebeat“加载配置文件时出错:yaml:没有找到预期的密钥”
- python - 制作一种方法检查数据框中的值是否为特定值
- r - 如何在 R 的整洁数据框中将组的平均值添加为新组?
- django - Django登录重定向到登录页面
- javascript - 如果用户登录或未登录,实现条件导航栏的策略
- google-chrome - VS代码调试重定向到默认chrome窗口而不是配置一个
- c# - 如何从表字段中获取值并使用 foreach 语句将其插入到另一个表中
- python - 如何使用 Tkinter、Python 使输入文本设置为适合输入框?
- python - 如何在html(占位符)的输入字段中打印提取的字典值