WebEx Meeting Integration Steps

November 5, 2008 06:18 by admin

In order to integrate WebEx into web application we need to complete the following steps:

  1. Create a developer account on WebEx developer community
    We need to create a developer account in the sandbox environment. The credentials identify and authenticate your web application request when you make an API call to WebEx.
  2. Request & Response
    Make the API calls, check the response and save to database or send the meeting details to participants via email

Creating WebEx Developer Account

You will have to create a Developer Account on the WebEx developer environment in order to test your application.  Following are the steps:

  1. Sign up at http://developers.webex.com/ with a valid email id to recieve your credentials to the WebEx system.
  2. After signing up, account information will be sent to your mail id. It may take more time, as each application will be manually reviewed by WebEx team.
  3. Email will have the SITE ID and PARTNER ID of your account.
  4. You have to use the above account information (USERNAME, PASSWORD, SITE ID, and PARTNER ID) in all the requests to authenticate your web application with WebEx.
  5. Check API Reference Guide to understand more on Parameter nodes and Key Words for the requests to be made to organise meetings.
    http://www.webex.com/pdf/white_paper_integration_APIs.pdf page number 14 onwards.

Creating Meeting (Sample Code)

In ASP.NET page, the following function will be called to schedule a meeting. The parameters will be Meeting Name, its Date and Time. In this example WebEx ID (Email Id), Password, Site Id, and Partner Id is hardcoded.

    protected void SendCreateMeetingRequestToWebEx(string MeetingName, string MeetingDate, string MeetingTime)
    {
        string strReq = @"<?xml version=""1.0"" encoding=""UTF-8""?>" +
                      "<serv:message xmlns:xsi=" + "\"" + 
                              "http://www.w3.org/2001/XMLSchema-instance" + "\"" + ">" +
                        "<header>" +
                            "<securityContext>" +
                                "<webExID>xxx@xxx.xxx</webExID>" +
                                "<password>xxxxxx</password>" +
                                "<siteID>000000</siteID>" +
                                "<partnerID>XXXX0000</partnerID>" +
                            "</securityContext>" +
                        "</header>" +
                        "<body>" +
                          "<bodyContent xsi:type=" + "\"" +
                             "java:com.webex.service.binding.meeting.CreateMeeting" + 
                             "\"" + ">" +
                            "<metaData>" +
                              "<confName>" + MeetingName + "</confName>" +
                            "</metaData>" +
                            "<schedule> " +
                              "<startDate>" + MeetingDate + " " + MeetingTime + ":00" + "</startDate> " +
                            "</schedule>" +
                          "</bodyContent>" +
                        "</body>" +
                      "</serv:message>";
        HttpWebRequest hwrRequest = ((HttpWebRequest)(HttpWebRequest.Create(" https://apidemoeu.webex.com/WBXService/XMLService")));

        hwrRequest.Method = "POST";
        hwrRequest.ContentType = "text/xml";
        UTF8Encoding encoding = new UTF8Encoding();
        byte[] postBytes = encoding.GetBytes(strReq);
        hwrRequest.ContentLength = postBytes.Length;
        Stream postStream = hwrRequest.GetRequestStream();
        postStream.Write(postBytes, 0, postBytes.Length);
        postStream.Close();
        HttpWebResponse hwrResponse = ((HttpWebResponse)(hwrRequest.GetResponse()));
        Stream responseStream = hwrResponse.GetResponseStream();
        StreamReader sr = new StreamReader(responseStream);
        string respString = sr.ReadToEnd();
        respString = respString.Trim();

        /*Here we are writing to a directory as XML file to check*/
        /*Instead you read the XML nodes and find, is it success or a failure*/
        /*If success, you will have Host meeting URL and Attendee meeting URL in the Response*/
        TextWriter res = new StreamWriter(Server.MapPath(@"WebExReqRes\CreateMeeting.xml"));
        res.WriteLine(respString.ToString(), true);
        res.Close();
    }

