Webbteknik 3

Uppgift U7 — Pointer events

I denna uppgift ska du använda pointer events, för att skapa ett program där man både ska kunna använda musen på en "vanlig" dator och använda pekare (fingret) på en pekskärm. Du kommer anpassa kod ifrån exempel till en applikation, för att kunna:

24 min.

Beskrivning och föreberedelse

Programmet är en variant på webbutiken i uppgift 2. Olika kategorier av varor ska visas i en "slideshow", där man ska kunna "svepa"" åt vänster och höger. Sedan ska man kunna dubbelklicka på önskad kategori och visa varorna i den. Där kan man sedan välja varor och lägga in dem i en varukorg. På nästa sida ska man se både varukorgen och en önskelista samt en soptunna. Man ska kunna flytta varor mellan listorna och till soptunnan, genom att dra dem dit.

Uppgiften för extrameriten utförs på en tredje sida, där det finns några kakboxar. Genom att dra isär eller ihop två fingrar ("spread" och "pinch") ska man kunna öppna upp en bild som visar innehållet. Denna del fungerar alltså endast på en pekskärm.

Förberedelse

Programmet som du laddar ner i mappen U7 består utav flera filer. Det finns flera HTML-filer, flera CSS-filer och flera JS-filer. Börja med att titta igenom allt material för att se hur filerna hänger ihop och hur koden i filerna fungerar. Genom att utgå från föreläsningens exempel, ska sedan följande deluppgifter utföras.

Det är viktigt att du först lägger lite tid på att både gå igenom allt material i uppgiften, för att se hur programmet är uppbyggt, samt att du också lägger tid på att gå igenom föreläsningens exempel, innan du försöker lösa uppgifterna. Genom att först skaffa dig en god kunskap om hur "pointer events" används för de olika formerna av interaktion, blir det lättare att lösa uppgiften.

Deluppgifter

a. Visa kategorier som "slides" som kan svepas åt vänster och höger

På en normalstor skärm ska fyra kategorier i taget visas, men med CSS-koden ska det vara flexibelt, så att det blir mellan en och fyra kategorier, beroende på skärmens bredd. Visas det x antal hela kategorier, ska det också svepas så många kategorier, då man drar åt vänster eller höger, under förutsättning att det finns så många kategorier kvar att svepa.

Det finns redan CSS- och JavaScript-kod från ett exempel inlagt i uppgiften och du ska göra följande förändringar av koden. Öppna först upp sidan index.html i Live Server, så att du direkt ser förändringarna där.

b. Dubbelklick för att välja kategori

I denna deluppgift ska du lägga till kod i filen index.js, förutom en programrad som ska läggas in i categories.js, vilket nämns i nedanstående punkter.

c. Drag-and-drop i listorna på den andra sidan

d. Kakboxarna på tredje sidan ska kunna öppnas med två fingrar (extramerit, ej obligatoriskt)

Denna del kommer endast fungera på en pekskärm, eftersom man här ska använda två pekare (fingrar). Trycker man ned två fingara på en kakbox och drar isär fingrarna ska en bild med innehållet zoomas upp. Drar man ihop fingrarna, ska bilden zoomas ner. Om man zoomat upp minst 50%, då man tar upp fingrarna, ska bilden fortsätta upp till maximal zoom. Annars zommas den ner till minimal zoom igen. Det ska se ut på följande sätt, om man zoomar upp bilden på den andra kakboxen.

Ruta med olika kategorier av varor

Publicera dina filer

Krav

Kraven på det du skapar i denna uppgift är följande.

Godkänt

Följande krav måste vara uppfyllda, för att du ska bli godkänd.

Extramerit

Följande är inte obligatoriskt för att bli godkänd, men kan ge en extra förtjänst som tas med i bedömning av kursens slutbetyg.