Say I have two pages located on different urls: Home and, for example, Contact. I have some fancy CSS3 effects on Home page and a link to Contact page.
When I click on Contact page link, I want to slide some Home page elements off the page, or make them transparent or something else, then I just let the browser load Contact page, but I want to make this transition as seamless as possible. Ideally, to achieve the effect of a one-page site, where I can easily show and hide page elements.
How to do it the best way?
Load the content with XMLHttpRequest
Use the history API to change the URL to one which will load the contact page by default
Use CSS Transitions / Animation to move the content about
Related
I have a question i have been searching for how do these websites do page transition like when i click on a button or on a link it move to the next page with no time or with animations like these websites :
First site
Second site
They are Single Page Applications (SPA). Actually, they don't go to some other pages when you click a link. They change the URL and load a view to DOM accordingly. You can use one of Vue.js, React.js, Angular.js, and Svelte.js (I guess) to create those types of pages.
I have a single pager website where each of the buttons takes you to a separate section following an animation. I've set up an example here: https://dev.dport.me.
Currently when you navigate to a page, the URL stays the same. For example, navigating to the About section does not append #about to the URL. I would like the site to work more like a normal site in respect to navigation.
What is the best way to go about making it such that:
Navigating to a "page" changes the URL. Following the example, either to #about, or even better, /about.
Navigating directly to a subpage works. Meaning that if I navigate to https://dev.dport.me/about, it takes me straight to the subpage.
The back button works. Currently if you navigate into a subpage, you must use the back button on the page. The browser's back button just leaves the whole site.
Is there some pre-existing javascript library that does what I'm looking for? Or am I going to have to gun it alone, perhaps with something like this.
is there any possibility to make smooth slide transition between two seperate html files?
Like for example.
On one html is
Link
and after clicking this link page is not reloading, just sliding to the second file?
You have to load the second HTML file into an iFrame or into a DIV by ajax, then slide it into view. You can use jQuery for that and for easy access to animations.
You may also would like to update the URL of your page, for that you can use location.hash to do it without reloading the page. You can also check for observehashchange plugin for jquery to check for the hash change when a user changes the URL.
You can view a sample here.
To have Google access the pages, you can add a sitemap.xml to your site to describe the pages and you may also have to setup webmaster tools to provide Google with useful information about your site. Here you can add the links and Google will got it. I have a page where more than 5000 links are seen by Google, however they aren't on any page by default.
But if you want to have normal <a> links on your page, you can use a simple jQuery to trigger the animation instead of going to the link.
Go to page 2
Go to page 3
Go to page 4
<script>
function LoadPage(page) {
//Put your page loader script here
}
$(document).ready(function(){
$(a).click(function(event){
event.preventDefault();
var page = $(this).attr('href').substr(1);
LoadPage(page);
});
});
</script>
I have a landing page on my website.
I want to be able to click or slide it away to view the actual website (sort of like the Windows 8 lock screen)
I have tried to use an onclick event on the landing page to open the website but it does not give the desired effect. I need it to be seamless and fast.
How could I go about doing this?
Thanks,
Use Position: fixed; for the landing page content and listen for click in JavaScript
as shown in http://jsfiddle.net/5HXaQ/5/
You can use different CSS transition functions to achieve the kind of slide effect you need
https://developer.mozilla.org/en-US/docs/Web/CSS/transition-timing-function
I posed a question that related where I could display "Page loading" in asp.net page using jQuery. But, I had no luck.
So, say I have page1 and it navigates to page2 and page2 doesn't some heavy data access. Is there any way I could show the "preloading" page while the page2 is finished.
I want to navigate from Page1 -> "Preload" -> Page2(once page2 is completed).
I want to know if this is possible using Javascript in the code behind.
Thanks.
The way you would typically do this is have a page that shows the message and uses AJAX, in my example using jQuery, to load the other page onto the current page.
<body>
<div id="content">
Page loading
</div>
<script type="text/javascript">
$(function() {
$('#content').load('/url/to/other/page');
});
</script>
</body>
I've omitted loading jQuery itself.
Note: you could do this on a single page by having it generate different content based on some query parameter. You don't need to actually have a separate "loading" page -- though you could probably make that work for several different pages as well.
If using JavaScript is OK, redirect the user to the Preload page, and then use JavaScript to take the user to Page2. This will make the Preload page stay visible while Page2 is loading.
(Also, "JavaScript in the codebehind"? Don't tell me you're using JScript.NET or something as your server side language)
No matter what you do, to begin loading Page2 you'll have to navigate away from Page1 (unless you get complicated and wrap your pages in another container on a single page and navigate within your container).
Otherwise the default content for Page2 should be a "Preloading" message that gets taken away once the document has finished loading its content.
Is a possible solution to have an almost empty page with a few placeholder divs in the right places containing a loading image. Then run web service calls to populate each placeholder in jquery/javascript?