The response will have the MeetingKey, Host URL, and Attendee URL if it is success. Now you have to push them to database to show respective URL to your users based on profile. And also you can frame emails and send to them handy.

 

Further the MeetingKey you have to use to Update Meeting or Delete a Meeting or to create Join Meeting URL for each individual attendee seperately instead of common Attendee URL.


WebEx Meeting Integration Steps

November 5, 2008 06:18 by admin

In order to integrate WebEx into web application we need to complete the following steps:

  1. Create a developer account on WebEx developer community
    We need to create a developer account in the sandbox environment. The credentials identify and authenticate your web application request when you make an API call to WebEx.
  2. Request & Response
    Make the API calls, check the response and save to database or send the meeting details to participants via email

Creating WebEx Developer Account

You will have to create a Developer Account on the WebEx developer environment in order to test your application.  Following are the steps:

  1. Sign up at http://developers.webex.com/ with a valid email id to recieve your credentials to the WebEx system.
  2. After signing up, account information will be sent to your mail id. It may take more time, as each application will be manually reviewed by WebEx team.
  3. Email will have the SITE ID and PARTNER ID of your account.
  4. You have to use the above account information (USERNAME, PASSWORD, SITE ID, and PARTNER ID) in all the requests to authenticate your web application with WebEx.
  5. Check API Reference Guide to understand more on Parameter nodes and Key Words for the requests to be made to organise meetings.
    http://www.webex.com/pdf/white_paper_integration_APIs.pdf page number 14 onwards.

Creating Meeting (Sample Code)

In ASP.NET page, the following function will be called to schedule a meeting. The parameters will be Meeting Name, its Date and Time. In this example WebEx ID (Email Id), Password, Site Id, and Partner Id is hardcoded.

    protected void SendCreateMeetingRequestToWebEx(string MeetingName, string MeetingDate, string MeetingTime)
    {
        string strReq = @"<?xml version=""1.0"" encoding=""UTF-8""?>" +
                      "<serv:message xmlns:xsi=" + "\"" + 
                              "http://www.w3.org/2001/XMLSchema-instance" + "\"" + ">" +
                        "<header>" +
                            "<securityContext>" +
                                "<webExID>xxx@xxx.xxx</webExID>" +
                                "<password>xxxxxx</password>" +
                                "<siteID>000000</siteID>" +
                                "<partnerID>XXXX0000</partnerID>" +
                            "</securityContext>" +
                        "</header>" +
                        "<body>" +
                          "<bodyContent xsi:type=" + "\"" +
                             "java:com.webex.service.binding.meeting.CreateMeeting" + 
                             "\"" + ">" +
                            "<metaData>" +
                              "<confName>" + MeetingName + "</confName>" +
                            "</metaData>" +
                            "<schedule> " +
                              "<startDate>" + MeetingDate + " " + MeetingTime + ":00" + "</startDate> " +
                            "</schedule>" +
                          "</bodyContent>" +
                        "</body>" +
                      "</serv:message>";
        HttpWebRequest hwrRequest = ((HttpWebRequest)(HttpWebRequest.Create(" https://apidemoeu.webex.com/WBXService/XMLService")));

        hwrRequest.Method = "POST";
        hwrRequest.ContentType = "text/xml";
        UTF8Encoding encoding = new UTF8Encoding();
        byte[] postBytes = encoding.GetBytes(strReq);
        hwrRequest.ContentLength = postBytes.Length;
        Stream postStream = hwrRequest.GetRequestStream();
        postStream.Write(postBytes, 0, postBytes.Length);
        postStream.Close();
        HttpWebResponse hwrResponse = ((HttpWebResponse)(hwrRequest.GetResponse()));
        Stream responseStream = hwrResponse.GetResponseStream();
        StreamReader sr = new StreamReader(responseStream);
        string respString = sr.ReadToEnd();
        respString = respString.Trim();

        /*Here we are writing to a directory as XML file to check*/
        /*Instead you read the XML nodes and find, is it success or a failure*/
        /*If success, you will have Host meeting URL and Attendee meeting URL in the Response*/
        TextWriter res = new StreamWriter(Server.MapPath(@"WebExReqRes\CreateMeeting.xml"));
        res.WriteLine(respString.ToString(), true);
        res.Close();
    }

