Gau*_*try 5 html javascript css jquery
我想让我的<div>内容在我的网站加载时顺利进入.当网站加载时,他们必须一个接一个地出现.而且,背景图像在被过滤后过晚加载weatherType.这是一个localWeather网页,根据您打开页面的位置为您提供天气信息.
注意: - 请在其他第三方Web开发网站上发布代码,codepen.io以便访问API.
这是我的代码:
$(document).ready(function() {
$(".text-center").fadeIn();
var lon, lat, weatherType, ftemp, ktemp, ctemp, wspeed;
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function(position) {
lon = position.coords.longitude;
lat = position.coords.latitude;
var api = 'https://api.openweathermap.org/data/2.5/forecast?lat=' + lat + '&lon=' + lon + '&appid=bb4b778076b0c8c79c7eb8fcd1fd4330';
$.getJSON(api, function(data) {
// $("#data").html(api);
var city = data.city.name;
weatherType = data.list[0].weather[0].description;
//weatherType="clear sky";
ktemp = data.list[0].main.temp;
console.log(ktemp);
ftemp = (9 / 5 * (ktemp - 273) + 32).toFixed(1);
ctemp = (5 / 9 * (ftemp - 32)).toFixed(1);
wspeed = data.list[0].wind.speed;
wspeed = (wspeed * 5 / 18).toFixed(1);
/* $("#city").addClass("animated fadein",function(){
$("#city").html(city);
}); */
$("#city").addClass("animated fadein");
$("#city").html(city);
$("#weatherType").html(weatherType);
$("#temp").html(ctemp + " ℃");
//$("[name='my-checkbox']").bootstrapSwitch();
$("#degree-toggle").attr("value", $("<div/>").html("℉").text());
var celsius = true;
$("#degree-toggle").on("click", function() {
if (celsius === true) {
$("#temp").html(ftemp + " ℉");
$("#temp").fadeIn();
$("#degree-toggle").attr("value", $("<div/>").html("℃").text());
celsius = false;
} else {
$("#temp").html(ctemp + " ℃");
$("#temp").fadeIn();
$("#degree-toggle").attr("value", $("<div/>").html("℉").text());
celsius = true;
}
});
$("#wspeed").html(wspeed + " kmph");
weatherType=weatherType.toLowerCase();
if (weatherType === "clear sky")
$("body").css("background-image", "url('https://static.pexels.com/photos/281260/pexels-photo-281260.jpeg')");
else if (weatherType === "few clouds")
$("body").css("background-image", "url('https://clearalliance.org/wp-content/uploads/2015/01/CLEAR-see-clear-flowers-e1422658973500.jpg')");
else if (weatherType === "cloudy")
$("body").css("background-image", "url('http://www.gazetteseries.co.uk/resources/images/5360796/')");
else if (weatherType === "sunny")
$("body").css("background-image","url('https://i2-prod.examiner.co.uk/incoming/article10372520.ece/ALTERNATES/s1227b/JS75768352.jpg')");
else if (weatherType==="showers")
$("body").css("background-image","url('http://ak8.picdn.net/shutterstock/videos/1479838/thumb/1.jpg')");
else if(weatherType==="overcast clouds")
$("body").css("background-image","url('https://patchegal.files.wordpress.com/2012/07/img_2406.jpg')");
else if(weatherType==="light rain")
$("body").css("background-image","url('https://i.ytimg.com/vi/LbAigABOm_E/maxresdefault.jpg')");
else
$("body").css("background-image","url('https://www.almanac.com/sites/default/files/image_nodes/thanksgiving-weather.jpg')");
});
});
}
});Run Code Online (Sandbox Code Playgroud)
.text-center{
display: none;
}Run Code Online (Sandbox Code Playgroud)
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<link rel="stylesheet" href="//fonts.googleapis.com/css?family=Open+Sans:300,400,600,700&lang=en" /><script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
</head>
<body>
<div class="text-center" id="content">
<div> <h1><b>Weather Today</b></h1></div><br/>
<h2>Location : <span id="city"></span></h2> <br/>
<h2>Weather : <span id="weatherType"></span></h2><br/>
<h2>Temperature : <span id="temp">
</span>
<input type="button" id="degree-toggle" checked="checked">
</h2><br/>
<h2>Wind Speed : <span id="wspeed"></span></h2><br/>
</div>
</body>
</html>Run Code Online (Sandbox Code Playgroud)
首先我会使用动画来实现平滑的进入,而不仅仅是将元素切换为可见。
其次我不会手动编写元素,如果你有 20 个怎么办?1000呢?
从这样的框架开始,然后根据您的情况进行调整:
超文本标记语言
<div id="elementsInThis">
<div class="K">ELEMENT 1</div>
<div class="K">ELEMENT 2</div>
<div class="K">ELEMENT 3</div>
<div class="K">ELEMENT 4</div>
<div class="K">ELEMENT 5</div>
<div class="K">ELEMENT 6</div>
<div class="K">ELEMENT 7</div>
<div class="K">ELEMENT 8</div>
<div class="K">ELEMENT 9</div>
</div>
Run Code Online (Sandbox Code Playgroud)
JS
var delay = 0;
function animate(element, delay){
window.setTimeout(function(){
element.style.display = 'block';
}, delay*1000)
}
var elements = document.getElementById("elementsInThis").childNodes;
var onlydivs = Object.keys(elements).forEach(function(index, element){
if (elements[element].nodeType !== Node.TEXT_NODE)
animate(elements[element], delay++);
});
Run Code Online (Sandbox Code Playgroud)
CSS
.K{
display: none;
background: red;
border: solid 2px black;
animation-name: appear;
animation-duration: 4s;
animation-fill-mode: forwards;
}
@keyframes appear{from{left:-300px;opacity:0} to{left:0;opacity:1}}
Run Code Online (Sandbox Code Playgroud)
您可以在这里看到它的实际效果:
根据您的喜好修改动画和延迟,还可以绑定到您自己的父级,并在您有更复杂的子级时更好地选择子级。这只是一个演示,但原理是相同的,您可以执行以下操作:
您想利用 CSS 制作适当的(或找到其他人的)动画并将元素的默认显示设置为无(如果您的 HTML 崩溃,可能需要使用可见性)
创建具有固定延迟步骤的延迟函数(我使用步骤 1 * 1000 ms)
利用childNodes forEach()并Object.keys()避免手动将带有动画的 CSS 类绑定到元素
如果你愿意,你可以在不同的 CSS 类中拥有其余的样式
| 归档时间: |
|
| 查看次数: |
551 次 |
| 最近记录: |