JS Preloader за отделни div-ове. Всеки за себе си.

vankich

Registered
Как да си направя прелоадър, които дае независим от цялостното съдържание на сайта, а да отговаря за определени дивове. Нещо като в abv със снимките на новините или .. не се сещам сега по-добри примери.
 
Тези в абв са контейнери, в които се зарежда динамично информация от други сайтове.
Можеш да го направиш с jQuery ( $('#ne6to').load(function(){ do stuff}); ), но докато ти зареди картинката, целият див ще е заредил и веднага ще се скрие :lol:
 
F1r3Fl3x каза:
Тези в абв са контейнери, в които се зарежда динамично информация от други сайтове.
Можеш да го направиш с jQuery ( $('#ne6to').load(function(){ do stuff}); ), но докато ти зареди картинката, целият див ще е заредил и веднага ще се скрие :lol:
Може ли да напишеш един примерен код за прелоадър на, да речем див-а content. Докато се зареди желия див да се показва preloader.gif

Edit: Този прелоадър ми трябва главно за един див, в който проверявам домейни, докато провери домейните искам да има прелоадър.
 
Инклудвам си направо файла, който проверява домейни. Там във файла си е всичко, форма, пхп код и тн.
 
Гледай какво ще направиш сега.
Изведи проверката на домейни в отделен файл.
Направи формата с която избираш кой домейн да провериш, при събмит да ти зарежда с аякс страницата с проверката, като й зададеш параметрите от формата.
Докато това се обработва слагаш една картинка която да показва, че нещо зарежда. После само си вадиш html-а от аякс заявката и го поставяш в контейнера и толкова.
Ако ти трябва помощ или разяснения питай :)
 
1. Свали си jQuery
2. Този код го сложи в <head> </head> частта на сайта ти.
В css-а си настрой как да ти изглежда полето в което излизат резултатите.
Код:
<script>
$( document ) . ready(function(){
	
	$( '#domainCheck' ) . submit(function( e ){
		
		e . preventDefault();
		var $submitter = $( '#Submitter' );
		var submitterText = $submitter . val();
		$( '#domainResult' ) . fadeOut( 'slow' );
		$ . ajax({
			type: 'POST', 
			url: 'domainCheck.php', 
			data: { domainCheck : true,
			  		domainName: $( '#domainName' ) . val()
			},
			contentType: 'application/x-www-form-urlencoded;charset=windows-1251', 
			success: function( data ){
				$( '#domainResult' ) . html( data ) . fadeIn( 'slow' ) ;
				$( '#domainName' ) . attr( 'disabled', false );
			 	$submitter . val( submitterText );
			} 
		});
		$( '#domainName' ) . attr( 'disabled', true );
		$submitter . val( 'processing...' );
	});
});
</script> 
<style>
	#domainResult{
		display: none;
		width: 150px;
		height: 300px;
		border: 1px solid red;	
		color: green;
	}
</style>

3. Поставяш този код, където искаш да ти се показва формата на страницата.
Код:
<?php
	echo "<h2>ПРОВЕРКА НА ДОМЕЙН</h2><img src='img/domains.jpg' alt='domain check' /><br/><br/>
      <form action='' method='post' name='domain' id='domainCheck' align='center'>
      <input type='text' name='domainName' id='domainName'>
	  <input type='submit' name='domainCheck' value='провери' id='Submitter'></form>
	  <div id='domainResult'></div>";
?>

4. Това е файла в който се извършва проверката. Именувай го domainCheck.php. Ако искаш да промениш името, просто сложи новото име в джаваскрипт кода който ти дадох по-нагоре.
Код:
<?php
	function checkDomain( $domain, $server, $findText ) {
	    $con = fsockopen( $server, 43 );
	    if ( !$con )
	        return false;
	    fputs( $con, $domain . "\r\n" );
	    $response = ' :';
	    while ( !feof($con) ) {
	        $response .= fgets( $con, 128 );
	    }
	    fclose( $con );
	    if ( strpos($response, $findText) ) {
	        return true;
	    }
	    else {
	        return false;
	    }
	}

	function showDomainResult( $domain, $server, $findText ) {
	    if ( checkDomain($domain, $server, $findText) ) {
	        echo "<tr><td>$domain</td><td>свободен</td></tr>";
	    }
	    else
	        echo "<tr><td>$domain</td><td>зает</td></tr>";
	}

	if ( isset($_POST['domainCheck']) ) {
		header( 'Content-Type: text/html;charset=windows-1251' );
	    $domainbase = ( isset($_POST['domainName']) ) ? $_POST['domainName'] : '';
	    $d_all = 'all' ? 'all' : '';
	    if ( strlen($domainbase) > 2 ) {
	        echo "<table align='center' style='text-align: left;'>";
	        if ( $d_all != '' )
	            showDomainResult( $domainbase . ".com", 'whois.crsnic.net', 'No match for' );
	        if ( $d_all != '' )
	            showDomainResult( $domainbase . ".net", 'whois.crsnic.net', 'No match for' );
	        if (  $d_all != '' )
	            showDomainResult( $domainbase . ".org", 'whois.publicinterestregistry.net',
	                'NOT FOUND' );
	        if ( $d_all != '' )
	            showDomainResult( $domainbase . ".info", 'whois.afilias.net', 'NOT FOUND' );
	        echo "</table>";
	    }
	    else {
	        echo "Минимално 3 символа!";
	    }
	}
?>

При мен работи перфектно.
Ако искаш нещо друго, пиши :)
 

Back
Горе