- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
假设我有一组 3 个单选按钮:
<div>
<label>
<input type="radio" name="Who" value="Myself"
checked="@isMyselfChecked" data-bind="checked: who" />
Mine
</label>
<label>
<input type="radio" name="Who" value="MemberId"
checked="@isMemberIdChecked" data-bind="checked: who" />
I know the member's ID
</label>
<label>
<input type="radio" name="Who" value="MemberUrl"
checked="@isMemberUrlChecked" data-bind="checked: who" />
I know the member's URL
</label>
</div>
当用户选择第一个单选按钮(我的/我自己)时,不需要额外的输入。但是,当选择第二个或第三个时,需要额外的输入:
<div>
<input type="text" name="MemberId" placeholder="Enter Member ID"
data-bind="toggleWho: who()" style="display: none" />
<input type="text" name="MemberUrl" placeholder="Enter Member URL"
data-bind="toggleWho: who()" style="display: none; width: 450px;" />
</div>
只需在相关文本框中添加 data-bind="visible: who() === '[MemberId|MemberUrl]'"
就足够简单了。但是,如果我想添加淡入/淡出过渡该怎么办?
我尝试了来自 knockout 网站的示例自定义fadeVisible
bindingHandler
,并且我了解它是如何工作的。但是,这将同时淡出并淡入文本框。如果选择'MemberId'
单选按钮,并且用户选择'MemberUrl'
单选按钮,我希望MemberId
文本框在之前淡出 MemberUrl
文本框淡入。
下面是我现在所拥有的,它可以工作,但我认为这不是最佳的。还有什么方法可以告诉 knockout 在前一个元素淡出之前不执行淡入?我是否需要另一个 ko.observale
,或者可能需要一个 ko.compulated
?
var viewModel = {
fadeSpeed: 150,
who: ko.observable($('input[type=radio][name=Who]:checked').val())
};
ko.bindingHandlers.toggleWho = {
init: function (element, valueAccessor) {
var value = valueAccessor();
var unwrapped = ko.utils.unwrapObservable(value);
if (unwrapped === element.name)
$(element).show();
},
update: function (element, valueAccessor) {
var value = valueAccessor();
var unwrapped = ko.utils.unwrapObservable(value);
// when selected value is myself, fade out the visible one, if any
if (unwrapped === 'Myself') {
$('input[type=text][name=MemberId]:visible')
.fadeOut(viewModel.fadeSpeed);
$('input[type=text][name=MemberUrl]:visible')
.fadeOut(viewModel.fadeSpeed);
}
// when selected value is memberid, may need to fade out url first
else if (unwrapped === 'MemberId') {
if ($('input[type=text][name=MemberUrl]:visible').length > 0) {
$('input[type=text][name=MemberUrl]:visible')
.fadeOut(viewModel.fadeSpeed, function () {
$('input[type=text][name=MemberId]')
.fadeIn(viewModel.fadeSpeed);
});
} else {
$('input[type=text][name=MemberId]')
.fadeIn(viewModel.fadeSpeed);
}
}
// when selected value is memberurl, may need to fade out id first
else if (unwrapped === 'MemberUrl') {
if ($('input[type=text][name=MemberId]:visible').length > 0) {
$('input[type=text][name=MemberId]:visible')
.fadeOut(viewModel.fadeSpeed, function () {
$('input[type=text][name=MemberUrl]')
.fadeIn(viewModel.fadeSpeed);
});
} else {
$('input[type=text][name=MemberUrl]')
.fadeIn(viewModel.fadeSpeed);
}
}
}
};
ko.applyBindings(viewModel);
最佳答案
您必须对此进行一些调整以适应您的示例,但我需要简化它以在 this fiddle 中进行测试.
这是绑定(bind):
var previousElement = null;
ko.bindingHandlers.fadeSwitcher = {
init: function(element, valueAccessor) {
var value = valueAccessor();
$(element).toggle(ko.utils.unwrapObservable(value));
},
update: function(element, valueAccessor) {
var value = ko.utils.unwrapObservable(valueAccessor());
if (value) {
if (previousElement == null) { // initial fade
$(element).fadeIn();
} else {
$(previousElement).fadeOut('fast', function() {
$(element).fadeIn();
});
}
previousElement = element;
}
}
};
关于jquery - knockout : fade in after fading out something else,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11434265/
以下代码在以下网页上运行。如果您单击旋转横幅下方左侧的三个按钮中的任何一个,您将看到我所说的行为。按钮旁边的文本用于淡出和淡入新部分。但是新的部分会在第一个部分消失之前淡入并跳回。 我以为我正在使用淡
假设我有一组 3 个单选按钮: Mine I know the member's ID
在我的示例代码/jsfiddle中:如果您在单词测试上快速来回移动鼠标到鼠标离开div的位置(#footer_logo_container),悬停div,离开div,等等......它就像脚本计算鼠标
我想知道如何将“淡入/淡出”效果添加到我使用使用 CSS3 媒体查询的响应式网站使出现或消失的元素.我已经弄清楚如何使用 linear 过渡,但我真的很想使用淡入淡出。 最佳答案 要使用 CSS 做到
我正在使用这个 javascript 来打开和关闭网站上某些内容的显示,具体取决于后端设置的内容类别: var $btns = $('.btn').click(function() {
首先:我查看了 stackoverflow 上的其他帖子,但都没有我要找的信息。 第二:我是编程新手 ;) 我想在我的网站上有一个淡入和淡出文本的 div。我在几个网站上看到过这个,我很确定它是使用
当 Image 元素的源发生更改时,是否可以有淡入/淡出动画?我需要两个图像元素吗?将其中一个的不透明度从 0 更改为 1,另一个从 1 更改为 0? 最佳答案 做到这一点没有太多麻烦。以这种方式运行
$(function() { $('#wrap').hover( function() { $('#wrap .image').fadeOut(100, function()
我正在尝试创建一个图像库插件,它可以执行基本的图像淡入/淡出。所有其他插件的问题在于它们使用相对/绝对定位。 是否可以在没有绝对位置的 div 中将多个图像堆叠在一起? 我的问题是必须设置容器的高度。
我正在尝试使用 ReactCSSTransitionGroup 淡出一些内容来替换内容,等待它完全消失,然后淡入新内容。 我正在使用 key 属性,它是 this related question 的
Bootstrap 显然使用了“hide”、“fade”和“in”类来进行转换。 我遇到的问题是使用“fade”和“in”会将不透明度从0更改为1。过渡效果很完美,但内容仍然占据页面上的空间,即使您看
截至目前,代码正常运行(但现在我想要的方式哈哈)。动画在页面最初加载和首次初始化时起作用并淡入,但是当我在初始页面淡入后访问路由时动画不会发生。只是想知道如何为每个兄弟路由实现我的动画。 感谢任何帮助
出于某种原因,jQuery 的 fadeIn 使我的页面跳转到顶部。它淡入的每个不同的 div 都会使滚动条变得不同的大小,所以我认为这可能就是“return false”不起作用的原因。这是代码:
我有一个图像幻灯片,我想在图像之间进行特定的转换,但我不知道如何做,尽管我尝试了一些不同的选项。我正在使用 jQuery Cycle 插件,我想要实现的是:几秒钟后,第一个图像变得更大一点(不是从中间
我正在通过“JavaScript: The Good Parts”这本书学习 JavaScript。其中一个示例是淡入淡出功能,如下所示: 1 var fade = function (node)
我有一个包含三组图像的 HTML 页面。我希望每组中的每张图片都保持可见 5 秒,然后一起淡出,当所有三张都不可见时,再一起淡入。然后该过程再次开始。我试图在不使用 JQuery 的情况下执行此操作。
我有一段代码是我在 Xcode 的 View Controller 中编写的。在该代码之前,即使是名为 NEXTTIP 的按钮也能正常工作。但是现在加入动画后,动画不出来,按钮也不起作用。请帮忙!
我正在使用 swift 开发基于 TableView 的应用程序。我正在尝试使用行动画淡入淡出从 TableView 中删除一行。一件简单而直接的事情,至少我是这么想的。 Swift 并没有使很多事情
我像这样使用 ffmpeg 命令行: ffmpeg -i test.mp3 -filter_complex "atrim=2:duration=6;afade=t=in:st=0:d=2" -y -v
我在我的页面上使用淡入淡出幻灯片时遇到困难。该演示工作正常,但一旦我将其合并到我的文件中,淡入淡出过渡就不再起作用。过渡持续时间过后,第一个图像消失并被下一个图像取代。 我已经浏览了在 SO 上可以找
我是一名优秀的程序员,十分优秀!