How to Create Picture Gallery with Display Switcher

Today in this post, jsB@nk shows you step by step guides to create a Picture Gallery with Display Switcher - a very cool JavaScript code to create an amazing picture JavaScript gallery on the web page. Please go to the full post page for details.


Sampled by © JavaScriptBank.com

Today, I would like to go over a quick and simple way to allow your users to switch page layouts by using CSS and jQuery.

Today's web users expect web pages to be increasingly more interactive. To this end, the ability to change page layouts provides your users with a more immersive experience and allows them to consume information more easily, either with a quick gallery view, or a detailed summary view.

Display Switch Tutorial:

View Demo of Display Switch

Step1. Creating the Wireframe

We will first start out designing the vertical list layout with a simple unordered list which we will use as our columns/rows.

HTML

<ul class="display">
    <li></li>
    <li></li>
    <li></li>
</ul>

CSS
*Note I used different shades of grey to achieve the subtle bevel look.

ul.display li a {
    color: #e7ff61;
    text-decoration: none;
}
ul.display li .content_block {
    padding: 0 10px;
}
ul.display li .content_block h2 {
    margin: 0;
    padding: 5px;
    font-weight: normal;
    font-size: 1.7em;
}
ul.display li .content_block p {
    margin: 0;
    padding: 5px 5px 5px 245px;  /*--The left padding keeps the
content from flowing under the image--*/

    font-size: 1.2em;
}
ul.display li .content_block a img{ /*--Double border technique--*/
    padding: 5px;
    border: 2px solid #ccc;
    background: #fff;
    margin: 0 15px 0 0;
    float: left;
}

Step2. Styling the Content

Inside of each list item, we nest a div which will act as our container of the content inside. I feel it's easier to calculate the columns when you don't have to consider the margin and padding within. This comes in handy especially when you are working with a liquid layout (since we know % and fixed pixels don't mix in too well).

HTML

<li>
        <div class="content_block">
            <a href="#"><img src="sample.gif" alt="" /></a>
            <h2><a href="#">Image Name</a></h2>
            <p>Description goes here</p>
        </div>
    </li>

CSS

ul.display li a {
    color: #e7ff61;
    text-decoration: none;
}
ul.display li .content_block {
    padding: 0 10px;
}
ul.display li .content_block h2 {
    margin: 0;
    padding: 5px;
    font-weight: normal;
    font-size: 1.7em;
}
ul.display li .content_block p {
    margin: 0;
    padding: 5px 5px 5px 245px;  <span style="color: #777;">/*--The left padding keeps the
content from flowing under the image--*/
</span>
    font-size: 1.2em;
}
ul.display li .content_block a img{ <span style="color: #777;">/*--Double border technique--*/</span>
    padding: 5px;
    border: 2px solid #ccc;
    background: #fff;
    margin: 0 15px 0 0;
    float: left;
}

Step3. Creating the Secondary View Option

Now its time to style the second display option which are in columns flowing horizontally.

Adding jQuery

CSS

ul.thumb_view li{ width: 250px; } <span style="color: #777;">/*--Switch the width
to accommodate for the three column layout--*/
</span>
ul.thumb_view li h2 { display: inline; }
ul.thumb_view li p{ display: none; }
ul.thumb_view li .content_block a img { margin: 0 0 10px; }

Step4. Creating the Switch

Time to wrap up this tutorial by creating the switch.

Switch Button

HTML

<a href="#" class="switch_thumb">Switch Display</a>

CSS
Using the 'CSS Sprites' technique, I create the link button.

a.switch_thumb {
    width: 122px;
    height: 26px;
    line-height: 26px;
    padding: 0;
    margin: 10px 0;
    display: block;
    background: url(switch.gif) no-repeat;
    outline: none;
    text-indent: -9999px;
}
a.swap { background-position: left bottom; }

I didn't feel like creating a hover state on the image, so I'll just use the opacity to dim it down a tad bit once hovered over.

a:hover.switch_thumb {
    filter:alpha(opacity=75);
    opacity:.75;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=75)";
}

jQuery
At last, we'll activate the switch with a little bit of jQuery.

<script type="text/javascript">
$(document).ready(function(){

    $("a.switch_thumb").toggle(function(){
        $(this).addClass("swap");
        $("ul.display").fadeOut("fast", function() {
            $(this).fadeIn("fast").addClass("thumb_view");
        });
    }, function () {
        $(this).removeClass("swap");
        $("ul.display").fadeOut("fast", function() {
            $(this).fadeIn("fast").removeClass("thumb_view");
        });
    });

});
</script>

Final View

View Demo of Display Switch

Now Go and Experiment!

This method can be applied to many scenarios, so I would like to encourage you to experiment with this technique. If you have any other tricks to add on, please feel free to drop your comments!

Language
Translate this page to English Translate this page to French Translate this page to Vietnamese

Recent articles
How to open a car sharing service
Vue developer as a vital part of every software team
Vue.js developers: hire them, use them and get ahead of the competition
3 Reasons Why Java is so Popular
Migrate to Angular: why and how you should do it
The Possible Working Methods of Python Ideology
JavaScript Research Paper: 6 Writing Tips to Craft a Masterpiece
Learning How to Make Use of New Marketing Trends
5 Important Elements of an E-commerce Website
How To Create A Successful Prototype For Your PCB


Top view articles
Top 10 Beautiful Christmas Countdown Timers
Adding JavaScript to WordPress Effectively with JavaScript Localization feature
65 Free JavaScript Photo Gallery Solutions
16 Free Code Syntax Highlighters by Javascript For Better Programming
Best Free Linux Web Programming Editors
Top 10 Best JavaScript eBooks that Beginners should Learn
Top 50 Most Addictive and Popular Facebook mini games
More 30 Excellent JavaScript/AJAX based Photo Galleries to Boost your Sites
Top 10 Free Web Chat box Plug-ins and Add-ons
The Ultimate JavaScript Tutorial in Web Design


Free JavaScript Tutorials & Articles
at www.JavaScriptBank.com