如何在下载按钮链接出现之前设置10秒倒计时
How can I make a 10 second countdown timer before a download button link appears?
在下载页面上,我希望它能在页面加载时自动启动10秒计时器。在页面上,我想发一些文字,比如"你可以在10秒内开始下载……"然后,时间结束后,会出现一个下载按钮,供人们点击并开始下载。
我该如何做到这一点,以及使用什么代码将其包含在页面中?
请参阅:http://jsfiddle.net/rATW7/
它是向后兼容的,不那么安全,但10秒无论如何都不需要担心。
您可以使用setInterval()
来执行此操作。
请注意,确保countdownElement
有一个现有的文本节点,它可以是任何空白。如果您不能保证,请使用innerHTML
或innerText/textContent
。
window.onload = function() {
var countdownElement = document.getElementById('countdown'),
downloadButton = document.getElementById('download'),
seconds = 10,
second = 0,
interval;
downloadButton.style.display = 'none';
interval = setInterval(function() {
countdownElement.firstChild.data = 'You can start your download in ' + (seconds - second) + ' seconds';
if (second >= seconds) {
downloadButton.style.display = 'block';
clearInterval(interval);
}
second++;
}, 1000);
}
jsFiddle。
Noone可以确保您的间隔是准确的,尤其是在选项卡(或浏览器)处于非活动状态时(例如,请参阅本文),因此最好依靠时差而不是计数器:
var sTime = new Date().getTime();
var countDown = 30;
function UpdateTime() {
var cTime = new Date().getTime();
var diff = cTime - sTime;
var seconds = countDown - Math.floor(diff / 1000);
//show seconds
}
UpdateTime();
var counter = setInterval(UpdateTime, 500);
工作小提琴
Yuriy提供的Fiddle的修改,它不使用JQuery,如果秒数足够大,也可以使用小时。
<div id="countdowntimertxt" class="countdowntimer">00:00:00</div>
<script type="text/javascript">
var sTime = new Date().getTime();
var countDown = 3700; // Number of seconds to count down from.
function UpdateCountDownTime() {
var cTime = new Date().getTime();
var diff = cTime - sTime;
var timeStr = '';
var seconds = countDown - Math.floor(diff / 1000);
if (seconds >= 0) {
var hours = Math.floor(seconds / 3600);
var minutes = Math.floor( (seconds-(hours*3600)) / 60);
seconds -= (hours*3600) + (minutes*60);
if( hours < 10 ){
timeStr = "0" + hours;
}else{
timeStr = hours;
}
if( minutes < 10 ){
timeStr = timeStr + ":0" + minutes;
}else{
timeStr = timeStr + ":" + minutes;
}
if( seconds < 10){
timeStr = timeStr + ":0" + seconds;
}else{
timeStr = timeStr + ":" + seconds;
}
document.getElementById("countdowntimertxt").innerHTML = timeStr;
}else{
document.getElementById("countdowntimertxt").style.display="none";
clearInterval(counter);
}
}
UpdateCountDownTime();
var counter = setInterval(UpdateCountDownTime, 500);
</script>
我用代码写了一个回复,但alex的回复比我的quick&脏溶液。
考虑到,如果你想像Rapidshare和其他人一样做一些事情,你必须在服务器端生成链接,并使用AJAX进行检索,否则,想要立即下载的人唯一需要做的就是查看页面的源代码;-)
这很简单,是的,你可以很容易地做到。以下是实时链接,在下载链接出现之前,您可以在其中找到制作倒计时计时器的密码:http://www.makingdifferent.com/make-countdown-timer-download-button-link-appears/
干杯!!
您可以使用javascript:的setTimeout
函数
// make the button not visible
setTimeout(()=>{
// here make button visible and clickable
},10000)
// here 10000 -> 10 seconds timeout
- 定时循环,间隔10秒
- 加载页面每10秒显示一条不同的消息
- 我想每隔10秒刷新一个wordpress网站
- 如果页面加载时间超过 10 秒,如何刷新页面
- 如何每 10 秒调用一次 JS 函数,然后以角度激活一个函数
- 10秒后停止自动播放-环岛
- 试图修复一个倒计时计时器问题,该问题导致计时器运行,然后在使用Javascript时崩溃约10秒
- 每10秒调用一次页面加载事件
- 我们如何在下拉子菜单中设置5秒的时间或延迟
- 10秒后添加类
- 在函数完成后10秒重复运行该函数(JavaScript)
- 如何制作每 10 秒刷新一次的 jquery 表
- 10秒后关闭弹出窗口
- 引导模式在单击时打开并保持打开状态 10 秒
- 如何在页面加载 10 秒后显示弹出窗口
- 如何在页面加载 10 秒后自动播放 YouTube 视频
- 我应该在此代码中添加什么以使弹出窗口在 10 秒后出现
- jQuery条幅旋转过快,即使setTimeout设置为10秒
- 如何在下载按钮链接出现之前设置10秒倒计时
- 如果未设置cookie且未选择任何输入,则在10秒后隐藏登录表单