Здравствуйте, Как можно сделать чтобы загрузчик работал html Код (Text): <input name="submit" id="submit" value="Load More" type="submit"> <script src="http://code.jquery.com/jquery-1.9.1.js"></script> <div id="cosder"></div> <script> $("#submit").click(function() { $("#cosder").append('<div id="loaderImage"></div>'); }); </script> script Код (Text): <script type="text/javascript"> var cSpeed=3; var cWidth=160; var cHeight=20; var cTotalFrames=12; var cFrameWidth=160; var cImageSrc='sprites.gif'; var cImageTimeout=false; var cIndex=0; var cXpos=0; var cPreloaderTimeout=false; var SECONDS_BETWEEN_FRAMES=0; function startAnimation(){ document.getElementById('loaderImage').style.backgroundImage='url('+cImageSrc+')'; document.getElementById('loaderImage').style.width=cWidth+'px'; document.getElementById('loaderImage').style.height=cHeight+'px'; //FPS = Math.round(100/(maxSpeed+2-speed)); FPS = Math.round(100/cSpeed); SECONDS_BETWEEN_FRAMES = 1 / FPS; cPreloaderTimeout=setTimeout('continueAnimation()', SECONDS_BETWEEN_FRAMES/1000); } function continueAnimation(){ cXpos += cFrameWidth; //increase the index so we know which frame of our animation we are currently on cIndex += 1; //if our cIndex is higher than our total number of frames, we're at the end and should restart if (cIndex >= cTotalFrames) { cXpos =0; cIndex=0; } if(document.getElementById('loaderImage')) document.getElementById('loaderImage').style.backgroundPosition=(-cXpos)+'px 0'; cPreloaderTimeout=setTimeout('continueAnimation()', SECONDS_BETWEEN_FRAMES*1000); } function stopAnimation(){//stops animation clearTimeout(cPreloaderTimeout); cPreloaderTimeout=false; } function imageLoader(s, fun)//Pre-loads the sprites image { clearTimeout(cImageTimeout); cImageTimeout=0; genImage = new Image(); genImage.onload=function (){cImageTimeout=setTimeout(fun, 0)}; genImage.onerror=new Function('alert(\'Could not load the image\')'); genImage.src=s; } //The following code starts the animation new imageLoader(cImageSrc, 'startAnimation()'); </script>
Ипользую этот загрузчик, можно скачать http://preloaders.net/ru/horizontal а именно Анимированный JavaScript'ом Использование без скрипта $("#cosder").append('<div id="loaderImage"></div>' работает отлично, но когда добавляю через скрип не работает.
Скрипт который отлично работает: html Код (Text): <div id="loaderImage"></div> script Код (Text): <script type="text/javascript"> var cSpeed=3; var cWidth=160; var cHeight=20; var cTotalFrames=12; var cFrameWidth=160; var cImageSrc='sprites.gif'; var cImageTimeout=false; var cIndex=0; var cXpos=0; var cPreloaderTimeout=false; var SECONDS_BETWEEN_FRAMES=0; function startAnimation(){ document.getElementById('loaderImage').style.backgroundImage='url('+cImageSrc+')'; document.getElementById('loaderImage').style.width=cWidth+'px'; document.getElementById('loaderImage').style.height=cHeight+'px'; //FPS = Math.round(100/(maxSpeed+2-speed)); FPS = Math.round(100/cSpeed); SECONDS_BETWEEN_FRAMES = 1 / FPS; cPreloaderTimeout=setTimeout('continueAnimation()', SECONDS_BETWEEN_FRAMES/1000); } function continueAnimation(){ cXpos += cFrameWidth; //increase the index so we know which frame of our animation we are currently on cIndex += 1; //if our cIndex is higher than our total number of frames, we're at the end and should restart if (cIndex >= cTotalFrames) { cXpos =0; cIndex=0; } if(document.getElementById('loaderImage')) document.getElementById('loaderImage').style.backgroundPosition=(-cXpos)+'px 0'; cPreloaderTimeout=setTimeout('continueAnimation()', SECONDS_BETWEEN_FRAMES*1000); } function stopAnimation(){//stops animation clearTimeout(cPreloaderTimeout); cPreloaderTimeout=false; } function imageLoader(s, fun)//Pre-loads the sprites image { clearTimeout(cImageTimeout); cImageTimeout=0; genImage = new Image(); genImage.onload=function (){cImageTimeout=setTimeout(fun, 0)}; genImage.onerror=new Function('alert(\'Could not load the image\')'); genImage.src=s; } //The following code starts the animation new imageLoader(cImageSrc, 'startAnimation()'); </script> --------------------------------------------------------------------------------------------------------- Сдесь [ниже] внес небольшое извинения в html код. Код (Text): <input name="submit" id="submit" value="Load More" type="submit"> <script src="http://code.jquery.com/jquery-1.9.1.js"></script> <div id="cosder"></div> <script> $("#submit").click(function() { $("#cosder").append('<div id="loaderImage"></div>'); }); </script> и <div id="loaderImage"></div> Дело в том что после добавления скриптом <div id="loaderImage"></div> этот див не хочет работать. То есть в диве не работает loading анимация.
ОМГ! И вы не врубаетесь, что он не будет работать? Где запуск скрипта? Где вы после добавления запустили скрипт? В упор не вижу.
Там где обрабатываете добавления элемента, запустите скрипт, который вешает анимацию на этот элемент.