jquery.newsticker.js

2009 blev det här scriptet till.

/*
	Made By Peter Lindblom 2009
	https://www.plweb.se
	ver 1.000
*/

(function ($) {
	
	$.fn.startNewsTicker = function (settings) {

		var config = {
			startPosition: -20, 
			stopPosition: 100,
			pausPosition: 50,
			units: "px",
			waitToStartForMS:0,
			waitOnPausPositionForMS:1000,
			animationDelayMS:25
		};
		
		return this.each(function () {
			
			this.newsTicker = function (currentHtmlObj) {
				var childElements = [],
				currentElement = 0,
				lastChildElement = 0,
				startTimer = null,
				timer = null, 
				localConfig = $.extend({}, config, settings),
				delay = localConfig.animationDelayMS,
				
				startNewsTicker = function () {
					childElements = $(currentHtmlObj).children();
					lastChildElement = (childElements.length -1);
					
					$.each($(currentHtmlObj).children(), function () {
						$(this).css("top",localConfig.startPosition + localConfig.units);
						$(this).css("position","absolute");
						$(this).hide();
					});
					
					startTimer = setTimeout(tick, localConfig.waitToStartForMS);
				},
				
				tick = function () {
											
					if( (currentElement <= lastChildElement) && ( parseInt(currentJQueryObj(currentElement).css("top"),10) !== localConfig.stopPosition ) ){
						delay = localConfig.animationDelayMS;
						currentJQueryObj(currentElement).show();
						if (localConfig.startPosition < localConfig.stopPosition) {
							currentJQueryObj(currentElement).css("top", ( parseInt(currentJQueryObj(currentElement).css("top"), 10) + 1 ) + localConfig.units  );
						}else if (localConfig.startPosition > localConfig.stopPosition) {
							currentJQueryObj(currentElement).css("top", ( parseInt(currentJQueryObj(currentElement).css("top"), 10) - 1 ) + localConfig.units  );
						}
						
						if( parseInt(currentJQueryObj(currentElement).css("top"), 10) === localConfig.stopPosition ){
							currentJQueryObj(currentElement).hide();
							currentJQueryObj(currentElement).css("top",localConfig.startPosition + localConfig.units);
							currentElement = currentElement + 1; 
							if (currentElement > lastChildElement ){
								currentElement = 0;
							}
						}
					}
					
					if( (currentElement <= lastChildElement) && ( parseInt(currentJQueryObj(currentElement).css("top"), 10) === localConfig.pausPosition ) ){						
						delay = localConfig.waitOnPausPositionForMS;						
					}
					
					timer = setTimeout(tick, delay);
					
				},
				currentJQueryObj = function (pos) {
					return $(childElements[currentElement]);
				};
				
				startNewsTicker();
			};
			
			this.newsTicker(this);
			
		});
	};
	
		
	
}(jQuery));


debugger

Det flesta webbläsare har stöd för nyckelordet “debugger” nu vilket gör du kan skriva debugger; i javascript koden när du utvecklar. Vissa webbläsare kräver dock att har utvecklarverktygen igång.

var test = function(hello){
  debugger;
  console.log(hello);
};

jQuery Validation Plugin

Idag har jag hunnit prova jQuery Validation Plugin och jag måste säga att jag är ganska imponerad för att den är väldigt enkel att använda men ändå kraftfull i den bemärkelsen att det finns många inställningsmöjligheter. Jag har slängt ihop ett litet pseudokod exempel här under.

jQuery plugin: Validation

En artikel om jQuery plugin: Validation


<script type="text/javascript" src="/js/jquery.validate.js"></script>

<form action="/login.php" method="post" id="topLoginForm">
	<ul>
		<li><label for="username">e-post:</label> 
                    <input id="username" type="text" name="username" class="required email" /></li>
		<li><label for="password">lösenord:</label>
                     <input id="password" type="password" name="password" class="required" /></li>		
		<li><input type="submit" value="Logga in" /></li>	
	</ul>
</form>


<script type="text/javascript">

     //Svenska felmeddelanden
    $.extend($.validator.messages, {
    	  required: "Du har glömt att fylla i detta fält",
    	  email: "Fyll i en giltig e-postadress"    	  
    });
    
    $(document).ready(function(){
       $("#topLoginForm").validate();
    });           
	    
    
});

</script>

Hitta bilder som inte har ändrats på ett tag och radera dem

Om du vill ta bort JPEG-bilder som inte har blivit modifierade på ett tag kan det här vara något för dig. Med find så kommandot i linux kan man söka efter filer per namn och senast ändrat tid och efter filtyp mm.

Här under använder jag find för att hitta alla filer som inte har ändrats på mer än sju dagar och slutar på *.jpg. Filerna som hittade skickas senare vidare till rm kommandot som tar bort filerna. Obs används på egen risk

find /home/peter/bashtest/ -mtime +7 -type f -name '*.jpg' -print0 | xargs -0 rm

Jag har kört detta bashscript innan för att testa kommandona ovan för att jag gillar tdd 🙂 Scriptet nedan skapar tomma filera med två olika ändringsdatum.

#!/bin/bash 

i=0
max=10
while [ "$i" -lt "$max" ]
do
	touch -am -t '201110090800'  "bild$i.jpg"
	touch -am -t '201110140800'  "bild$i$i.jpg"
  	i=`expr $i + 1`
done

http://www.computerhope.com/unix/utouch.htm
http://content.hccfl.edu/pollock/Unix/FindCmd.htm
http://linux.about.com/od/commands/a/blcmdl1_findx.htm

RegExpFiddle.com

Jag började för ett tag sedan med en ny webbtjänst vid namn av RegExpFiddle.com som skall underlätta experimenterande med Regular Expression.

Tjänsten är fortfarande inte är helt färdig och den kommer nog aldrig att bli helt färdig.

Under utvecklingen har jag andvänt mig av Jasmine BBD ramverk och till viss del även JSlint.com