The response will have the MeetingKey, Host URL, and Attendee URL if it is success. Now you have to push them to database to show respective URL to your users based on profile. And also you can frame emails and send to them handy.

 

Further the MeetingKey you have to use to Update Meeting or Delete a Meeting or to create Join Meeting URL for each individual attendee seperately instead of common Attendee URL.


Apache Windows .htaccess - Password Protect Parent and Allow Sub Directory

August 6, 2008 02:10 by admin

To protect a directory in Apache web server, you need to create two files “.htaccess” and “.htpasswd”. “.htaccess” has to be placed under your designated directory. Once you place “.htaccess” under a directory, all its sub directories will inherit its parent properties. Each folder can have its own “.htaccess” file, if it needs to override or extend its parents’ properties.

“.htpasswd” is for storing Usernames and Passwords. It can be placed in the each directory or at a common place to maintain all logins at one place.

In “.htaccess” file you have to specify the path to “.htpasswd”. To protect a web folder the contents in “.htaccess” will be

AuthUserFile C:\wamp\passwords\.htpasswd
AuthName "This is Hasten secret area"
AuthType Basic
<Limit GET POST>
require valid-user
</Limit>

kick it on DotNetKicks.com  

To create “.htpasswd” file with Usernames and Passwords in it, you can find a utility “htpasswd.exe” under “<Apache’s installation directory>/bin” or you can create them online using Dave Child’s page.

In command prompt navigate to the above directory and type below command
htpasswd .htpasswd a-user-name

It creates “.htpasswd” file under “<Apache’s installation directory>/bin” itself. Repeat the same command to add more usernames. Cut the file from there and paste it under desired place as mentioned in the “.htaccess” – “AuthUserFile”.

If you create with Dave Child’s page, paste the text in notepad and save file as “.htpasswd” in desired directory as mentioned in the “.htaccess” – “AuthUserFile”.

Up to now we have seen password protecting a parent folder. Now by placing the following “.htaccess” file in sub folder will make it unprotected. The contents in “.htaccess” will be

Allow from all
Satisfy Any

That’s it! It’s simple!

Are you facing any problem, let’s do discuss here, post your comment.
Let me know your feedback.


Apache Windows .htaccess - Password Protect Parent and Allow Sub Directory

August 6, 2008 02:10 by admin

To protect a directory in Apache web server, you need to create two files “.htaccess” and “.htpasswd”. “.htaccess” has to be placed under your designated directory. Once you place “.htaccess” under a directory, all its sub directories will inherit its parent properties. Each folder can have its own “.htaccess” file, if it needs to override or extend its parents’ properties.

“.htpasswd” is for storing Usernames and Passwords. It can be placed in the each directory or at a common place to maintain all logins at one place.

In “.htaccess” file you have to specify the path to “.htpasswd”. To protect a web folder the contents in “.htaccess” will be

AuthUserFile C:\wamp\passwords\.htpasswd
AuthName "This is Hasten secret area"
AuthType Basic
<Limit GET POST>
require valid-user
</Limit>

kick it on DotNetKicks.com  

To create “.htpasswd” file with Usernames and Passwords in it, you can find a utility “htpasswd.exe” under “<Apache’s installation directory>/bin” or you can create them online using Dave Child’s page.

In command prompt navigate to the above directory and type below command
htpasswd .htpasswd a-user-name

It creates “.htpasswd” file under “<Apache’s installation directory>/bin” itself. Repeat the same command to add more usernames. Cut the file from there and paste it under desired place as mentioned in the “.htaccess” – “AuthUserFile”.

If you create with Dave Child’s page, paste the text in notepad and save file as “.htpasswd” in desired directory as mentioned in the “.htaccess” – “AuthUserFile”.

