Related
currently I'm stuck on correct setting of Intersection observer. I would say it's working like on half, but it still doesn't have desired behavior.
My goal is to make interactive menu which responds to section, which is currently observed. I would like to fire callback function (highlight specific link in menu) as soon as the new section is visible, even if it was small piece, like 1cm.
For now It works until I enlarge font, for example to 25px. You can try to remove this style. Tt also stops working when there is too much text in one section.
section{
font-size:25px;
}
I think, this is the place where the problem is.. threshold value or condition itself.
const myObserver = new IntersectionObserver(elements => {
if (elements[0].intersectionRatio == 1) {
highlight(elements[0].target);
}
}, {threshold: 1.0})
If anybody know what is the problem, please help me. I'm stuck on this all day. Thank you !
Codepen here
//Get all sections
const sections = document.querySelectorAll('section');
//Get all links in menu
const menu = document.querySelector('.menu');
const links = menu.querySelectorAll('a');
//Callback function
function highlight(target){
links.forEach(link => {
link.classList.remove('active')
if(link.getAttribute('href') === '#'+target.id){
link.classList.add('active');
}
})
}
const myObserver = new IntersectionObserver(elements => {
if (elements[0].intersectionRatio == 1) {
highlight(elements[0].target);
}
}, {threshold: 1.0})
//Observe every function
sections.forEach(el => myObserver.observe(el));
.menu{
position:fixed;
top:0;
left:0;
width:30%;
background:grey;
height:100%;
}
ul{
list-style:none;
}
a{
text-decoration:none;
color:black;
font-size:20px;
}
main{
width:70%;
margin-left:30%;
}
/*Try to remove this font-size style, to see what I was explaining*/
section{
font-size:25px;
}
.active{
color:red;
}
<div class="menu">
<ul>
<li>Section 1</li>
<li>Section 2</li>
<li>Section 3</li>
</ul>
</div>
<main>
<section id="1">
<h1>Section 1</h1>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc viverra est elit, eu eleifend dolor elementum non. Nunc imperdiet sagittis augue ac varius. Donec condimentum id erat sed ultrices. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Morbi suscipit lectus id purus bibendum, a cursus metus mollis. Mauris elementum malesuada massa non lobortis. Quisque molestie convallis dictum. Curabitur sodales erat finibus nunc mattis congue. Morbi eleifend sed lectus id ultrices. Vivamus varius felis viverra turpis eleifend auctor. Duis aliquet magna ut diam lacinia, non iaculis nulla sagittis. Praesent fringilla ex augue, quis hendrerit arcu facilisis a. Fusce iaculis bibendum orci eu efficitur. Praesent tincidunt nisl a urna posuere, venenatis dapibus leo ullamcorper. Interdum et malesuada fames ac ante ipsum primis in faucibus.
Donec pretium tristique enim in molestie. Fusce lacinia, enim nec bibendum dignissim, nibh nulla laoreet nisl, eget finibus augue eros eu urna. Suspendisse accumsan velit orci, non semper lacus aliquam at. Morbi semper porta eros, sed dignissim nunc auctor et. Vivamus mattis fringilla enim. Nulla pretium at neque at feugiat. Pellentesque dictum id massa nec accumsan. Etiam lectus elit, elementum at velit sit amet, tristique pellentesque sapien. Aliquam eu nisl ac est posuere imperdiet. Proin eu enim quis arcu aliquam consequat a vitae purus. Sed finibus scelerisque risus pretium faucibus. Integer eget nisl eu magna sodales rutrum.
In hac habitasse platea dictumst. Duis eget fringilla tortor. Aliquam eget magna rutrum ex pharetra vulputate. Integer in ex est. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Sed consectetur urna odio, sit amet pretium tortor sodales et. Donec molestie bibendum diam, a volutpat urna bibendum sit amet. Fusce congue est imperdiet, lacinia diam non, tempor dui. Integer iaculis lobortis neque id malesuada. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Phasellus vestibulum diam fringilla turpis tempor interdum. Maecenas egestas fringilla risus id elementum. Cras condimentum turpis et elit lobortis dignissim.
adipiscing elit. Nunc viverra est elit, eu eleifend dolor elementum non. Nunc imperdiet sagittis augue ac varius. Donec condimentum id erat sed ultrices. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Morbi suscipit lectus id purus bibendum, a cursus metus mollis. Mauris elementum malesuada massa non lobortis. Quisque molestie convallis dictum. Curabitur sodales erat finibus nunc mattis congue. Morbi eleifend sed lectus id ultrices. Vivamus varius felis viverra turpis eleifend auctor. Duis aliquet magna ut diam lacinia, non iaculis nulla sagittis. Praesent fringilla ex augue, quis hendrerit arcu facilisis a. Fusce iaculis bibendum orci eu efficitur. Praesent tincidunt nisl a urna posuere, venenatis dapibus leo ullamcorper. Interdum et malesuada fames ac ante ipsum primis in faucibus.
Donec pretium tristique enim in molestie. Fusce lacinia, enim nec bibendum dignissim, nibh nulla laoreet nisl, eget finibus augue eros eu urna. Suspendisse accumsan velit orci, non semper lacus aliquam at. Morbi semper porta eros, sed dignissim nunc auctor et. Vivamus mattis fringilla enim. Nulla pretium at neque at feugiat. Pellentesque dictum id massa nec accumsan. Etiam lectus elit, elementum at velit sit amet, tristique pellentesque sapien. Aliquam eu nisl ac est posuere imperdiet. Proin eu enim quis arcu aliquam consequat a vitae purus. Sed finibus scelerisque risus pretium faucibus. Integer eget nisl eu magna sodales rutrum.
In hac habitasse platea dictumst. Duis eget fringilla tortor. Aliquam eget magna rutrum ex pharetra vulputate. Integer in ex est. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Sed consectetur urna odio, sit amet pretium tortor sodales et. Donec molestie bibendum diam, a volutpat urna bibendum sit amet. Fusce congue est imperdiet, lacinia diam non, tempor dui. Integer iaculis lobortis neque id malesuada. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Phasellus vestibulum diam fringilla turpis tempor interdum. Maecenas egestas fringilla risus id elementum. Cras condimentum turpis et elit lobortis dignissim.</p>
</section>
<section id="2">
<h1>Section 2</h1>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc viverra est elit, eu eleifend dolor elementum non. Nunc imperdiet sagittis augue ac varius. Donec condimentum id erat sed ultrices. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Morbi suscipit lectus id purus bibendum, a cursus metus mollis. Mauris elementum malesuada massa non lobortis. Quisque molestie convallis dictum. Curabitur sodales erat finibus nunc mattis congue. Morbi eleifend sed lectus id ultrices. Vivamus varius felis viverra turpis eleifend auctor. Duis aliquet magna ut diam lacinia, non iaculis nulla sagittis. Praesent fringilla ex augue, quis hendrerit arcu facilisis a. Fusce iaculis bibendum orci eu efficitur. Praesent tincidunt nisl a urna posuere, venenatis dapibus leo ullamcorper. Interdum et malesuada fames ac ante ipsum primis in faucibus.
Donec pretium tristique enim in molestie. Fusce lacinia, enim nec bibendum dignissim, nibh nulla laoreet nisl, eget finibus augue eros eu urna. Suspendisse accumsan velit orci, non semper lacus aliquam at. Morbi semper porta eros, sed dignissim nunc auctor et. Vivamus mattis fringilla enim. Nulla pretium at neque at feugiat. Pellentesque dictum id massa nec accumsan. Etiam lectus elit, elementum at velit sit amet, tristique pellentesque sapien. Aliquam eu nisl ac est posuere imperdiet. Proin eu enim quis arcu aliquam consequat a vitae purus. Sed finibus scelerisque risus pretium faucibus. Integer eget nisl eu magna sodales rutrum.
In hac habitasse platea dictumst. Duis eget fringilla tortor. Aliquam eget magna rutrum ex pharetra vulputate. Integer in ex est. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Sed consectetur urna odio, sit amet pretium tortor sodales et. Donec molestie bibendum diam, a volutpat urna bibendum sit amet. Fusce congue est imperdiet, lacinia diam non, tempor dui. Integer iaculis lobortis neque id malesuada. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Phasellus vestibulum diam fringilla turpis tempor interdum. Maecenas egestas fringilla risus id elementum. Cras condimentum turpis et elit lobortis dignissim.
adipiscing elit. Nunc viverra est elit, eu eleifend dolor elementum non. Nunc imperdiet sagittis augue ac varius. Donec condimentum id erat sed ultrices. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Morbi suscipit lectus id purus bibendum, a cursus metus mollis. Mauris elementum malesuada massa non lobortis. Quisque molestie convallis dictum. Curabitur sodales erat finibus nunc mattis congue. Morbi eleifend sed lectus id ultrices. Vivamus varius felis viverra turpis eleifend auctor. Duis aliquet magna ut diam lacinia, non iaculis nulla sagittis. Praesent fringilla ex augue, quis hendrerit arcu facilisis a. Fusce iaculis bibendum orci eu efficitur. Praesent tincidunt nisl a urna posuere, venenatis dapibus leo ullamcorper. Interdum et malesuada fames ac ante ipsum primis in faucibus.
Donec pretium tristique enim in molestie. Fusce lacinia, enim nec bibendum dignissim, nibh nulla laoreet nisl, eget finibus augue eros eu urna. Suspendisse accumsan velit orci, non semper lacus aliquam at. Morbi semper porta eros, sed dignissim nunc auctor et. Vivamus mattis fringilla enim. Nulla pretium at neque at feugiat. Pellentesque dictum id massa nec accumsan. Etiam lectus elit, elementum at velit sit amet, tristique pellentesque sapien. Aliquam eu nisl ac est posuere imperdiet. Proin eu enim quis arcu aliquam consequat a vitae purus. Sed finibus scelerisque risus pretium faucibus. Integer eget nisl eu magna sodales rutrum.
In hac habitasse platea dictumst. Duis eget fringilla tortor. Aliquam eget magna rutrum ex pharetra vulputate. Integer in ex est. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Sed consectetur urna odio, sit amet pretium tortor sodales et. Donec molestie bibendum diam, a volutpat urna bibendum sit amet. Fusce congue est imperdiet, lacinia diam non, tempor dui. Integer iaculis lobortis neque id malesuada. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Phasellus vestibulum diam fringilla turpis tempor interdum. Maecenas egestas fringilla risus id elementum. Cras condimentum turpis et elit lobortis dignissim.</p>
</section>
<section id="3">
<h1>Section 3</h1>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc viverra est elit, eu eleifend dolor elementum non. Nunc imperdiet sagittis augue ac varius. Donec condimentum id erat sed ultrices. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Morbi suscipit lectus id purus bibendum, a cursus metus mollis. Mauris elementum malesuada massa non lobortis. Quisque molestie convallis dictum. Curabitur sodales erat finibus nunc mattis congue. Morbi eleifend sed lectus id ultrices. Vivamus varius felis viverra turpis eleifend auctor. Duis aliquet magna ut diam lacinia, non iaculis nulla sagittis. Praesent fringilla ex augue, quis hendrerit arcu facilisis a. Fusce iaculis bibendum orci eu efficitur. Praesent tincidunt nisl a urna posuere, venenatis dapibus leo ullamcorper. Interdum et malesuada fames ac ante ipsum primis in faucibus.
Donec pretium tristique enim in molestie. Fusce lacinia, enim nec bibendum dignissim, nibh nulla laoreet nisl, eget finibus augue eros eu urna. Suspendisse accumsan velit orci, non semper lacus aliquam at. Morbi semper porta eros, sed dignissim nunc auctor et. Vivamus mattis fringilla enim. Nulla pretium at neque at feugiat. Pellentesque dictum id massa nec accumsan. Etiam lectus elit, elementum at velit sit amet, tristique pellentesque sapien. Aliquam eu nisl ac est posuere imperdiet. Proin eu enim quis arcu aliquam consequat a vitae purus. Sed finibus scelerisque risus pretium faucibus. Integer eget nisl eu magna sodales rutrum.
In hac habitasse platea dictumst. Duis eget fringilla tortor. Aliquam eget magna rutrum ex pharetra vulputate. Integer in ex est. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Sed consectetur urna odio, sit amet pretium tortor sodales et. Donec molestie bibendum diam, a volutpat urna bibendum sit amet. Fusce congue est imperdiet, lacinia diam non, tempor dui. Integer iaculis lobortis neque id malesuada. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Phasellus vestibulum diam fringilla turpis tempor interdum. Maecenas egestas fringilla risus id elementum. Cras condimentum turpis et elit lobortis dignissim.
adipiscing elit. Nunc viverra est elit, eu eleifend dolor elementum non. Nunc imperdiet sagittis augue ac varius. Donec condimentum id erat sed ultrices. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Morbi suscipit lectus id purus bibendum, a cursus metus mollis. Mauris elementum malesuada massa non lobortis. Quisque molestie convallis dictum. Curabitur sodales erat finibus nunc mattis congue. Morbi eleifend sed lectus id ultrices. Vivamus varius felis viverra turpis eleifend auctor. Duis aliquet magna ut diam lacinia, non iaculis nulla sagittis. Praesent fringilla ex augue, quis hendrerit arcu facilisis a. Fusce iaculis bibendum orci eu efficitur. Praesent tincidunt nisl a urna posuere, venenatis dapibus leo ullamcorper. Interdum et malesuada fames ac ante ipsum primis in faucibus.
Donec pretium tristique enim in molestie. Fusce lacinia, enim nec bibendum dignissim, nibh nulla laoreet nisl, eget finibus augue eros eu urna. Suspendisse accumsan velit orci, non semper lacus aliquam at. Morbi semper porta eros, sed dignissim nunc auctor et. Vivamus mattis fringilla enim. Nulla pretium at neque at feugiat. Pellentesque dictum id massa nec accumsan. Etiam lectus elit, elementum at velit sit amet, tristique pellentesque sapien. Aliquam eu nisl ac est posuere imperdiet. Proin eu enim quis arcu aliquam consequat a vitae purus. Sed finibus scelerisque risus pretium faucibus. Integer eget nisl eu magna sodales rutrum.
In hac habitasse platea dictumst. Duis eget fringilla tortor. Aliquam eget magna rutrum ex pharetra vulputate. Integer in ex est. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Sed consectetur urna odio, sit amet pretium tortor sodales et. Donec molestie bibendum diam, a volutpat urna bibendum sit amet. Fusce congue est imperdiet, lacinia diam non, tempor dui. Integer iaculis lobortis neque id malesuada. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Phasellus vestibulum diam fringilla turpis tempor interdum. Maecenas egestas fringilla risus id elementum. Cras condimentum turpis et elit lobortis dignissim.</p>
</section>
</main>
The goal is to highlight the menu item when at least part of its related section is visible.
MDN gives this:
The degree of intersection between the target element and its root is the intersection ratio. This is a representation of the percentage of the target element which is visible as a value between 0.0 and 1.0.
In the given code however, the threshold is set to 1
const myObserver = new IntersectionObserver(elements => {
if (elements[0].intersectionRatio == 1) {
highlight(elements[0].target);
}
}, {threshold: 1.0})
meaning all of the section must be visible for the observation to take place. When the font size is increased, or there is a lot of text in the section, this wont happen so the observation doesn't occur.
If no threshold option is set the observation will occur as soon as the section comes into view which would seem closer to what is desired. So the first thing to try is this code instead:
const myObserver = new IntersectionObserver(elements => {
if (elements[0].intersectionRatio == 1) {
highlight(elements[0].target);
}
})
There also needs to be thought given to what is required when two or more sections are partially in view, and what if two observations fire at once? The above code would be more robust if all the elements that are observed (i.e. are in that elements collection) are dealt with, and in particular to check whether they have an intersection or not. I imagine you'd want to clear the highlighting of their menu item if they aren't in view and set it if there is an intersection.
See https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API for a fuller explanation and a snippet of code which steps through all the observed elements.
I am slightly new to javascript, how do I make it so when the user scrolls once, it fires a function once.
Also, how do you detect the scroll in fancybox? I tried multiple things like .fancybox-inner but I couldn't grab it.
fiddle: https://jsfiddle.net/jzhang172/bft7fb6t/3/
$('.section1').click(function(){
$.fancybox({
type: 'inline',
href: '#fancy-about',
helpers : {
overlay : {
css : {
'background' : 'blue'
}
}
}
});
});
$(document).ready(function(){
$('body').scroll(function(){
alert('hey');
});
});
.parallax-window {
min-height: 400px; background: transparent;
}
body{
height:2000px;
}
.section1{
height:200px;
width:100%;
background:black;
}
#fancy-about{
display:none;
color:white;
width:500px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/fancybox/2.1.5/jquery.fancybox.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/fancybox/2.1.5/jquery.fancybox.pack.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/parallax.js/1.4.2/parallax.js"></script>
<div class="section1"></div>
<div id="fancy-about">
<p>Hey, this is meLorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum efficitur sed enim in mollis. Proin molestie libero id congue hendrerit. In hac habitasse platea dictumst. Aenean augue libero, scelerisque id sagittis et, tristique nec ipsum. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Etiam congue maximus efficitur. Fusce malesuada, magna eu porttitor fermentum, lorem arcu fermentum mi, porta faucibus lorem mauris sed felis. Curabitur dignissim risus quam, rutrum congue tellus aliquet sit amet. Cras luctus ac lectus non sollicitudin. Sed dolor metus, tempor eleifend orci et, laoreet vulputate orci.
Interdum et malesuada fames ac ante ipsum primis in faucibus. Quisque vitae malesuada massa. Proin facilisis ligula sed turpis scelerisque, ut pellentesque felis pharetra. Praesent metus elit, semper non vehicula non, pharetra quis nunc. Phasellus purus tortor, commodo non eleifend ut, blandit in leo. Aliquam sollicitudin gravida tristique. Nulla convallis nibh id massa eleifend ullamcorper. Morbi ut eleifend nisl, nec tincidunt nunc. Donec facilisis nibh tellus, non scelerisque augue varius elementum. Cras cursus mollis lectus ac malesuada. Nulla bibendum ex malesuada, dignissim neque a, scelerisque ipsum. Etiam pretium gravida odio, ac pulvinar nulla vehicula vel. Vestibulum pellentesque neque purus, eu bibendum ligula euismod id. Cras eu tristique massa. Nunc blandit vulputate mi non maximus.</p>
<div class="parallax-window" data-parallax="scroll" data-image-src="http://cdn.bulbagarden.net/upload/thumb/0/0d/025Pikachu.png/250px-025Pikachu.png"></div><p>Hey, this is meLorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum efficitur sed enim in mollis. Proin molestie libero id congue hendrerit. In hac habitasse platea dictumst. Aenean augue libero, scelerisque id sagittis et, tristique nec ipsum. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Etiam congue maximus efficitur. Fusce malesuada, magna eu porttitor fermentum, lorem arcu fermentum mi, porta faucibus lorem mauris sed felis. Curabitur dignissim risus quam, rutrum congue tellus aliquet sit amet. Cras luctus ac lectus non sollicitudin. Sed dolor metus, tempor eleifend orci et, laoreet vulputate orci.
Interdum et malesuada fames ac ante ipsum primis in faucibus. Quisque vitae malesuada massa. Proin facilisis ligula sed turpis scelerisque, ut pellentesque felis pharetra. Praesent metus elit, semper non vehicula non, pharetra quis nunc. Phasellus purus tortor, commodo non eleifend ut, blandit in leo. Aliquam sollicitudin gravida tristique. Nulla convallis nibh id massa eleifend ullamcorper. Morbi ut eleifend nisl, nec tincidunt nunc. Donec facilisis nibh tellus, non scelerisque augue varius elementum. Cras cursus mollis lectus ac malesuada. Nulla bibendum ex malesuada, dignissim neque a, scelerisque ipsum. Etiam pretium gravida odio, ac pulvinar nulla vehicula vel. Vestibulum pellentesque neque purus, eu bibendum ligula euismod id. Cras eu tristique massa. Nunc blandit vulputate mi non maximus.</p>
</div>
Scroll is not work than try to use alternative this mouse wheel event it is work
$('.section1').click(function(){
$.fancybox({
type: 'inline',
href: '#fancy-about',
helpers : {
overlay : {
css : {
'background' : 'blue'
}
}
}
});
});
$(document).ready(function(){
$('body').scroll(function(){
alert('hey');
});
});
$(window).bind('mousewheel DOMMouseScroll', function(event){
alert('hey');
});
.parallax-window {
min-height: 400px; background: transparent;
}
body{
height:2000px;
}
.section1{
height:200px;
width:100%;
background:black;
}
#fancy-about{
display:none;
color:white;
width:500px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/fancybox/2.1.5/jquery.fancybox.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/fancybox/2.1.5/jquery.fancybox.pack.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/parallax.js/1.4.2/parallax.js"></script>
<div class="section1"></div>
<div id="fancy-about">
<p>Hey, this is meLorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum efficitur sed enim in mollis. Proin molestie libero id congue hendrerit. In hac habitasse platea dictumst. Aenean augue libero, scelerisque id sagittis et, tristique nec ipsum. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Etiam congue maximus efficitur. Fusce malesuada, magna eu porttitor fermentum, lorem arcu fermentum mi, porta faucibus lorem mauris sed felis. Curabitur dignissim risus quam, rutrum congue tellus aliquet sit amet. Cras luctus ac lectus non sollicitudin. Sed dolor metus, tempor eleifend orci et, laoreet vulputate orci.
Interdum et malesuada fames ac ante ipsum primis in faucibus. Quisque vitae malesuada massa. Proin facilisis ligula sed turpis scelerisque, ut pellentesque felis pharetra. Praesent metus elit, semper non vehicula non, pharetra quis nunc. Phasellus purus tortor, commodo non eleifend ut, blandit in leo. Aliquam sollicitudin gravida tristique. Nulla convallis nibh id massa eleifend ullamcorper. Morbi ut eleifend nisl, nec tincidunt nunc. Donec facilisis nibh tellus, non scelerisque augue varius elementum. Cras cursus mollis lectus ac malesuada. Nulla bibendum ex malesuada, dignissim neque a, scelerisque ipsum. Etiam pretium gravida odio, ac pulvinar nulla vehicula vel. Vestibulum pellentesque neque purus, eu bibendum ligula euismod id. Cras eu tristique massa. Nunc blandit vulputate mi non maximus.</p>
<div class="parallax-window" data-parallax="scroll" data-image-src="http://cdn.bulbagarden.net/upload/thumb/0/0d/025Pikachu.png/250px-025Pikachu.png"></div><p>Hey, this is meLorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum efficitur sed enim in mollis. Proin molestie libero id congue hendrerit. In hac habitasse platea dictumst. Aenean augue libero, scelerisque id sagittis et, tristique nec ipsum. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Etiam congue maximus efficitur. Fusce malesuada, magna eu porttitor fermentum, lorem arcu fermentum mi, porta faucibus lorem mauris sed felis. Curabitur dignissim risus quam, rutrum congue tellus aliquet sit amet. Cras luctus ac lectus non sollicitudin. Sed dolor metus, tempor eleifend orci et, laoreet vulputate orci.
Interdum et malesuada fames ac ante ipsum primis in faucibus. Quisque vitae malesuada massa. Proin facilisis ligula sed turpis scelerisque, ut pellentesque felis pharetra. Praesent metus elit, semper non vehicula non, pharetra quis nunc. Phasellus purus tortor, commodo non eleifend ut, blandit in leo. Aliquam sollicitudin gravida tristique. Nulla convallis nibh id massa eleifend ullamcorper. Morbi ut eleifend nisl, nec tincidunt nunc. Donec facilisis nibh tellus, non scelerisque augue varius elementum. Cras cursus mollis lectus ac malesuada. Nulla bibendum ex malesuada, dignissim neque a, scelerisque ipsum. Etiam pretium gravida odio, ac pulvinar nulla vehicula vel. Vestibulum pellentesque neque purus, eu bibendum ligula euismod id. Cras eu tristique massa. Nunc blandit vulputate mi non maximus.</p>
</div>
To make your code work, you have to move the scroll function into the click function:
$('.section1').click(function(){
$.fancybox({
type: 'inline',
href: '#fancy-about',
helpers : {
overlay : {
css : {
'background' : 'blue'
}
}
}
});
$('.fancybox-inner').bind('scroll',function() {
alert("ciao");
});
});
your fiddle updated
you have to call scroll function on fancybox aftershow for the work fine.
$('.section1').click(function(){
$.fancybox({
type: 'inline',
href: '#fancy-about',
helpers : {
overlay : {
css : {
'background' : 'blue'
}
}
},
afterShow: function() {
$( '.fancybox-inner' ).scroll(function(){
alert('hey');
});
}
});
});
Demo Fiddle
I have a pretty simple page, if I scroll down, the height of my header reduces until its min-height, this works as I want. But the body scrolls simultaneously to decreasing the Height of my Head-Container. I'd like to let begin body scrolling after, Head-Container reached its min-height.
I added something like into the first if of my script:
if(st < 100)
{
$("#Head").scrollTo(0);
}
but this doesn't work, as I override the right scrolling values.
Any suggestions?
Thanks in advance,
Johannes
<HTML>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script type="text/javascript">
var lastVal = 0;
$(document).ready(function() {
$(window).scroll(function() {
var st = $(window).scrollTop();
if (st > lastVal){
$("#Head").css({height: "+=" + (lastVal-st) + "px"});
} else {
$("#Head").css({height: "+=" + (st-lastVal) + "px"});
}
lastVal = st;
});
});
</script>
<style TYPE="text/css">
#Head {
background-color: #333;
color: #fff;
min-height: 100px;
height: 230px;
position: relative;
}
</style>
<BODY>
<DIV id="main">
<div id="Head">
<h1>My Head</h1>
</div>
<div id="content">
<P>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla sodales lorem et mauris feugiat eu interdum neque imperdiet. In ullamcorper laoreet blandit. Phasellus quis leo quam, ac adipiscing lectus. Aenean vulputate pharetra lorem sit amet scelerisque. Aliquam erat volutpat. Nullam ac ante mauris. Integer et diam ante. Aenean eu elit vel sem semper sagittis quis sit amet erat. Praesent fermentum, justo nec suscipit rhoncus, massa metus varius dolor, ac sollicitudin lectus risus nec est. Nunc venenatis justo at enim iaculis nec sagittis eros imperdiet. Fusce porta venenatis sodales. Curabitur molestie quam in arcu porttitor sollicitudin.
</P><P>
Proin egestas luctus sapien nec auctor. Aenean ut sapien leo, et euismod nulla. Suspendisse ac feugiat orci. Vestibulum vitae magna diam, non fringilla dui. Vivamus auctor mi ut eros egestas ut malesuada orci lobortis. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Proin ut ipsum feugiat ligula sagittis malesuada a vel orci. Sed sit amet nisl id risus sollicitudin venenatis. Donec lobortis facilisis mauris, sed eleifend nunc laoreet quis. Nulla neque orci, aliquam eget rhoncus ut, feugiat id erat. Duis orci sapien, dictum non pretium non, egestas in nisl.
</P>
<P>
Aenean felis turpis, aliquet ac consectetur ac, pulvinar vitae dui. Aenean lacus lorem, rhoncus id dictum sit amet, luctus quis metus. Nullam posuere dignissim hendrerit. Nam tristique urna non neque laoreet nec porta tortor vestibulum. Ut varius facilisis vehicula. Vestibulum hendrerit pretium lorem, sit amet aliquet nisi porta eget. Sed sapien nunc, viverra et vehicula fringilla, cursus vitae mauris. Curabitur commodo mi eu lorem pulvinar auctor. Praesent et sapien et massa ultricies dignissim id at velit. Proin fringilla orci rutrum lacus hendrerit eu cursus quam auctor.
</p>
<P>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla sodales lorem et mauris feugiat eu interdum neque imperdiet. In ullamcorper laoreet blandit. Phasellus quis leo quam, ac adipiscing lectus. Aenean vulputate pharetra lorem sit amet scelerisque. Aliquam erat volutpat. Nullam ac ante mauris. Integer et diam ante. Aenean eu elit vel sem semper sagittis quis sit amet erat. Praesent fermentum, justo nec suscipit rhoncus, massa metus varius dolor, ac sollicitudin lectus risus nec est. Nunc venenatis justo at enim iaculis nec sagittis eros imperdiet. Fusce porta venenatis sodales. Curabitur molestie quam in arcu porttitor sollicitudin.
</P><P>
Proin egestas luctus sapien nec auctor. Aenean ut sapien leo, et euismod nulla. Suspendisse ac feugiat orci. Vestibulum vitae magna diam, non fringilla dui. Vivamus auctor mi ut eros egestas ut malesuada orci lobortis. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Proin ut ipsum feugiat ligula sagittis malesuada a vel orci. Sed sit amet nisl id risus sollicitudin venenatis. Donec lobortis facilisis mauris, sed eleifend nunc laoreet quis. Nulla neque orci, aliquam eget rhoncus ut, feugiat id erat. Duis orci sapien, dictum non pretium non, egestas in nisl.
</P>
<P>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla sodales lorem et mauris feugiat eu interdum neque imperdiet. In ullamcorper laoreet blandit. Phasellus quis leo quam, ac adipiscing lectus. Aenean vulputate pharetra lorem sit amet scelerisque. Aliquam erat volutpat. Nullam ac ante mauris. Integer et diam ante. Aenean eu elit vel sem semper sagittis quis sit amet erat. Praesent fermentum, justo nec suscipit rhoncus, massa metus varius dolor, ac sollicitudin lectus risus nec est. Nunc venenatis justo at enim iaculis nec sagittis eros imperdiet. Fusce porta venenatis sodales. Curabitur molestie quam in arcu porttitor sollicitudin.
</P><P>
Proin egestas luctus sapien nec auctor. Aenean ut sapien leo, et euismod nulla. Suspendisse ac feugiat orci. Vestibulum vitae magna diam, non fringilla dui. Vivamus auctor mi ut eros egestas ut malesuada orci lobortis. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Proin ut ipsum feugiat ligula sagittis malesuada a vel orci. Sed sit amet nisl id risus sollicitudin venenatis. Donec lobortis facilisis mauris, sed eleifend nunc laoreet quis. Nulla neque orci, aliquam eget rhoncus ut, feugiat id erat. Duis orci sapien, dictum non pretium non, egestas in nisl.
</P>
<P>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla sodales lorem et mauris feugiat eu interdum neque imperdiet. In ullamcorper laoreet blandit. Phasellus quis leo quam, ac adipiscing lectus. Aenean vulputate pharetra lorem sit amet scelerisque. Aliquam erat volutpat. Nullam ac ante mauris. Integer et diam ante. Aenean eu elit vel sem semper sagittis quis sit amet erat. Praesent fermentum, justo nec suscipit rhoncus, massa metus varius dolor, ac sollicitudin lectus risus nec est. Nunc venenatis justo at enim iaculis nec sagittis eros imperdiet. Fusce porta venenatis sodales. Curabitur molestie quam in arcu porttitor sollicitudin.
</P><P>
Proin egestas luctus sapien nec auctor. Aenean ut sapien leo, et euismod nulla. Suspendisse ac feugiat orci. Vestibulum vitae magna diam, non fringilla dui. Vivamus auctor mi ut eros egestas ut malesuada orci lobortis. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Proin ut ipsum feugiat ligula sagittis malesuada a vel orci. Sed sit amet nisl id risus sollicitudin venenatis. Donec lobortis facilisis mauris, sed eleifend nunc laoreet quis. Nulla neque orci, aliquam eget rhoncus ut, feugiat id erat. Duis orci sapien, dictum non pretium non, egestas in nisl.
</P>
<P>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla sodales lorem et mauris feugiat eu interdum neque imperdiet. In ullamcorper laoreet blandit. Phasellus quis leo quam, ac adipiscing lectus. Aenean vulputate pharetra lorem sit amet scelerisque. Aliquam erat volutpat. Nullam ac ante mauris. Integer et diam ante. Aenean eu elit vel sem semper sagittis quis sit amet erat. Praesent fermentum, justo nec suscipit rhoncus, massa metus varius dolor, ac sollicitudin lectus risus nec est. Nunc venenatis justo at enim iaculis nec sagittis eros imperdiet. Fusce porta venenatis sodales. Curabitur molestie quam in arcu porttitor sollicitudin.
</P><P>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla sodales lorem et mauris feugiat eu interdum neque imperdiet. In ullamcorper laoreet blandit. Phasellus quis leo quam, ac adipiscing lectus. Aenean vulputate pharetra lorem sit amet scelerisque. Aliquam erat volutpat. Nullam ac ante mauris. Integer et diam ante. Aenean eu elit vel sem semper sagittis quis sit amet erat. Praesent fermentum, justo nec suscipit rhoncus, massa metus varius dolor, ac sollicitudin lectus risus nec est. Nunc venenatis justo at enim iaculis nec sagittis eros imperdiet. Fusce porta venenatis sodales. Curabitur molestie quam in arcu porttitor sollicitudin.
</P><P>
Proin egestas luctus sapien nec auctor. Aenean ut sapien leo, et euismod nulla. Suspendisse ac feugiat orci. Vestibulum vitae magna diam, non fringilla dui. Vivamus auctor mi ut eros egestas ut malesuada orci lobortis. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Proin ut ipsum feugiat ligula sagittis malesuada a vel orci. Sed sit amet nisl id risus sollicitudin venenatis. Donec lobortis facilisis mauris, sed eleifend nunc laoreet quis. Nulla neque orci, aliquam eget rhoncus ut, feugiat id erat. Duis orci sapien, dictum non pretium non, egestas in nisl.
</P>
<P>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla sodales lorem et mauris feugiat eu interdum neque imperdiet. In ullamcorper laoreet blandit. Phasellus quis leo quam, ac adipiscing lectus. Aenean vulputate pharetra lorem sit amet scelerisque. Aliquam erat volutpat. Nullam ac ante mauris. Integer et diam ante. Aenean eu elit vel sem semper sagittis quis sit amet erat. Praesent fermentum, justo nec suscipit rhoncus, massa metus varius dolor, ac sollicitudin lectus risus nec est. Nunc venenatis justo at enim iaculis nec sagittis eros imperdiet. Fusce porta venenatis sodales. Curabitur molestie quam in arcu porttitor sollicitudin.
</P><P>
Aenean felis turpis, aliquet ac consectetur ac, pulvinar vitae dui. Aenean lacus lorem, rhoncus id dictum sit amet, luctus quis metus. Nullam posuere dignissim hendrerit. Nam tristique urna non neque laoreet nec porta tortor vestibulum. Ut varius facilisis vehicula. Vestibulum hendrerit pretium lorem, sit amet aliquet nisi porta eget. Sed sapien nunc, viverra et vehicula fringilla, cursus vitae mauris. Curabitur commodo mi eu lorem pulvinar auctor. Praesent et sapien et massa ultricies dignissim id at velit. Proin fringilla orci rutrum lacus hendrerit eu cursus quam auctor.
</p>
</div>
</DIV>
</BODY>
</HTML>
A simple trick will do that.
If the height of header is greater than min-height and scroll to the top.
$(window).scroll(function() {
var st = $(window).scrollTop();
if (st > lastVal){
$("#Head").css({height: "+=" + (lastVal-st) + "px"});
if($("#Head").css('height') > $("#Head").css('min-height')){
window.scrollTo(0, 0);
}
} else {
$("#Head").css({height: "+=" + (st-lastVal) + "px"});
}
lastVal = st;
});
How can I make the sidebar stop at the second sidebar section instead of at the top of the sidebar?
Fiddle
http://jsfiddle.net/EvAdP/2/
HTML
<header>
I'm the header
</header>
<div id="container">
<aside id="sidebar">
<div class="section1">I'm a sidebar section</div>
<div class="Section2">I'm another sidebar section</div>
</aside>
<section id="content">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis turpis turpis, dictum id sollicitudin eu, molestie ut tellus. Nam tincidunt mauris in erat vehicula adipiscing. Morbi cursus orci a nisl auctor nec porta eros consectetur. Vestibulum auctor congue mi, vitae molestie nisi faucibus vel. Ut et dui ut mauris posuere dignissim in et sapien. Duis a nulla ipsum. Duis accumsan porttitor justo at pretium. Aliquam quam urna, eleifend vitae consequat et, pharetra eu lectus. Etiam id magna mi. Donec pulvinar nibh in felis placerat condimentum consectetur enim iaculis. Integer et sapien justo, ac ullamcorper nisi. Praesent sed mauris non lacus pellentesque condimentum. Sed hendrerit consectetur nisi bibendum convallis. Pellentesque semper faucibus tortor malesuada dignissim.</p>
<p>Aliquam adipiscing commodo est, eu venenatis mi ullamcorper cursus. Integer vel magna in neque aliquet hendrerit. Mauris eros nisl, venenatis quis ultricies id, faucibus et mi. Nunc sit amet nulla odio. Phasellus quis eros id tortor imperdiet faucibus ac eu metus. Curabitur at feugiat dui. Vivamus imperdiet lectus id orci sodales sit amet eleifend ante tempus. Mauris vehicula elit eu dolor volutpat porttitor.</p>
<p>Praesent pretium convallis diam, sed faucibus dolor convallis eget. Pellentesque sollicitudin erat ac ligula viverra vel mollis diam tristique. Nulla tempus ligula ac dui fringilla consequat. Suspendisse accumsan volutpat semper. Morbi bibendum vehicula nibh id condimentum. Maecenas auctor mattis libero, ut suscipit tellus interdum quis. Nam eu dolor orci. Proin et tortor diam. Phasellus blandit leo ut elit faucibus varius. Donec condimentum congue lectus, sit amet gravida diam aliquet at.</p>
<p>Praesent eu libero sem. Phasellus elementum posuere velit, id aliquet ante elementum non. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Phasellus faucibus rutrum luctus. Suspendisse nec facilisis neque. Cras dui lacus, pellentesque at fermentum sollicitudin, aliquam et nisi. Proin eget sem diam, nec faucibus nulla. In nibh dolor, interdum at egestas a, dictum sed massa. Integer quis elit vitae enim lacinia tristique ac id purus. Pellentesque fermentum tempor sem sit amet venenatis. Nulla facilisi. Donec semper ultrices magna, posuere mattis turpis rhoncus ut.</p>
<p>Etiam porttitor erat sit amet odio egestas sit amet mollis magna convallis. Sed porttitor aliquet velit at placerat. Proin in turpis non velit gravida eleifend quis ac magna. Nunc sagittis, eros a pulvinar gravida, mauris urna viverra lorem, non posuere orci ligula vitae justo. Nulla neque erat, tempus at dapibus sit amet, scelerisque ac sapien. In in magna sapien, at auctor tellus. Donec nec turpis ligula, vitae scelerisque arcu.</p>
</section>
</div>
CSS
body {
margin:0;
}
header {
line-height:100px;
height:100px;
background-color:#F00;
}
#container {
position:relative;
}
#sidebar {
position:absolute;
width:80px;
background-color:#0F0;
}
#sidebar .section1 {
background: blue;
height: 150px;
}
#sidebar .section2 {
background: pink;
height: 150px;
}
#sidebar.fixed {
position:fixed;
top:0;
}
#content {
margin-left:100px;
}
p:first-child {
margin-top:0;
}
JS
$(window).scroll(function () {
var threshold = 100;
if ($(window).scrollTop() >= threshold)
$('#sidebar').addClass('fixed');
else
$('#sidebar').removeClass('fixed');
});
Are you trying to do this ?
...
I am trying to dynamically assign a name attribute to a level 2 header using jQuery.
http://jsfiddle.net/8ZTEb/
Here is my javascript:
$(function() {
$("h2").each(function() {
$(this).attr("name", $(this).html().toLowerCase());
});
});
Here is my long, but simple HTML.
Bar
<h2>Foo</h2>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam eu sollicitudin urna. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. In tincidunt magna vel quam auctor sit amet tincidunt lacus euismod. Praesent bibendum odio nec nisl tempus dictum. Cras aliquet condimentum est luctus accumsan. Aenean lectus lacus, malesuada eu dictum eu, euismod ac purus. Aliquam ultrices egestas elit, nec scelerisque lorem suscipit in. In auctor bibendum ullamcorper. Aenean lectus arcu, fermentum sed aliquet quis, tristique vestibulum est. In nisi ligula, consequat non semper vitae, pharetra vel risus. Nulla odio augue, tincidunt quis bibendum id, ullamcorper vel eros. Proin feugiat imperdiet tellus, ut porttitor massa eleifend in. Praesent sed nisl sed dui vestibulum auctor. Maecenas viverra feugiat erat adipiscing porttitor. Aenean mattis tincidunt placerat.
</p>
<p>
Fusce aliquam, dui a facilisis porttitor, nisi dolor semper dolor, ac vestibulum elit lorem id lorem. Nam ut odio eros. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse consequat tempor volutpat. Vestibulum cursus purus et nulla dignissim suscipit. Cras convallis dolor nec dolor volutpat vel rutrum magna eleifend. Nullam eget lorem orci. Vestibulum vel aliquam ligula.
</p>
<p>
Aliquam in tellus odio, ut gravida ante. Vestibulum vitae diam elementum dui ultricies hendrerit quis vitae ante. Vestibulum vel metus metus. Nulla in nulla et risus dictum lobortis at ac ligula. Nunc in dolor id sapien facilisis porttitor id vitae magna. Integer pretium faucibus felis, vitae tristique est condimentum egestas. Suspendisse potenti. Duis auctor molestie sapien, sed vestibulum dolor ornare in. Praesent lacus purus, luctus non suscipit eget, aliquet in nunc. Etiam bibendum, erat ut blandit vehicula, augue diam vestibulum ipsum, ut imperdiet libero est sit amet tortor. Quisque gravida porttitor augue, eu hendrerit libero ullamcorper eget. Sed at tortor nisi, a luctus nunc. Curabitur in fringilla velit. Nulla elementum hendrerit ante ac faucibus. Mauris ultrices pretium erat sit amet scelerisque.
</p>
<p>
Integer dictum diam vel orci laoreet vehicula. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Donec eu commodo dui. Quisque a diam mauris. Curabitur ornare sollicitudin ligula, in fringilla ligula porttitor et. Proin bibendum tincidunt orci, eget iaculis sem venenatis et. Integer eu eros magna, sed placerat augue. Cras eget est purus. Duis convallis gravida tempus. Curabitur a dolor ut nisl sodales rutrum. Maecenas eget diam quis turpis scelerisque mattis eget ac sapien. Sed commodo mattis tellus, sit amet tempor ligula placerat at.
</p>
<p>
Sed ornare faucibus tincidunt. Sed suscipit metus a massa feugiat dignissim. Maecenas auctor vulputate placerat. Vivamus pulvinar pharetra tincidunt. Nunc tempus ornare interdum. Vestibulum vitae magna lorem, quis luctus augue. Phasellus quam leo, dignissim vitae semper a, iaculis et lacus. Sed elit nunc, interdum sit amet dictum vitae, fermentum eget lorem. Phasellus nisi dui, varius ut lacinia et, condimentum sed tortor. Fusce eu orci et justo rutrum varius sit amet quis enim. Suspendisse id urna eget odio pellentesque lacinia in ut neque. Vestibulum ante lectus, placerat ac mattis vitae, tincidunt quis tortor. Morbi vel sem ut quam dignissim faucibus ut eu lorem. Aliquam laoreet arcu nec urna eleifend consectetur. Suspendisse potenti.
</p>
<h2>Bar</h2>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam eu sollicitudin urna. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. In tincidunt magna vel quam auctor sit amet tincidunt lacus euismod. Praesent bibendum odio nec nisl tempus dictum. Cras aliquet condimentum est luctus accumsan. Aenean lectus lacus, malesuada eu dictum eu, euismod ac purus. Aliquam ultrices egestas elit, nec scelerisque lorem suscipit in. In auctor bibendum ullamcorper. Aenean lectus arcu, fermentum sed aliquet quis, tristique vestibulum est. In nisi ligula, consequat non semper vitae, pharetra vel risus. Nulla odio augue, tincidunt quis bibendum id, ullamcorper vel eros. Proin feugiat imperdiet tellus, ut porttitor massa eleifend in. Praesent sed nisl sed dui vestibulum auctor. Maecenas viverra feugiat erat adipiscing porttitor. Aenean mattis tincidunt placerat.
</p>
<p>
Fusce aliquam, dui a facilisis porttitor, nisi dolor semper dolor, ac vestibulum elit lorem id lorem. Nam ut odio eros. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse consequat tempor volutpat. Vestibulum cursus purus et nulla dignissim suscipit. Cras convallis dolor nec dolor volutpat vel rutrum magna eleifend. Nullam eget lorem orci. Vestibulum vel aliquam ligula.
</p>
<p>
Aliquam in tellus odio, ut gravida ante. Vestibulum vitae diam elementum dui ultricies hendrerit quis vitae ante. Vestibulum vel metus metus. Nulla in nulla et risus dictum lobortis at ac ligula. Nunc in dolor id sapien facilisis porttitor id vitae magna. Integer pretium faucibus felis, vitae tristique est condimentum egestas. Suspendisse potenti. Duis auctor molestie sapien, sed vestibulum dolor ornare in. Praesent lacus purus, luctus non suscipit eget, aliquet in nunc. Etiam bibendum, erat ut blandit vehicula, augue diam vestibulum ipsum, ut imperdiet libero est sit amet tortor. Quisque gravida porttitor augue, eu hendrerit libero ullamcorper eget. Sed at tortor nisi, a luctus nunc. Curabitur in fringilla velit. Nulla elementum hendrerit ante ac faucibus. Mauris ultrices pretium erat sit amet scelerisque.
</p>
<p>
Integer dictum diam vel orci laoreet vehicula. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Donec eu commodo dui. Quisque a diam mauris. Curabitur ornare sollicitudin ligula, in fringilla ligula porttitor et. Proin bibendum tincidunt orci, eget iaculis sem venenatis et. Integer eu eros magna, sed placerat augue. Cras eget est purus. Duis convallis gravida tempus. Curabitur a dolor ut nisl sodales rutrum. Maecenas eget diam quis turpis scelerisque mattis eget ac sapien. Sed commodo mattis tellus, sit amet tempor ligula placerat at.
</p>
<p>
Sed ornare faucibus tincidunt. Sed suscipit metus a massa feugiat dignissim. Maecenas auctor vulputate placerat. Vivamus pulvinar pharetra tincidunt. Nunc tempus ornare interdum. Vestibulum vitae magna lorem, quis luctus augue. Phasellus quam leo, dignissim vitae semper a, iaculis et lacus. Sed elit nunc, interdum sit amet dictum vitae, fermentum eget lorem. Phasellus nisi dui, varius ut lacinia et, condimentum sed tortor. Fusce eu orci et justo rutrum varius sit amet quis enim. Suspendisse id urna eget odio pellentesque lacinia in ut neque. Vestibulum ante lectus, placerat ac mattis vitae, tincidunt quis tortor. Morbi vel sem ut quam dignissim faucibus ut eu lorem. Aliquam laoreet arcu nec urna eleifend consectetur. Suspendisse potenti.
</p>
Why does clicking on the inline anchor labeled "Bar" not go anywhere on the page?
Your link is looking for an element with the name "bar" not "foo".
Bar would find your H2 if the H2 was <h2 name="bar">Foo</h2> and not <h2 name="foo">Foo</h2> as it is now. You're assigning the html of the H2 element (foo) as the H2's name attribute when you want it to be "bar" which is the html of the anchor.
You can either change your link to Bar or change your jQuery.
Update: Your code should work for most elements, however for the greatest compatibility you might also want to make sure the element has the same ID and name value.
The HTML5 standard suggests using the ID attribute instead of the name attribute for specifying the name of an anchor. Using the ID attribute should work for HTML4 in all modern browsers.
See also: http://www.w3.org/TR/html401/struct/links.html#h-12.2.3 and http://www.w3.org/TR/html5/links.html#hyperlink
It sounds like you instead want to scroll based on the element's position on the page. You should instead find the offset of a specific element (which you can do via jQuery), and then call window.scrollTo(offset) like so:
Bar
$('.scrollableLink').click(function()
{
// Some syntax might not be correct on the selector, but you get the general idea
var offset = $('[name=' + $(this).text() + '").prop('offsetTop');
window.scrollTo(offset);
});
The <a name=''><h2>Lorem Ipsum</h2></a> is the syntax your looking for. I use the wrap function of jQuery to add the correct anchor references. fiddle for your thoughts
javascript
$(function() {
$("h2").each(function(index,elem) {
$(this).wrap("<a name='"+$(this).text().toLowerCase()+"'></a>");
});
});