In today's tutorial we're going to use JavaScript to create a simple, flexible, parallax effect where a logo seemingly changes colors with the background it's on when the user scrolls. The Slip Scroll effect in actionWe'll be creating a “default” element which holds true to its placement (position: fixed), and a bunch of “moveable” elements whose position is dependent on that “default” element. We’ll use JavaScript to make this happen every time the user scrolls. Note: to cover all bases I've provided the explanation in video and written form.
We'll start by creating a couple of containing elements. Let’s make one of their backgrounds dark and one light so we can have a contrasting image contained in them. Let’s also go ahead and make our first image the "default" image by giving it a class of default, whilst the other images will get the class of moveable.
1
2
3
4
5
6
7
<divclass="container dark">
<imgsrc="img/acme-light.svg"class="default">
</div>
<divclass="container light">
<imgsrc="img/acme-dark.svg"class="moveable">
</div>
Base Styles
Now let’s make sure our images don’t end up scrolling outside of their containers by setting overflow: hidden. We’ll also go ahead and say these containers have relative position, so the absolutely positioned elements will align to these containers instead of directly to the fixed element when we write our JavaScript. For the sake of scrollability, let’s give these containers a min-height of around 400px. And to hold our logos away from the edges, let's give them some padding of 1em.
1
2
3
4
5
6
.container {
overflow: hidden;
position: relative;
min-height: 400px;
padding: 1em;
}
Each container needs some contrasty color so:
1
2
3
4
5
6
7
.dark {
background: #333;
}
.light {
background: #fff;
}
And finally, as promised, let's set our default and moveable CSS so one is stuck with the page as the user scrolls, and the other is moving along with it without bumping into other elements:
1
2
3
4
5
6
7
.default{
position: fixed;
}
.moveable {
position: absolute;
}
That should take care of the markup and styling. If you view the page, you should see the default logo scrolling down and hiding behind the other containers, whilst all the moveable logos should appear as normal elements in the top-left of their respective containers.
Introducing JavaScript
Now for the fun part, making it work with JavaScript. First we'll load jQuery and our custom script at the bottom of our index.html:
Create and open a file named js/slipScroll.js. Within that file, the first thing we’ll do is create a function called setLogo and throw this function into a jQuery scroll event so that every time the user scrolls a pixel, this event fires. We'll also want to make sure we fire this event when the user first arrives at the page (before they scroll):
1
2
3
4
5
6
7
8
9
varsetLogo = function() {
};
$(document).scroll(function() {
setLogo();
});
setLogo();
Getting Things Working
Now for the magic. Let’s say that every single instance of .moveable on the page should change its CSS top position to however far the default image is from the top of the page, minus however far this .moveable element's container is from the top of the page.
01
02
03
04
05
06
07
08
09
10
varsetLogo = function() {
$('.moveable').each(function() {
$(this).css('top',
$('.default').offset().top -
$(this).closest('.container').offset().top
);
});
};
Refresh your page, and voila! You’ve just created a pseudo-parallax scrolling effect from scratch in just a few lines of code.
Conclusion
I encourage you to tinker around with this solution. Try playing with the JavaScript function itself to see what kind of weird offsets you get if you add or remove a few pixels. Try using different elements (navigation anyone?) instead of just images for your scrollable content
In this tutorial, we are going to design a set of icons in Adobe Photoshop. An icon set needs to have the same background and theme. For learning purposes, we are going to design a sun icon, an ice flake icon, and an RSS icon. Let's get started. 1. Preparing the Canvas Step 1 Start by making a new file with size 350 px × 350 px . Click the small box next to the Background Contents option to change the new canvas color. Step 2 In the Color Picker dialog box, select grey ( #e0e0e2 ) for the canvas background color. Step 3 It is always a good idea to keep your work structured from the start. Make a new layer group and name it sun . This is where we will place all layers used in the sun icon. 2. Designing the Icon Base Step 1 Use the Rounded Rectangle Tool to draw a rectangle with size 83 px × 64 px and 8 px radius. To get accurate results, use the Properties panel. In this panel, you can simply enter the exact siz...
I'm going to discuss how I like to implement a rope-swinging gameplay mechanic. When I started working on Energy Hook I mostly did everything with my own custom code. I believe it's possible to simply go into Unity and use the Configurable Joint to do some very similar stuff, but at the time it wasn't available. I'm pretty sure this has been the right call, anyway, because it gives me control over everything - and I can share it with you. The fundamentals of doing swinging the way I did - using constraints - are actually quite simple. (Hope you're not disappointed when you see what's under the hood.) It works the same whether you're making a 2D game or 3D game, it's just that the vectors are different, so I'll start off with 2D and then discuss some wrinkles when going to three dimensions. This article also assumes you're using a game engine like Unity that can do a lot of the work for you, like raycasting against geometry and orienting a chara...
In my previous article Android Login and Registration Screen Design i explained designing the login and registration interfaces, but it has no functionality. In this tutorial i am explaining how to build complete login and registration system in android using PHP, MySQL and SQLite. Also this tutorial covers how to build simple API using PHP and MySQL. Prerequisites This tutorial is combination of some of my previous tutorials. I hope you covered these tutorials before. Android making HTTP Requests Android JSON Parsing Tutorial Android SQLite Database Tutorial Android Login and Registration Screen Design API (Application Programming Interface) ⇒ Accepting requests by GET/POST methods ⇒ Interact with PHP classes to get data from database or store in database ⇒ Finally will give output in JSON format 1. Creating MySQL Database and Tables As I am writing API in PHP I selected MySql database to maintain users and other related information. Open your mysql console or phpmyad...
Comments
Post a Comment