gpt4 book ai didi

需要带有 php 变量建议的 Javascript 代码

转载 作者:行者123 更新时间:2023-11-29 12:38:35 25 4
gpt4 key购买 nike

我正在使用下面的脚本来生成一个进度条来跟踪计时器的进度。计时器会运行一段时间,然后自行完成并删除(它适用于基于浏览器的游戏,您可以在其中 build 建筑物,最终在一段时间后 build 完成)。

请参阅下面的代码:

$remaining=$item['start']+$item['duration']*60-time();
if ($remaining < 1) {
$remaining='0.1';
}
echo "<script type='text/javascript'>
var something = $remaining;
//<![CDATA[
$(function(){
$(document).ready(function(){

jQuery.fn.anim_progressbar = function (aOptions) {
// def values
var iCms = 1000;
var iMms = 60 * iCms;
var iHms = 3600 * iCms;
var iDms = 24 * 3600 * iCms;

// def options
var aDefOpts = {
start: new Date(), // now
finish: new Date().setTime(new Date().getTime() + something * iCms), // now + 60 sec
interval: 100
}
var aOpts = jQuery.extend(aDefOpts, aOptions);
var vPb = this;

// each progress bar
return this.each(
function() {
var iDuration = aOpts.finish - aOpts.start;

// calling original progressbar
$(vPb).children('.pbar').progressbar();

// looping process
var vInterval = setInterval(
function(){
var iLeftMs = aOpts.finish - new Date(); // left time in MS
var iElapsedMs = new Date() - aOpts.start, // elapsed time in MS
iDays = parseInt(iLeftMs / iDms), // elapsed days
iHours = parseInt((iLeftMs - (iDays * iDms)) / iHms), // elapsed hours
iMin = parseInt((iLeftMs - (iDays * iDms) - (iHours * iHms)) / iMms), // elapsed minutes
iSec = parseInt((iLeftMs - (iDays * iDms) - (iMin * iMms) - (iHours * iHms)) / iCms), // elapsed seconds
iPerc = (iElapsedMs > 0) ? iElapsedMs / iDuration * 100 : 0; // percentages

// display current positions and progress
$(vPb).children('.percent').html('<b>'+iPerc.toFixed(1)+'%</b>');
$(vPb).children('.elapsed').html(iDays+' days '+iHours+'h:'+iMin+'m:'+iSec+'s</b>');
$(vPb).children('.pbar').children('.ui-progressbar-value').css('width', iPerc+'%');

// in case of Finish
if (iPerc >= 100) {
clearInterval(vInterval);
$(vPb).children('.pbar').children('.ui-progressbar-value').css('width', 0+'%');
$(vPb).children('.percent').html('<b>0%</b>');
$(vPb).children('.elapsed').html('Building queue is empty. <div style= font-size:x-small; color:#000;>(<a href=# onclick=window.location.reload(true);>Reload?</a>)</div>');
}
} ,aOpts.interval
);
}
);
}

// default mode
$('#progress1').anim_progressbar();

// from second #5 till 15
var iNow = new Date().setTime(new Date().getTime() + 5 * 1000); // now plus 5 secs
var iEnd = new Date().setTime(new Date().getTime() + 15 * 1000); // now plus 15 secs

});
});//]]>";

变量$remaining是存储完成时间的地方,目前这就是进度条消失的地方,问题是每当你刷新页面时进度条再次从0%开始(尽管它更快,因为更多计时器已耗尽)。我希望它能够记住之前所在的 % 点并继续从该点加载。

额外信息

$item['start'] 存储在 mysql 中,例如:2014-10-17 12:45:25和$item['duration'] 例如:1 表示 1 分钟,10 表示 10 分钟

编辑:仍未找到解决方案。

最佳答案

您可以通过添加开始和结束标记来启动和停止 PHP,例如:

some html;
<?php
do some php
?>
some more html
<?php
do some php
?>

所以在你的情况下:

$remaining=$item['start']+$item['duration']*60-time();
if ($remaining < 1) {
$remaining='0.1';
}

?> //STOP PHP HERE

<script type='text/javascript'>
var something = "<?php echo $remaining;?>"; //INSERT A LITTE PHP
//<![CDATA[

....

});
});//]]>; //REMOVE LAST QUOTE

关于需要带有 php 变量建议的 Javascript 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26425825/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com