我想要做的是,如果我点击一个span
然后一些元素DIV
淡出,否则你再次点击跨度这些元素会淡入。我还css()
用来改变元素的一些样式仍然存在在那DIV
。
在这里查看代码。
现在有两个问题/问题:
是否有一些捷径或技术
css()
可以减少使用次数?当我尝试
css()
在我的else
条件下使用将样式值恢复为原始值时,它们在我的else
条件下都不起作用,因此条件下的新样式值if
保持不变。
有什么更正或建议吗?
我想要做的是如果我点击一个
span
不 ,你想要做的是“当你点击一个span
......”
然后 a 中的一些元素
DIV
淡出
...adiv
淡出。
否则你再次点击
span
你有没有听过有人说“然后你再点击一次”?如果这不是你说话的方式,你也不应该写它。
您要描述的是当您span
第二次单击时会发生什么。其实点击多少次并不重要span
,重要的是div
. 您所描述的内容可以追溯到单击跨度时发生的情况。
这些元素会逐渐消失。
所以到目前为止你想说的是:
当你点击一个 span 时,检查 adiv
是否可见;如果是,则淡出,否则,淡入。
在那里,我还使用 css() 来更改其中保留的元素的一些样式
DIV
。
听起来您想说的是您也在div
使用 jQuery 的css
方法进行样式设置。鉴于代码的状态,这似乎(大部分)是这种情况。
不要使用css
方法。
css
当您绝对需要动态样式时,使用 jQuery 的方法很有用。大多数时候,大多数人不需要动态样式。大多数时候,大多数人都需要动态的样式集。这些最好表示为应该留在样式表中的类。HTML属于.html
文件,JS属于.js
文件,CSS属于.css
文件。
因此,您真正想要的是在div
完成动画后更改一个类(或多个)。
所有这一切都无需编写任何代码。要将它们联系在一起,通常是您想要做的:
$('.some-span').on('click', function () {
//when you click on a span
var divIsVisible;
//check whether a div is visible
divIsVisible = $('.some-div').is(':visible');
if (divIsVisible) {
//if it is, fade out
$('.some-div').fadeOut(function () {
//when it's done fading out, add some classes
$(this).addClass('is-hidden');
//add other classes
});
} else {
//else fade in
$('.some-div').fadeIn(function () {
//when it's done fading in, remove some classes
$(this).removeClass('is-hidden');
//remove other classes
});
}
});
当然,您也可以在 CSS 中添加class
并#News
应用所有样式
#News.closed {
height: 45px;
width: 200px;
overflow: hidden;
}
#News.closed div {
right: -10px;
}
#News.closed div label {
font-size:12px;
top: -14px;
}
}
#News.closed div label p {
top: -15px;
right: -20px;
}
演示:http: //jsfiddle.net/pavloschris/7G3Z4/10/