Archive for category JavaScript
Understanding Pointers in JavaScript
Posted by jdempcy in JavaScript on January 21, 2010
Pointers can sometimes be a confusing topic. In JavaScript, it is perhaps even moreso than in other languages. The confusion arises because the var keyword is serving double duty. It is used to define variables, as is commonly realized. But it is also used to make references– or point to– other variables, functions and properties. Read the rest of this entry »
Javascript 1.8 forEach – supported in Safari, Firefox and beyond
Posted by grandecomplex in JavaScript on September 21, 2009
If you don’t have to support IE, you can start taking advantage of JavaScript 1.8 features such as the forEach construct. It’s nicer than a conventional for loop when you are iterating over every item in an array. Read the rest of this entry »
Random Integer Javascript snippet
Posted by admin in JavaScript on September 5, 2009
returns a random number between two digits passed in as arguments.
function randomInteger(low, high)
{
return low + Math.floor(Math.random() * (high - low));
}
Setting Up a Windows Vista Development Environment
Posted by jdempcy in JavaScript, jQuery on July 13, 2009
I recently purchased a new computer and was faced with the task of setting up a fresh installation of Windows Vista with all of the web development goodies I’ve come to know and love.
Here’s a walkthrough for what I did to get set up, starting from square one. This is literally everything I did and installed from when I was first able to access the desktop after a fresh install.
Calling Any JS Lightbox from Flash using jQuery
Posted by grandecomplex in JavaScript, jQuery on July 13, 2009

