Calculator Tools Calculator Tools
Create

Weather Watcher

Jan 9, 2024

About this app

Watch the weather around the world with Weather Watcher app. Get real-time weather updates and forecasts for any location.

Weather Watcher Weather Watcher Get Weather

Related apps

Put this on your site

Source

                    <html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1">

<title>Weather Watcher</title>
<meta name="description" content="Watch the weather around the world with Weather Watcher app. Get real-time weather updates and forecasts for any location.">
<meta name="keywords" content="weather, weather watcher, weather app, global weather, weather forecast">

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet"
integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
<link href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;700&display=swap" rel="stylesheet">

<script type="text/javascript">
try {
// App Javascript Goes Here. Place your entire script content inside the try block for error handling.

// This will run when the DOM is ready.
document.addEventListener("DOMContentLoaded", function() {
// Function to fetch weather data from API
function fetchWeatherData(city) {
var apiKey = 'YOUR_API_KEY';
var apiUrl = 'https://api.weatherapi.com/v1/current.json?key=' + apiKey + '&q=' + city;

$.ajax({
url: apiUrl,
method: 'GET',
success: function(response) {
// Display weather data on the page
displayWeatherData(response);
},
error: function() {
alert('Failed to fetch weather data. Please try again later.');
}
});
}

// Function to display weather data on the page
function displayWeatherData(data) {
var location = data.location.name + ', ' + data.location.country;
var temperature = data.current.temp_c + '°C';
var condition = data.current.condition.text;
var icon = data.current.condition.icon;

$('#location').text(location);
$('#temperature').text(temperature);
$('#condition').text(condition);
$('#weather-icon').attr('src', 'https:' + icon);

$('#weather-container').fadeIn();
}

// Event listener for form submission
$('#weather-form').on('submit', function(event) {
event.preventDefault();

var city = $('#city').val();

// Clear input field
$('#city').val('');

// Fetch weather data for the entered city
fetchWeatherData(city);
});
});

} catch (error) {
// This will throw the error to the parent window.
throw error;
}
</script>

<style>
body {
font-family: 'Roboto', sans-serif;
background-color: #f8f9fa;
}

.container {
max-width: 500px;
margin: 0 auto;
padding: 20px;
text-align: center;
}

h1 {
font-weight: 700;
margin-bottom: 20px;
color: #333;
}

form {
margin-bottom: 40px;
}

input[type="text"] {
padding: 10px;
width: 100%;
border: 1px solid #ccc;
border-radius: 5px;
font-size: 16px;
}

button {
padding: 10px 20px;
background-color: #007bff;
color: #fff;
border: none;
border-radius: 5px;
font-size: 16px;
cursor: pointer;
transition: background-color 0.3s ease;
}

button:hover {
background-color: #0056b3;
}

#weather-container {
display: none;
margin-top: 40px;
}

#weather-icon {
width: 100px;
height: 100px;
margin-bottom: 20px;
}

#location {
font-weight: 700;
font-size: 24px;
margin-bottom: 10px;
}

#temperature {
font-weight: 700;
font-size: 48px;
margin-bottom: 10px;
}

#condition {
font-size: 18px;
}
</style>
</head>
<body>
<div id="main-container" class="container">
<h1>Weather Watcher</h1>

<form id="weather-form">
<input type="text" id="city" placeholder="Enter city name" required>
<button type="submit">Get Weather</button>
</form>

<div id="weather-container">
<img id="weather-icon" src="" alt="Weather Icon">
<h2 id="location"></h2>
<h3 id="temperature"></h3>
<p id="condition"></p>
</div>
</div>
</body>
</html>