jQuery.ready()

ready()html


JavaScript代码放在哪里?

浏览器在渲染HTML页面时,是从头至尾,一行一行地检查执行的。若是JavaScript代码在前面,HTML元素在后面,遇到JavaScript选择一个还未渲染的HTML元素将会选择失败。所以,一般的作法是将脚本放在页面最后(紧跟在</body>标签以前)。jquery

 

ready()事件

若是将JavaScript代码分和HTML离出来,脚本又在<head></head>之间引入,会不会出问题?ajax

要避免上述问题,可使用ready()事件。浏览器

jQuery的ready()事件一般在DOMContentLoaded事件加载后执行。所以能够保证JavaScript代码被执行。ide

 


 

<!DOCTYPE html>
<html>
<head>
<title>TODO supply a title</title>
<meta charset="UTF-8">
<script src="https://ajax.aspnetcdn.com/ajax/jquery/jquery-3.3.1.min.js"></script>
<script>
function myfun() {
var $window = $(window);
var $slideAd = $("#slideAd");
var endZone = $("footer").offset().top - $window.height() - 300;

$(window).scroll(function () {
if (endZone < $window.scrollTop()) {
$slideAd.animate({'right': '0px'}, 250);
} else {
$slideAd.stop(true).animate({'right': '-360px'}, 250);
}
});
}
</script>
<style>
body{
min-width: 600px;
background-color: #999;
margin-bottom: 60px;
}
#slideAd {
width: 130px;
height: 60px;
color: #fff;
bordet-top: 1px solid #fff;
border-letf: 1px solid #fff;
border-bottom: 1px solid #fff;
background-color: #e99295;
padding: 25px 20px 10px 85px;
position: fixed;
bottom: 20px;
right: -235px;
text-transform: uppercase;
}
</style>
</head>
<body>
<br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br>
<br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br>
<br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br>
<br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br>
<br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br>
<br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br>
<br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br>
<footer>&copy;2018</footer>
<div id="slideAd">nflkjhtgrfdsss</div>

<script>
$(document).ready(function () {
myfun();
});
</script>
</body>
</html>spa