Up to now we have seen password protecting a parent folder. Now by placing the following “.htaccess” file in sub folder will make it unprotected. The contents in “.htaccess” will be

Allow from all
Satisfy Any

That’s it! It’s simple!

Are you facing any problem, let’s do discuss here, post your comment.
Let me know your feedback.


Configuring Apache and IIS Web Servers on Single Machine for 80 Port

July 23, 2008 06:10 by admin

Before on Windows 2003 server, this same configuration has been done successfully. Now on Windows 2008 Web edition tried today it worked too.

First need to download the Support Tools from Microsoft site. Of course it is Windows Server 2003 Service Pack 1 32-bit Support Tools, but we need “httpcfg” command mainly to do this exercise.

kick it on DotNetKicks.com

In order to configure IIS7 and Apache on same machine for port 80, need 2 or more IP addresses configured to your machines’ network card. So that we can use one for Apache and the other to IIS.

In windows 2008 to add more IP is to LAN card, open Control Panel → Network and Sharing Center → Manage network connections

On your ‘Local Area Connection’ right click and open properties. Double click on IP V4 option to open it properties. From ‘Advance’ dialog you can add more IPs to the machine.

To run the support tools commands, better to be in safer side, open the command prompt with administrator privileges.

Change your path to the support tools installed directory, normally

C:\Program Files\Support Tools>

Next execute these commands one after the other to set the IP

httpcfg set iplisten -i xxx.xxx.xxx.xxx

to confirm

httpcfg query iplisten

this will list the IPs that are binded to IIS.

then stop all HTTP services and restart

net stop http /y net start w3svc

This will stop

Windows Remote Management (WS-Management)
World Wide Web Publishing Service
Print Spooler
IIS Admin Service

But it may start only ‘World Wide Web Publishing Service’, so restart your machine once the above setup is done, that will start other dependent services.

In some cases, like DotNetPanel control panel it looks for local loop back URL 127.0.0.1. So need to add the same and restart the HTTP service again.

httpcfg set iplisten -i 127.0.0.1

In Apache’s httpd.conf you can make it listen to 80 port and add IP to your web site

<VirtualHost XXX.XXX.XXX.XXX:80>
    DocumentRoot C:/my.website.path/
    ServerName example.com
    ServerAlias *.example.com
</VirtualHost>

If you have any queries and like to discuss please post your comments below.

 


Configuring Apache and IIS Web Servers on Single Machine for 80 Port

July 23, 2008 06:10 by admin

Before on Windows 2003 server, this same configuration has been done successfully. Now on Windows 2008 Web edition tried today it worked too.

First need to download the Support Tools from Microsoft site. Of course it is Windows Server 2003 Service Pack 1 32-bit Support Tools, but we need “httpcfg” command mainly to do this exercise.

kick it on DotNetKicks.com

In order to configure IIS7 and Apache on same machine for port 80, need 2 or more IP addresses configured to your machines’ network card. So that we can use one for Apache and the other to IIS.

In windows 2008 to add more IP is to LAN card, open Control Panel → Network and Sharing Center → Manage network connections

On your ‘Local Area Connection’ right click and open properties. Double click on IP V4 option to open it properties. From ‘Advance’ dialog you can add more IPs to the machine.

To run the support tools commands, better to be in safer side, open the command prompt with administrator privileges.

Change your path to the support tools installed directory, normally

C:\Program Files\Support Tools>

Next execute these commands one after the other to set the IP

httpcfg set iplisten -i xxx.xxx.xxx.xxx

to confirm

httpcfg query iplisten

this will list the IPs that are binded to IIS.

then stop all HTTP services and restart

net stop http /y net start w3svc

This will stop

Windows Remote Management (WS-Management)
World Wide Web Publishing Service
Print Spooler
IIS Admin Service

But it may start only ‘World Wide Web Publishing Service’, so restart your machine once the above setup is done, that will start other dependent services.

