Apply JS if document url not a specific url - javascript

I am helping a client do some minor Style/JS updates to a BigCommerce theme. I know next to nothing about BigCommerce theming. I need to apply CSS to every page except the home page. Ordinarily do page specific JS or scope my CSS better, but in this case I am limited by the existing theme code.
Here is what I am trying to do:
var check_url = 'http://www.someurl.com'
if (document.url != check_url) {
$('.header').css('height', '32vh');
}
What am I doing wrong? Seems like a very simple concept.
Thanks

if (window.location.pathname != '/') {
$('.header').css('height', '32vh');
}
Worked!

Related

Javascript: Swap a header logo in Wordpress for just two specific web pages

I'm somewhat new to writing javascripts and could use a little help. I'm trying to swap a header logo in Wordpress for just two specific web pages on a site. Any help would be much appreciated.
var url = "website/littlebigfoot/"
if (window.location.href.match("/littlebigfoot/$")) {
$('.footerbox').css("background-color","#0b79a9")
You could check the url of the page.
if( document.URL === "www.home.com/about" || document.URL === "www.home.com/contact") {
console.log('run code')
}
That if statement should allow for the code to only be applied to those pages only.
https://developer.mozilla.org/en-US/docs/Web/API/Document/URL
And I agree with the above answers too, please research and paste code that you've tried also.
Edit: fixed typo

change url to reflect content on the page hidden / displayed with Javascript

I am currently making a website for an architecture firm, HLArchitects. In the projects page I have created an HTML / Javascript image gallery. slightly above the main big image to the right an option can be found to choose between images / information. I use Jquery to show and hide the information or the images, however i don't feel this is such a great way to do so. It can be viewed here for reference: http://www.hla.co.za/projects/Hyuandai_Training_Centre/
Here is the relevant Javascript:
$(".selector a").click(function(){
if ($(this).attr("data-show") == "images") {
$("#info").fadeOut("fast");
$("#displayImg").fadeIn("fast");
$("#imageFlow").fadeIn("fast");
} else if ($(this).attr("data-show") == "info") {
$("#displayImg").fadeOut("fast");
$("#imageFlow").fadeOut("fast");
$("#info").fadeIn("fast");
}
})
Relevant HTML:
<p class="selector">images | information</p>
My problem is that the url does not change to reflect the content, but I do not want to make a separate page. I could imagine i would need to make use of link anchor's but am not to sure how to do so.
Thank you in advance
You can change the hash of an url by using:
window.location.hash = 'images';
EDIT:
Firstly, in this context you don't need to include the hash symbol!
Secondly, I missed the obvious, you only need to change the HTML to this to update the URL correctly:
<p class="selector">
images
information
</p>
Then you can use the following in your jQuery, note I've included the attribute check inside the selector itself:
$(".selector a[href=#images]").click(function() {
$("#info").fadeOut("fast");
$("#displayImg").fadeIn("fast");
$("#imageFlow").fadeIn("fast");
});
$(".selector a[href=#info]").click(function() {
$("#displayImg").fadeOut("fast");
$("#imageFlow").fadeOut("fast");
$("#info").fadeIn("fast");
});
If you want to refresh the page and get the same content, you can check the hash tag by doing the following (you may need to edit this depending what elements are showing initially):
$(document).ready(function() {
if (window.location.hash == '#images') {
$("#info").hide();
$("#displayImg").show()
$("#imageFlow").show();
}
else if (window.location.hash == '#info') {
$("#displayImg").hide();
$("#imageFlow").hide();
$("#info").show();
}
});
If all you're doing is setting text in the URL, you can do this easily by setting location.hash
location.hash="#SomeTextHereThatMayOrMayNotNecessarilyBeAnAnchor"
^ Note that "#" is important

Going to a page anchor after load adding transition

I'm quite new at using jquery but learning a bit everyday. I have solved many problems searching this web but I can't seem to find any solution for this one:
The web I'm workign at the moment use quite a lot of page anchors.
I have localscroll and scrollto as jquery libraries.
I animated the transition with this little script:
<script type="text/javascript">
$(document).ready(function () {
$('.scrolllento').localScroll({ duration: 1000 });
});
</script>
and it works fine whatever I add the class "scrolllento" to the cointainer of my links.
Now the problem I have is when a link jumps to an anchor of inside different page. my client has asked me if it's possible to load the page first then move to the anchor with same web transition.
I have been working on it with my little knowdlege and this is what I have atm:
<script type="text/javascript">
$(document).ready(function () {
var nosalto = $(location).attr('href');
if (nosalto.indexOf("HistoriaBMG") > 0) {
$.fn.gotoAnchor = function (anchor) {
location.href = this.selector;
}
$('#historia').gotoAnchor();
}
});
</script>
"HistoriaBMG" is the new page and "#historia" is the anchor I want to go inside that page.
and it seems again that it works...
the problem is I have no idea how to implement now the transition as the class "scrolllento" in the container of the link going to ../HistoriaBMG is ignored.
could anyone help me? thanks so much in advance and excuse my english, hope this question is clear enough.
According to the localScroll docs:
The plugin also adds a function, $.localScroll.hash() , that checks the URL in the address bar, and if there's a hash(#an_id), it will scroll to the element. It accepts a hash of settings, just like $.localScroll. You will likely call it on document ready. Check the regular example to see it in action.
So you simply need to call $.localScroll.hash()on $(document).ready()

load a part of the page without refreshing it

I am pretty new to web design. I just finished my first static website.
What i dont like about it is that the page often reload (each time you change section)
My question is "how to make this kind of nav : http://www.doblin.com/work/#innovation-strategy"
As you see the page doesnt reload when you click on "Set Innovation Strategy / Design, Build + Launch Innovations / Become Better Innovators"
How it s done ?
Is it possible on a static website (html/css/jquery) without sql or so (it may require ajax or ...) ?
Thanks
Taking a look at the code, this page uses some jQuery functions to do this work, check it out:
$(window).hashchange( function(){
var hash = location.hash;
// if a hash has been set
if(hash !== '') {
showContent(hash, origSections);
} else {
// pass in "empty" hash
showContent('', origSections);
}
return false;
});
// call hashchange on initial page load
$(window).hashchange();
// ----------- SHOW CONTENT ----------- //
function showContent(active, all) {
if (jQuery.support.opacity) {
opacity = true;
} else {
opacity = false;
}
This can also be done using CSS3 transitions and animations. Here's a pen based on this Codrops tutorial. I particularly think this is a better approach
But if you want to get dynamic data from somewhere, i advise you to use Ajax(There are some cool jQuery stuff to handle this)
you can use Jquery on your static website. You can go through below link
Jquery
But if you wish to save data and retrieve from server then you need to use Ajax to avoid refreshing page.There are many tutorials available on how to use Ajax
Take a (hard) look at JQuery or Dojo, any of them will be your friend.
Your example uses JQuery.
It can be done on one static page without worries.
Here you have some demos: http://jqueryui.com/tabs/
You can also study jquery on http://w3schools.com/jquery/default.asp

Javascript no longer works after form redesign

We have a piece of javascript injected onto a page that was responsible for a redirect, after a redesign of the page and the master page the javascript no longer works.
The Javascript is exactly as below
function PostVspForm()
{{
var vspForm = document.forms['vsp'];
if (!vspForm) vspForm = document.vsp;
if (!vspForm.onsubmit || (vspForm.onsubmit() != false))
{{
vspForm.action = '{0}';
vspForm.submit();
}}
}}
PostVspForm();
I'm not confident what it does or how to correct it, bearing in mind it also needs to work as above as well.
I believe it's simply identifying a form called vsp, this form is still on the page but now after calling document.vsp the object is null.
Have you changed the location of this code relative to the vsp form that it is targetting? If so, you may be running it before the form exists in the page.
Try moving your js to the bottom of the page, or wrap it in a block like this:
window.onload=function(){
//your code here
console.log(vspForm);
}
If you are using jQuery, you can do this:
$(document).ready(function() {
// your code here
});
Hope that helps!
This is strange. Using Javascript for redirection or some sort of validation. I would recommend replacing it by a code behind located in the page_load() method.

Categories

Resources