如何更改元素的类以获得我想要的结果
How do I change class of an element to get the result I want?
我正在构建一个媒体播放器,我希望录制时录制按钮以红色闪烁。我正在使用Pure来使用css对按钮进行样式设置。
<button class="pure-button" onclick="record(); return false" id="idRec">Rec</button>
我正在录制时向按钮添加另一个类。
var elem = document.getElementById("idRec");
elem.setAttribute("class", "pure-button recBtn");
以下是recBtn在样式表中的样子:
.recBtn {
-webkit-box-shadow: 0px 1px 3px rgba(255,000,000,0.1),inset 0px 0px 2px rgba(255,0,0,0.7);
background: -webkit-gradient(linear, left top, left bottom, from(#ff0000),to(#ff0000));
-webkit-animation-name: buttonPulse;
-webkit-animation-duration: 2s;
-webkit-animation-iteration-count: 1;
-webkit-animation-timing-function: linear;
}
我在样式表中也有这个:
@-webkit-keyframes buttonPulse {
0% {
opacity: 0.5;
}
50% {
opacity: 1;
}
100% {
opacity: 0.5;
}
}
这使按钮闪烁,但只有灰色阴影,只有边框变红。但当我直接设置元素样式时(样式表中仍有"@-webkit keyframes buttonPulse"),我确实得到了我想要的结果:
elem.setAttribute("style",
"background: -webkit-gradient(linear, left top, left bottom, from(#ff0000),to(#ff0000));" +
"-webkit-box-shadow:0px 1px 3px rgba(255,000,000,0.1),inset 0px 0px 2px rgba(255,0,0,0.7);" +
"-webkit-animation-name: buttonPulse;" +
"-webkit-animation-duration: 2s;" +
"-webkit-animation-iteration-count: infinite;" +
"-webkit-animation-timing-function: linear;");
但是,当我希望按钮停止闪烁时,该方法就会出现问题,因为我需要将所有这些单独的属性设置回以前通过"纯按钮"类设置样式时的状态。
只要换一个班,我就能得到我想要的结果吗?
如果问题是背景没有改变,只需通过使其更具体来增加样式的优先级。
#idRec.recBtn {
-webkit-box-shadow: 0px 1px 3px rgba(255,000,000,0.1),inset 0px 0px 2px rgba(255,0,0,0.7);
background: -webkit-gradient(linear, left top, left bottom, from(#ff0000),to(#ff0000));
-webkit-animation-name: buttonPulse;
-webkit-animation-duration: 2s;
-webkit-animation-iteration-count: infinite;
-webkit-animation-timing-function: linear;
}
这是一把小提琴http://jsfiddle.net/46XMq/4/
相关文章:
- 在多行图表中,在每一行的末尾,我想要一个小圆圈和使用d3.js的端点值
- 我想要相同的函数以两种方式反应
- 如何在javascript中创建一个空的2d数组?下面是我想要创建的一个示例
- 如何用javascript发送多个文件没有jQuery我想要每个文件一个进度条
- 我想要一个类似于网站 https://onlycoin.com/ 的jQuery鼠标滚动动画效果
- 我想要“鼠标滚轮事件延迟”
- 如何格式化我返回的url,使其符合我想要的路由
- 如何使用facet指定我想要的字段
- json_encode($myVar);正在给出地图,我想要一个字符串数组
- 我想要输入类型<输入>在javascript中
- Javascript:我可以't找到正确的方式来表达布尔“;如果“;以得到我想要的结果
- 如何用javascript从数组中删除项?我想要一个类似拉的东西来做与推相反的事情
- 正则表达式对我想要做的事情是正确的吗?
- Javascript给定了一个数字,我想要所有可能的组合和元素数组
- 为什么获胜't我的javascript返回我想要的值
- 我想要一些在另一个回调函数内部的结果
- 我没有得到我想要的结果
- 有人能告诉我为什么这个循环没有给我想要的结果吗?
- jQuery fadeIn()没有给出我想要的结果
- 如何更改元素的类以获得我想要的结果