如何延迟jQuery函数以等待内容淡出
How can I delay jQuery functions to wait for content to fadeOut?
网格中有六个按钮,每个按钮都包含一个标题(h3)和一个图像。
当单击其中一个按钮时,我使用jquery从所选按钮中提取内容(标题和图像),并在附近的特色部分更突出地显示它(相同的标题和图像,具有不同的样式)。
为了使交互看起来/感觉流畅,我在更改特色内容之前向包含特色内容的div添加了一个fadeOut(),在更改后添加了一个子fadeIn()。
问题是,浏览器处理命令的速度比特色内容的fadeOut()要快。所以它看起来很颠簸。
简而言之,我的代码是按以下顺序编写的:
- 淡出特色部分
- 更改特色内容
- 使用新的特色内容淡出
但它是按照这个顺序发生的:
- 更改特色内容
- 淡出特色部分
- 使用新的特色内容淡出
这是我的代码:
$('.obst-tile').click(function(){
$(this).parent().children().removeClass('is-selected');
$(this).addClass('is-selected');
$('.obst-feature').fadeOut();
var selectedId = $('.is-selected').attr('id');
var imgLocation = $('#' + selectedId + ' img').attr('src');
var featureTitle = $('#' + selectedId).find('h3').text();
$('.obst-featured-img').attr('src',imgLocation);
$('.obst-desc-headline').text(featureTitle);
$('.obst-feature').fadeIn();
});
一切都很好(点击按钮后内容会正确更新),所以我并不是在寻求调试帮助,也不是在寻求如何以更简洁的方式编写这篇文章的建议。只是想知道如何将内容的更改延迟足够长的时间,以便fadeOut发生。
提前感谢您的帮助!
$.fadeOut()具有回调函数;
$('.obst-tile').click(function(){
$(this).parent().children().removeClass('is-selected');
$(this).addClass('is-selected');
$('.obst-feature').fadeOut(function(){
var selectedId = $('.is-selected').attr('id');
var imgLocation = $('#' + selectedId + ' img').attr('src');
var featureTitle = $('#' + selectedId).find('h3').text();
$('.obst-featured-img').attr('src',imgLocation);
$('.obst-desc-headline').text(featureTitle);
$('.obst-feature').fadeIn();
});
});
相关文章:
- 音频控件在mouseover上显示,在mouseout上淡出
- 单击按钮以等待单击按钮
- React组件等待所需道具进行渲染
- Javascript将图像src更改为淡入淡出
- css(或jQuery)悬停时淡入淡出
- 将淡入淡出添加到“我的身体背景滑块”
- 正在等待呈现图表,直到加载数据为止
- 在等待ajax请求时显示微调器并禁用页面
- Javascript在for循环中等待处理请求
- JavaScript循环并等待函数
- 多重潜水淡入淡出打开
- 在等待异步任务时永久循环
- 添加/删除类淡入淡出不起作用
- 在容器中心滚动时淡出
- 带有计数器、缩略图、进度条和淡入淡出效果的简单jQuery幻灯片
- 如何延迟jQuery函数以等待内容淡出
- Jquery 淡出 - 等待完成 - 然后删除
- 茉莉花 - 等待淡出()完成
- Reactjs animate replace:如何在添加内容之前等待淡出
- 当鼠标悬停在菜单项上时,在执行fadeIn之前等待背景图像淡出完成