将现有的jQuery从点击功能转换为延迟自动显示
Converting existing jQuery from click function to auto display with delay
目前,主页文本仅通过启动滑出的单击功能显示。
我想做的是更改它,使其不需要单击即可显示。我希望文本在页面加载大约 3 秒后显示(淡入)。
这是我目前所拥有的:-
$('.introbox span').replaceWith(function(){
return ''
<div class="slideOutTip '+$(this).attr('class')+'" style="'+$(this).attr('style')+'">'
'
<div class="tipVisible">'
<div class="tipIcon"><div class="plusIcon"></div></div>'
<span class="tipTitle">'+$(this).attr('title')+'</span>'
</div>'
'
<div class="slideOutContent">'
<p>'+$(this).html()+'</p>'
</div>'
</div>';
});
当单击"plusIcon"时,文本会滑出并可见。
监听点击功能是...
$('.tipVisible').bind('click',function(){
var tip = $(this).parent();
所以我假设这是我需要转换使用自动加载所必需的地方,也许是 setDelay 和 FadeIn,尽管我不是 100%。
请有人建议如何将其更改为不使用单击而是在延迟后自动显示?提前谢谢。
尝试在 jsfiddle 中添加代码,如果更容易看到我正在尝试做什么 - 谢谢。
非常简单:用你在.tipVisible.click
做的事情创建一个函数,然后设置一个window.setTimeout(yourFunction, 3000);
@Comment:你的JS已经很复杂了,我可能会重新组织和重新编码所有内容,这样我就可以给你一个提示,告诉你如何实现它(当我把它添加到你的小提琴中时没有立即工作,但我有点懒得在那里找到问题)。
var animate = function(obj) {
var tip = obj ? $(obj).parent() : $(".tipVisible").parent();
/* If a open/close animation is in progress, exit the function */
if (tip.is(':animated')) return false;
if (tip.find('.slideOutContent').css('display') == 'none') {
tip.trigger('slideOut');
}
else tip.trigger('slideIn');
}
window.setTimeout( animate, 3000);
$('.tipVisible').bind('click', function() {
animate(this);
});
编辑:好吧,这至少在做一些事情,现在你必须弄清楚何时以及如何;)需要做什么
PS:你使用了jQuery,但加载了Mootools框架...Mootools 不知道 $(document).ready()
相关文章:
- 如何在JavaScript中将字符串转换为函数引用
- 如何在Javascript中将JSon对象转换为数组
- 使用JS将数组转换为json对象
- 如何使用json将对象列表从java转换为javascript
- jQuery addClass中断延迟,或者jQuery延迟中断CSS转换,或者两者兼而有之
- 链接的转换延迟大于内容
- 使用setTimeout延迟d3转换
- UI路由器-状态转换延迟(非常慢)
- 将现有的jQuery从点击功能转换为延迟自动显示
- CSS3 转换 - 如何延迟 z 索引属性的重置
- 旋转瓷砖;如何在悬停后延迟转换
- 如何将回调示例转换为延迟对象
- Angularjs延迟加载时请求转换的多个指令
- 带延迟的可逆转换
- 使用jquery延迟css转换
- 如何转换jQuery $.ajax调用蓝鸟承诺没有延迟的反模式
- 如何在状态转换之前暂停组件的延迟
- 为什么CSS转换工作有延迟
- 延迟CSS转换2秒
- 如何在jQuery Mobile中延迟页面转换,直到页面数据准备好