检测使用 javascript 动态分配的 css 样式/属性
Detect a css style/attribute assigned dynamically with javascript
我正在使用Jquery Cycle插件进行幻灯片放映,我想在某个幻灯片处于活动状态时添加一个事件。Cycle 插件通过在某个div 中添加和删除图像的不透明度来实现这一点,如下所示:
<div style="position: absolute; top: 0px; z-index: 9; display: none; opacity: 0;">
当图像处于活动状态或当前幻灯片时,不透明度更改为 1,显示变为"阻止"。
现在我尝试使用不同的方法,从检测div 的 css 样式/属性到为所述div 分配一个类,然后做一些事情:
if($("#slideshow > div:nth-child(2)").hasClass('fadeOut') == 1) {
alert('Hello');
}
或
if($("#slideshow > div:nth-child(2)").css('opacity') == 1) {
alert('Hello');
}
甚至
if($(".fadeOut").css('opacity') == 1) {
alert('Hello');
}
问题是 JS 在使用 Cycle 插件动态应用时不会检测到"不透明度:1"样式。另一方面,当样式在 css 文件中内联应用时,它确实有效,当然,这不起作用,因为事件在加载页面的那一刻触发,而我想要的是当且仅当第二个图像是活动图像时触发事件,换句话说, 当它将"不透明度"设置为 1 或将"显示"设置为阻止时,似乎无法弄清楚。
您应该能够使用所有方法确定元素的当前状态。我想问题是在正确的时间查找它们。
只是:您无法检测到样式属性或类属性何时更改。抓住这一点的唯一方法是监听 DOMModification 事件——一种相当丑陋的方式。
所以:使用另一个插件。将有幻灯片插件在元素更改图像时触发元素上的[自定义]事件。
这样的东西对你有用吗?
.html
<p></p>
<div class="slideshow">
<img id="1" src="http://davealger.info/i/1.jpg" />
<img id="2" src="http://davealger.info/i/2.bmp" />
<img id="3" src="http://davealger.info/i/3.png" />
</div>
.css
.slideshow { position:relative; }
.slideshow img { position:absolute; left:0; top:0; }
.js
$(function(){
$('.slideshow img:gt(0)').hide();
setInterval(function(){
var me=$('.slideshow :first-child');
if ( me.attr('id') === '1' )
$("p:last").html('getting ready to load slide 2');
else
$("p:last").html('');
me.fadeOut(2000).next('img').fadeIn(2000).end().appendTo('.slideshow');
}, 4000);
});
下面的演示链接
http://jsfiddle.net/DaveAlger/CWkYt/
相关文章:
- 如果文本字段为空,则使用JavaScript应用CSS样式
- FF和Chromium中CSS样式按钮的外观差异
- CSS样式属性留空
- CKeditor预览插件.js,为Chrome和IE进行编辑.因为它拒绝CSS样式
- 基于路由的CSS样式-Angular2
- 为未标记的文本添加CSS样式
- 使用JQuery将现有CSS样式扩展%-%
- JavaScript-在keyDown上切换css样式
- React js应用程序's在托管应用程序中打开时将覆盖css样式
- 如何在javascript中更改段落中不同行的css样式
- 通过javascript设置IE特定的css样式
- PHP,MySQL,AJAX-调用AJAX结果后,Bootstrap CSS样式不会显示
- 使用javascript/jquery检查.css样式表的名称
- JavaScript和CSS样式不适用于我的“;谷歌网站”;页
- 未使用jQuery验证器选中Css样式复选框时
- javascript正则表达式,用于编辑元素内部的css样式属性
- css样式加载+id.例如加载1、加载300
- 无法在运行时将CSS样式添加到元素中
- d3js 通过其 CSS 样式选择所有元素
- 如何根据浏览器宽度动态调整 css 样式表