In some cases, like DotNetPanel control panel it looks for local loop back URL 127.0.0.1. So need to add the same and restart the HTTP service again.

httpcfg set iplisten -i 127.0.0.1

In Apache’s httpd.conf you can make it listen to 80 port and add IP to your web site

<VirtualHost XXX.XXX.XXX.XXX:80>
    DocumentRoot C:/my.website.path/
    ServerName example.com
    ServerAlias *.example.com
</VirtualHost>

If you have any queries and like to discuss please post your comments below.

 


ExtJS Tips for GridPanel Row - Marking, Colouring, Focusing & Special Key Event Firing

March 16, 2008 06:31 by admin

ExtJs, a powerful library for developing web application. Bit complex to learn & start with, but once you practice some examples it becomes easy. You need to have good knowledge in Object Oriented Programming to extend & implement your own features or controls, and to see power of JavaScript & ExtJS. Working with ExtJs is really interesting!

Here listing some hints that may help you in your programming. Array-Grid example that comes with ext-2.0.2 is modified to demonstrate the same.

  1. Focusing grid on load to activate down & up arrows
  2. Colouring grid rows based on some criteria
  3. Key events (especially Navigation keys) usage in grid with Internet Explorer (IE7) & Firefox
  4. Marking selected grid row with some icon / text color change

The code in action can be seen at ExtJs Array Grid Sample
Same can be downloaded from: ExtJs Array Grid Sample - Source Code (~311 KB since extjs images & base scripts).
Main files that are modified: array-grid.html, array-grid.js & examples.css.



1. To focus the grid.

After rendering the grid
    grid.getSelectionModel().selectFirstRow();
    grid.getView().focusEl.focus();


2. Row colouring

Mainly this is CSS twist with use of getRowClass to change the text color of whole row.
    grid.getView().getRowClass = function(record, index){
      return (record.data.change<0.7 ? (record.data.change<0.5 ? (record.data.change<0.2 ? 'red-row' : 'green-row') : 'blue-row') : '');
    };

getRowClass changes the row CSS properties its applied for, but inside a row each cell element will have its own CSS class again.

In CSS for ‘cell-inner’ we need to set the font color.
    .blue-row .x-grid3-cell-inner{
      color:blue;
    }
    .red-row .x-grid3-cell-inner{
      color:red;
    }
    .green-row .x-grid3-cell-inner{
      color:green;
    }


3. Key Events

While working GridPanel, along with focusing the first row we were in a need of implementing the making of rows selected by user with Left Arrow & Right Arrow, as well they can navigate up & down with Up Arrow & Down Arrow.

The below code works partially in IE. It won’t capture navigational (along with arrows, page up, page down, home, end) keys & some special keyevents. But it works perfect in Firefox. 
    grid.on('keypress', function(e){
      alert(e.getKey());
    });

Whereas ‘keydown’ keyboard event works perfectly in both browsers for all keys. But the e.getKey() in IE won’t get the key code for navigational keys & some special keys. So need to change that to normal “e.keyCode”.

There maybe some property to set in ExtJS like in KeyNav -> forceKeyDown to true to make the getKey & keypress work in IE & FF. Not sure where & how exactly, but now the above quick solution worked without any problem.

So the code will be,
    grid.on('keydown', function(e){
      alert(e.keyCode);
    });



4. Marking Selected Grid Rows

In order to mark the selected rows, experimented on task example provided in ExtJs with Google Gears. Before experimenting used the data.columnName = ‘some value’ to set & gridview’s refresh() to apply. But at a time only a row used to change & previous selected rows used to change back.

In this same Array-Grid example added a new boolean value ‘true - flase’ column as first column ‘Status’. Added a ‘renderer’ to this new column, which sets a css class with empty box image if vale is false / tick mark if value true. Also 2 events, one mouse click and the other keydown event to grid to change the value of particular data element. Here the tricky point is if we change the value of it in store record, then automatically the respective CSS will be applied to it through its ‘renderer’. As said before if we change the ‘data’ in grid it won’t work, we need to apply the change of value in record of the store.

