Simple LCD Menu Help

I am new to arduino and programming in general. I am trying to make an arduino coffee grinder/maker.
Having trouble navigating the menu based on values from reading a joystick. I have posted with a similar problem before but have completely rewritten the script. Please help I have been stuck for days.

* This script operates all functions for the coffee maker
 *  The following pins are:
 *  A0  joystick x direction    designated
 *  A1  joystick y direction    designated
 *  A2  tempurature pin         designated
 *  1         
 *  2   d7- LCD                 designated
 *  3   d6- LCD                 designated
 *  4   d5- LCD                 designated
 *  5   d4- LCD                 designated
 *  6   UltraS trigger pin      designated
 *  7   UltraS Echo pin         designated
 *  8   LED1-displayleft        designated
 *  9   LED2-displaycenter      designated
 * 10   LED3-desplayright       designated
 * 11   en- LCD                 designated
 * 12   rs- LCD                 designated
 * 13   buzzer PIN              designated
 * 14                
 * 15   Relay1- Grinder
 * 16   Relay2- Heater         
 * 17   Relay3- water pump
 * 18   Relay4- 
 * 19
 * 20
 * 21
 * 30   Joystickclick-button    designated
// include the library code:
#include <LiquidCrystal.h>
#include <NewPing.h>
int a=0;

//LEDs and Buzzer
#define buzzer 13
#define LED1 8
#define LED2 9
#define LED3 10

//for joystick
int button= 30; 
int joystickx= A0;
int joysticky = A1; 
char beverage = 0;

//vars for tempurature sensor
int temppin= A2;
int preValue = 0;
float celsius;
float celsiustot=0;
float celsiusavr=0;

//for ultrasonic sensor
#define TRIGGER_PIN 6
#define ECHO_PIN 7
#define MAX_DISTANCE 200
int cmtot=0;
int cm;

// initialize the library by associating any needed LCD interface pin
// with the arduino pin number it is connected to
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

void setup() {
  // set up the LCD's number of columns and rows:
  analogWrite(buzzer, 10);delay(300);analogWrite(buzzer, 0);delay(50);
  analogWrite(buzzer, 100);delay(100);analogWrite(buzzer, 0);delay(50);
  analogWrite(buzzer, 230);delay(100);analogWrite(buzzer, 0);delay(50);
  lcd.print("Hello World!");
  lcd.print("Warming Up...");
  delay(2000); // time required to run set up code
  lcd.print("Select Beverage");
  lcd.setCursor(0,1); lcd.print("swipe---->>>>");
  pinMode(11, OUTPUT);
  int page=0;


void loop() {  
int page=0;
  int x=analogRead(joystickx); 
  x = map(x, 0, 1023, 0, 100);//mapping x inputs to 0-100
  int y=analogRead(joysticky);
  y = map(y, 0, 1023, 0, 100); //mapping y inputs to 0-100

while ((page==0) || (page==1) || (page==2)){
if ((y<=10)){ 
    if (page==0){ //page 1= coffee option "page"
      lcd.print("Click to Select");page=1;delay(300);}
    else if (page==1){ //page 2= Hot water option "page"
      delay(300);lcd.clear(); lcd.print("Hot Water");lcd.setCursor(0,1);
      lcd.print("Click to Select");page=2;delay(300);}}
if (y>=90){
    if (page==2){ 
      lcd.print("Click to Select");page=1;delay(300);}}
if (digitalRead(button)==1){return;}}

Your code would look much nicer if you put each statement and each } on its own line.

To make a nice responsive menu, you should not use delay(). The first delay() in your loop() means that you have to hold a button for up to half a second for it to register. There is a sticky stickies in the Programming forum on using millis() for timing.

One thing thats missing in your approach is to get from page 1 back to page 0.

You're not explaining what your trouble is. Can you describe the difference between observed behavior and desired behavior?