Thanks to Flash’s ExternalInferface’s API you can call JavaScript or receive a callback from JavaScript using Flash. In this example I will show you how to call any Lightbox that is in JavaScript from Flash.
import flash.external.ExternalInterface;
button.addEventListener(MouseEvent.CLICK, external, false, 0, true);
function external(evt:MouseEvent):void {
ExternalInterface.call("external", "lightbox/photos/image1.jpg");
}
function external(path) { // pass in the correct path to the function so we only need one for infinite amount of calls from flash
// if the lightbox does not exist we will make it
if ($('a#lightbox').length == 0) {
$("body").append("calling js lightbox from flash");
$('a#lightbox').lightBox();
// if it already exists but the path is different we will set the new path
} else if ($('a#lightbox').attr("href") != path) {
$('a#lightbox').attr("href", path);
}
// now we will simulate the click here.
$('a#lightbox').trigger("click");
}
Adding Share on Facebook Links
Posted by grandecomplex in JavaScript on July 13, 2009
You know those Facebook links that allow you to post directly on Facebook? They are both highly useful and easy to add to a site. And, they are incredibly easy to add! Read the rest of this entry »
What’s New in MooTools 1.2
Posted by admin in JavaScript, MooTools on June 17, 2008
I’m happy to announce that MooTools (Wikipedia link) has released version 1.2 of their excellent JavaScript library. MooTools, which stands for ‘My Object Oriented Tools’, was developed in 2006 by Valerio Proietti and his colleagues. It evolved out of Moo.fx, a lightweight effects library which plugged into the Prototype framework. It was similar, although smaller (and in my opinion, better) than the scriptaculous library. Moo.fx has now been fully integrated into the MooTools library and is not being developed further at this time. Read the rest of this entry »
JavaScript Image Rotator Viewer
Posted by grandecomplex in JavaScript on June 15, 2008
See a demo at http://www.alexgrande.com
It is the images on the top right.
I wrote this in Object Oriented format so you can use it again and again on the same page.
Javascript:
var ImageGallery = new Function();
ImageGallery.prototype = {
initialize: function(mainImage, listWrapper){
// large image that is shown
this.mainImage = document.getElementById(mainImage);
// a list of all the anchors for the thumbnails. Must be a tags for graceful degradation
this.thumbnails = document.getElementById(listWrapper).getElementsByTagName("a");
// 0 image is shown already so the first one we want to switch to is the next image or 1
this.i = 1;
// this is a work around to allow calling this within nested functions
var Scope = this;
// Here starts the rotating of the image by first focusing the thumbnail, then switch the primary image
this.start = setInterval(function(){
Scope.focusCall();
// Here we choose 5 seconds in between each image change. You may want to change this.
}, 5000);
// This lets the browser know to do something if one of the thumbnails is clicked
this.clickEvent();
},
// This stops the rotation of the thumbnails. We do that if the user clicks one of them
stop: function(){
if (this.start)
clearInterval(this.start);
},
// When an thumbnail loses focus we must use this css class now
resetBorderColor: function(reset){
reset.getElementsByTagName("img")[0].className="thumbnailDefault";
},
// When the thumbnail gains focus we most give it the corresponding styles
focusBorderColor: function(focused){
focused.getElementsByTagName("img")[0].className="thumbnailFocus";
},
// Here we grab the href of the a tags and make their path be the path of the current image
imageRotator: function(){
this.mainImage.src = this.thumbnails[this.i].href;
this.previousImage = this.thumbnails[this.i];
this.i++;
// This closes the loop for the rotation
if (this.i == this.thumbnails.length)
this.i = 0;
},
// We focus the thumbnail
focusCall: function(){
// reset the last image that was shown
if (typeof this.previousImage != 'undefined')
this.resetBorderColor(this.previousImage);
// Remember the newer one
this.currentImage = this.thumbnails[this.i];
// Give the newer image some focus
this.focusBorderColor(this.currentImage);
var Scope = this;
// Les that have image rotate to the new one 300 miliseconds after the thumbnails get the css focus
window.setTimeout(function(){
Scope.imageRotator()
// You may want to change this number
}, 300);
},
// This is what happens when you click the thumbnails
clickEvent: function(){
var Scope = this;
for (k = 0; k < this.thumbnails.length; k++) {
this.thumbnails[k].onclick = function(){
if (typeof Scope.previousImage != 'undefined')
Scope.resetBorderColor(Scope.previousImage);
Scope.focusBorderColor(this);
// Stop the rotation
Scope.stop();
// This is where the switching happens for the click
Scope.mainImage.src = this.href;
Scope.previousImage = this;
// Make sure to not allow default behavior of the a tag
return false;
}
}
}
}
This is to load it on the window object and create an instance of the viewer
var imageGallery1 = new ImageGallery();
// Not sure where I got this.. I didn't write this but it allows you to load multiple functions on the window.onload.
function addLoadEvent(func) {
var oldonload = window.onload;
if (typeof window.onload != "function") {
window.onload = func;
} else {
window.onload = function() {
oldonload();
func();
}
}
}
var onLoad = function() {
imageGallery1.initialize("index_largepic_display", "index_thumbnail_display");
}
addLoadEvent(onLoad);
For the version on my homepage alexgrande.com here is the CSS and HTML. The CSS is up to you but I suggest following a similar mode with the HTML
HTML:
<div id="gallery">
<ul id="index_thumbnail_display">
<li>
<a href="images/index/fernlarge.jpg" >
<img class="thumbnailDefault" src="images/index/fernthumb.jpg" alt="A picture of a fern just as it is unraveling in front of a log." />
</a>
</li>
<li>
<a id="partythumb" href="images/index/partylarge.jpg" >
<img class="thumbnailDefault" src="images/index/partythumb.jpg" alt="Downtown Seattle at night." />
</a>
</li>
<li>
<a id="alexthumb" href="images/index/alexlarge.jpg" >
<img class="thumbnailDefault" src="images/index/alexthumb.jpg" alt="I'm on a laptop at night in a field on using the internet via hacking a telephone box...legally." />
</a>
</li>
<li>
<a href="images/index/trucks.jpg" >
<img class="thumbnailDefault" alt="Trucks lined up in Sodo in Seattle at night." src="images/index/trucksthumb.jpg" />
</a>
</li>
</ul>
<img id="index_largepic_display" src="images/index/fernlarge.jpg" alt="A picture of a fern just as it is unraveling in front of a log." />
</div>
CSS:
div#gallery {
position:relative;
float: left;
overflow: hidden;
width: 65%;
}
img#index_image_display {
border:1px black solid;
margin-bottom:20px;
}
ul#index_thumbnail_display {
list-style-type:none;
position:absolute;
top: 0;
left: 0;
margin-top: 15px;
}
ul#index_thumbnail_display li a {
padding:10px;
}
.thumbnailDefault {border: 1px solid gray !important;}
.thumbnailFocus {border: 1px solid red !important;}
Saving State: What To Do When Users Leave
Posted by admin in JavaScript on June 12, 2008
In this era of rich JavaScript applications, so much
focus is given to the features of the application that one
crucial element is often overlooked: What happens when the
user leaves the page? We take it for granted that pages
will look the same when we leave and return, but a new
question merges for sites using rich JavaScript
interaction: If the user leaves and returns to the page,
will the application state be preserved? Read the rest of this entry »
Stylize the last element in jQuery
Posted by grandecomplex in JavaScript, jQuery on June 12, 2008
Here is how to stylize the border of the last element using jQuery.
$(document).ready(function() {
$("table.innercart tr:last").css("border", "none");
}); Read the rest of this entry »

Activity
Geir Freysson
Andrew DiFiore
zeming
Arun, Neil, shashwat
Eric, Fernando Zanatta, Jörn Zaefferer