The code & css is 
    grid.on('keydown', function(e){
         if(e.keyCode == 37){
           var rec = grid.getSelectionModel().getSelected();
           rec.set('status', false);
         }else if(e.keyCode == 39){
           var rec = grid.getSelectionModel().getSelected();
           rec.set('status', true);
         }
    });
 
    grid.on('rowclick', function(grid, rowIndex, e){
      var rec = grid.store.getAt(rowIndex);
      rec.set('status', !rec.get('status'));
      grid.getView().focusEl.focus();
    });

    .task-completed, .task-check-over {
         width:16px;
         height:16px;
         cursor:pointer;
         background: transparent url(../images/check.gif) no-repeat center -16px;
    }
    .task-check-over {
         background: transparent url(../images/check.gif) no-repeat center -32px;
    }

The above code in action can be seen at ExtJs Array Grid Sample
Same can be downloaded from: ExtJs Array Grid Sample - Source Code (~311 KB since extjs images & base scripts).
Main files that are modified: array-grid.html, array-grid.js & examples.css.


ExtJS Tips for GridPanel Row - Marking, Colouring, Focusing & Special Key Event Firing

March 16, 2008 06:31 by admin

ExtJs, a powerful library for developing web application. Bit complex to learn & start with, but once you practice some examples it becomes easy. You need to have good knowledge in Object Oriented Programming to extend & implement your own features or controls, and to see power of JavaScript & ExtJS. Working with ExtJs is really interesting!

Here listing some hints that may help you in your programming. Array-Grid example that comes with ext-2.0.2 is modified to demonstrate the same.

  1. Focusing grid on load to activate down & up arrows
  2. Colouring grid rows based on some criteria
  3. Key events (especially Navigation keys) usage in grid with Internet Explorer (IE7) & Firefox
  4. Marking selected grid row with some icon / text color change

The code in action can be seen at ExtJs Array Grid Sample
Same can be downloaded from: ExtJs Array Grid Sample - Source Code (~311 KB since extjs images & base scripts).
Main files that are modified: array-grid.html, array-grid.js & examples.css.



1. To focus the grid.

After rendering the grid
    grid.getSelectionModel().selectFirstRow();
    grid.getView().focusEl.focus();


2. Row colouring

Mainly this is CSS twist with use of getRowClass to change the text color of whole row.
    grid.getView().getRowClass = function(record, index){
      return (record.data.change<0.7 ? (record.data.change<0.5 ? (record.data.change<0.2 ? 'red-row' : 'green-row') : 'blue-row') : '');
    };

getRowClass changes the row CSS properties its applied for, but inside a row each cell element will have its own CSS class again.

In CSS for ‘cell-inner’ we need to set the font color.
    .blue-row .x-grid3-cell-inner{
      color:blue;
    }
    .red-row .x-grid3-cell-inner{
      color:red;
    }
    .green-row .x-grid3-cell-inner{
      color:green;
    }


3. Key Events

While working GridPanel, along with focusing the first row we were in a need of implementing the making of rows selected by user with Left Arrow & Right Arrow, as well they can navigate up & down with Up Arrow & Down Arrow.

The below code works partially in IE. It won’t capture navigational (along with arrows, page up, page down, home, end) keys & some special keyevents. But it works perfect in Firefox. 
    grid.on('keypress', function(e){
      alert(e.getKey());
    });

Whereas ‘keydown’ keyboard event works perfectly in both browsers for all keys. But the e.getKey() in IE won’t get the key code for navigational keys & some special keys. So need to change that to normal “e.keyCode”.

There maybe some property to set in ExtJS like in KeyNav -> forceKeyDown to true to make the getKey & keypress work in IE & FF. Not sure where & how exactly, but now the above quick solution worked without any problem.

So the code will be,
    grid.on('keydown', function(e){
      alert(e.keyCode);
    });



4. Marking Selected Grid Rows

