风格.setProperty不渲染
style.setProperty does not render
本文关键字:setProperty 风格 更新时间:2023-09-26
使用这个函数似乎更可移植或更可靠,因为另一种选择是设置一个属性:
element.style.setProperty(styleproperty, valuestring);
element.setAttribute('style',styleproperty+': '+valuestring+';');
第二种方法似乎也稍微低效一些,但这几乎不是问题。
但至少在Chrome上,除非我使用setAttribute
方法,否则样式不会在页面上更新。
为什么这是一个问题的原因,是我有潜在的许多不同的独立的样式属性,我想要修改独立于其他的。如果我不能使用setProperty
, removeProperty
等,我必须做大量的字符串解析和处理。我必须拉出样式字符串,搜索它,修改它,并通过setAttribute
设置它。应该可以,但是我不喜欢。
这有什么原因吗?这是臭虫吗?我的猜测是setAttribute
触发浏览器执行重新渲染。什么是一种合适的方式来强制这种更新,通常是浏览器友好的?
直接设置style
属性可能会产生不希望看到的结果:它将清除元素的style
属性中设置的所有现有样式,并且setAttribute
在旧的IE中被破坏(以及在后来的IE中兼容模式)。更安全的方法是直接使用元素的style
属性,只设置你需要的style属性:
element.style[styleproperty] = valuestring;
这将在所有主流浏览器中立即更新页面。
一个警告:CSS样式属性(通常使用破折号,例如在background-color
中)不精确地映射到DOM元素的style
对象的属性(通常是驼峰情况,例如在backgroundColor
中)。这个规则也有例外。
相关文章:
- 为什么Airbnb风格指南说不鼓励依赖函数名称推断
- CKEditor-我在editor.css中的风格是't
- onclick风格的整个李不想要
- JavaScript改变了双方的显示风格
- 如何移除或改进:在Bootstrap Carousel上聚焦风格
- 如何塑造李的风格;s正在使用单击的李的值
- 用于Dynamic Div'的Javascript数学函数;s风格
- 创建一个不断变化的谷歌涂鸦风格的标题
- jQuery将TD注入适当的列(俄罗斯方块风格)
- 最好的技术自上而下RPG风格的网格滚动
- 在Windows Metro风格的Javascript应用程序中读取文件内容
- jquery可以't隐藏输入名称为“”的表单;风格”;
- ACF谷歌地图-改变风格
- system.err风格的控制台以javascript打印
- 野蛮风格搞砸了
- 带有jquery/javascript的桌面风格UI
- 我可以用JavaScript判断访问者是否'的语言环境遵循美国风格或世界其他地区's风格
- 一些sencha/enyo风格功能的主干兼容UI/组件库
- Javascript-如何将类工厂定义为Extjs风格
- 风格.setProperty不渲染