FAC10 / week1-jzlp

https://fac10.github.io/week1-jzlp/
3 stars 0 forks source link

JZLP Week one project

Link to our website

Intro - Zooey

show README why, what, how How did you split up the work? How did you choose to pair?

Show your use of Github - Joey

commit history PR history

Walk through the UX - Lucy

i.e. demo your website

Walk through the code

HTML structure - Lucy

Flexbox - Joey

Responsiveness - Joey

Acccessibility - Zooey

Images and form - Piotr

Scroll feature - Piotr

Javascript problem - Lucy

Why

To showcase JZLP, a team of developers who understand, communicate and deliver.

What

A one-page portfolio site that provides an overview of JZLP, including an about us section, team member profiles and a contact page.

How

Process

Discussion Day 1

Tasks

Stretch goals

// Find elements in DOM
var linksDOM = document.querySelectorAll('.js-nav-link');

// Scroll to target function
var totalScrollDuration = 600;
var numberOfScrolls = 60;
var singleScrollDuration = totalScrollDuration / numberOfScrolls;

function scrollTo(targetElementPosition, scrollDuration) {
  if (scrollDuration <= 0) { return; }
  var distanceToTarget = targetElementPosition - getScrollPosition();
  var singleScrollDistance = distanceToTarget / scrollDuration * singleScrollDuration;

  setTimeout(function() {
    var scrolledElement = document.body; // chrome safari
    var positionBeforeScroll = getScrollPosition();
    scrolledElement.scrollTop = positionBeforeScroll + singleScrollDistance;

    if (document.documentElement.scrollTop === positionBeforeScroll) {
      scrolledElement = document.documentElement; // firefox
      scrolledElement.scrollTop = getScrollPosition() + singleScrollDistance;
    }

    if (scrolledElement.scrollTop === targetElementPosition) { return; }
    scrollTo(targetElementPosition, scrollDuration - singleScrollDuration);
  }, singleScrollDuration);
}

function getScrollPosition() {
  return document.body.scrollTop ||
         document.documentElement.scrollTop ||
         window.pageYOffset ||
         0;
}

// Add event listeners
linksDOM.forEach(function(link) {
  link.addEventListener('click', function(event) {
    event.preventDefault();
    var targetId = event.target.innerText; // assumes that inner text will be the same as target id
    var targetPosition = document.getElementById(targetId).offsetTop;
    scrollTo(targetPosition, totalScrollDuration);
  });
});

User stories

Build a one-page portfolio website for you and your team

We want you to work together over the next few days to build a small site from scratch that provides a short portfolio for you and your team.

To describe what features should be implemented, these are the user stories that should be satisfied;

As a client looking to hire a team of developers

I want to visit your site and immediately see a headline about your team

So that I get a concise description of what you have to offer me.

As a client looking to hire a team of developers

I want to visit your site and see a navigation link for 'About, Team, and Contact'

so I can quickly navigate to the areas of the site I'd like to visit.

As a client looking to hire a team of developers

I want to be able to contact the developers by filling out and submitting a form by providing my name, email and message information

So that the team have sufficient information to contact me afterwards

As a client looking to hire a team of developers

I want to click on a navigation link and a corresponding section be made visible in the browser window on the same page

So that I can quickly navigate around the site without having to wait for new pages to be loaded.

As a client looking to hire a team of developers

I want to easily view the site when browsing on my mobile, tablet or desktop

so that I can understand the sites content easily on whatever device I choose to view it in.

As a visually impaired client...

I would like to easily read and understand the text on your site

so I can understand the information available

As a blind client...

I would like to easily understand how to navigate the site after my screen reader reads me the content of the site

so I can understand the information available.

As a client with JavaScript disabled in their browser for security reasons

I would like to visit your site and get a similar experience to viewing your site on a modern browser with JavaScript enabled

so that I don't feel like I'm completely in the stone age.