In order to mark the selected rows, experimented on task example provided in ExtJs with Google Gears. Before experimenting used the data.columnName = ‘some value’ to set & gridview’s refresh() to apply. But at a time only a row used to change & previous selected rows used to change back.

In this same Array-Grid example added a new boolean value ‘true - flase’ column as first column ‘Status’. Added a ‘renderer’ to this new column, which sets a css class with empty box image if vale is false / tick mark if value true. Also 2 events, one mouse click and the other keydown event to grid to change the value of particular data element. Here the tricky point is if we change the value of it in store record, then automatically the respective CSS will be applied to it through its ‘renderer’. As said before if we change the ‘data’ in grid it won’t work, we need to apply the change of value in record of the store.

The code & css is 
    grid.on('keydown', function(e){
         if(e.keyCode == 37){
           var rec = grid.getSelectionModel().getSelected();
           rec.set('status', false);
         }else if(e.keyCode == 39){
           var rec = grid.getSelectionModel().getSelected();
           rec.set('status', true);
         }
    });
 
    grid.on('rowclick', function(grid, rowIndex, e){
      var rec = grid.store.getAt(rowIndex);
      rec.set('status', !rec.get('status'));
      grid.getView().focusEl.focus();
    });

    .task-completed, .task-check-over {
         width:16px;
         height:16px;
         cursor:pointer;
         background: transparent url(../images/check.gif) no-repeat center -16px;
    }
    .task-check-over {
         background: transparent url(../images/check.gif) no-repeat center -32px;
    }

The above code in action can be seen at ExtJs Array Grid Sample
Same can be downloaded from: ExtJs Array Grid Sample - Source Code (~311 KB since extjs images & base scripts).
Main files that are modified: array-grid.html, array-grid.js & examples.css.


Horizontal & Vertical – Bidirectional JavaScript Scroller with Images & HTML Content

March 3, 2008 12:35 by admin

kick it on DotNetKicks.com  

Here we are using Moo.fx for Mootools to do the trick of animation effect, inspiration of Fx.Scroll demo.

From Mootools, for this animation the main component is Fx.Scroll & supporting component is Fx.Styles along with  other basic core modules that comes with it when we select the above two & download the script (mootools-release-1.11.js).

Programmatically if you would like to create the scrolling elements then element ids need to be created sequentially “content” + i.

The problem with mootools Fx.Scroll is, if the element is in visible area and/or hidden area is not lengthy enough then it wont move to the focused element since it is already in visible area. So we will be looping through again our content elements to produce the extra elements for scroll effect. Basically the repeated count will be number of elements in visible area plus one. If you are able to see 4 elements at a time then repeat initial 5 elements at the end again.

We can change the direction, stop & start the looping of images or html or mixed elements.

Find it action which describes you more. Its blazing fast & cross-browser.

Source of it for download: Bidirectional JavaScript Scroller (~20 KB)


Horizontal & Vertical – Bidirectional JavaScript Scroller with Images & HTML Content

March 3, 2008 12:35 by admin

kick it on DotNetKicks.com  

Here we are using Moo.fx for Mootools to do the trick of animation effect, inspiration of Fx.Scroll demo.

From Mootools, for this animation the main component is Fx.Scroll & supporting component is Fx.Styles along with  other basic core modules that comes with it when we select the above two & download the script (mootools-release-1.11.js).

Programmatically if you would like to create the scrolling elements then element ids need to be created sequentially “content” + i.

The problem with mootools Fx.Scroll is, if the element is in visible area and/or hidden area is not lengthy enough then it wont move to the focused element since it is already in visible area. So we will be looping through again our content elements to produce the extra elements for scroll effect. Basically the repeated count will be number of elements in visible area plus one. If you are able to see 4 elements at a time then repeat initial 5 elements at the end again.

We can change the direction, stop & start the looping of images or html or mixed elements.

Find it action which describes you more. Its blazing fast & cross-browser.

Source of it for download: Bidirectional JavaScript Scroller (~20 KB)