上一节我们详细讲解了JS中的Cookie,本节我们将学习如何通过JS操作浏览器窗口。浏览器窗口对象对应window对象,由window对象来进行控制。
问:如果想要更改浏览器窗口大小和位置,该怎么办?
答:很多读者都看到可以使用window.resizeTo()函数来更改浏览器窗口大小,通过window.moveTo()来更改浏览器窗口的位置。可是由于现代浏览器默认禁止脚本修改浏览器窗口大小,所以这个方法看不到效果。我们可以通过window.open()来重新打开一个窗口,并进行大小的修改和位置的移动,实现控制浏览器的效果。
比如这里对浏览器窗口进行修改,但是浏览器没有反应,这两个函数算是“废了”。
/* 注意,浏览器禁止脚本修改窗口大小,所以看不到该代码操作无效 */ window.resizeTo(500,300)//更改浏览器窗口宽高为500*300 window.moveTo(200,200)//更改浏览器窗口位置到(200,200)的位置
不过我们可以通过window.open()来看到窗口发生变化:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Dotcpp</title>
</head>
<body>
<button onclick="openNewWindow()">点击打开新窗口</button>
<script>
function openNewWindow() {
// 创建新窗口并指定大小和位置
const newWindow = window.open(
'about:blank',
'newWindow',
'width=600,height=400,left=100,top=100,resizable=yes'
);
// 在新窗口中添加内容
if (newWindow) {
newWindow.document.write(`
<html>
<head><title>新窗口</title></head>
<body>
<h1>这是一个新窗口</h1>
<p>尺寸:600x400</p>
<p>位置:left=100, top=100</p>
<button onclick="window.resizeTo(800,600)">调整为800x600</button>
<button onclick="window.moveTo(200,150)">移动到(200,150)</button>
<button onclick="window.resizeTo(600,400);window.moveTo(100,100)">重置</button>
</body>
</html>
`);
} else {
alert('请允许弹出窗口');
}
}
</script>
</body>
</html>在新窗口里,我们就可以调整浏览器窗口大小和位置,实现我们的想法。
下面我们讲讲如何对网页内容进行滚动。
通过下面的2个属性对页面内容进行左右和上下拖动:
| 属性 | 描述 |
|---|---|
| scrollLeft | 元素内容向左滚动的像素数(被隐藏在内容区域左侧的像素数) |
| scrollTop | 元素内容向上滚动的像素数(被隐藏在内容区域上方的像素数) |
下面我们来设计一个返回顶部功能:对于这几个滚动属性,读者一定对scrollTop不陌生了。平常我们浏览网页时,我们都能看到一个向上的箭头(返回顶部),我们只要点击该箭头就能回到页面顶部,就不用一点一点地滑动页面了。(当然,键盘上的Home键也能实现这个效果)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>返回顶部</title>
<style>
/* 设置按钮样式 */
#top {
font-size: 16px;
writing-mode: vertical-lr;
display: block;
height: 80px;
width: 30px;
background-color: yellowgreen;
text-decoration: none;
color: #333;
text-align: center;
padding: 5px;
/* 固定在右下角 */
position: fixed;
right: 20px;
bottom: 100px;
z-index: 1000;
}
#top:hover {
background-color: #8bc34a;
}
</style>
</head>
<body>
<a href="javascript:void(0);" id="top">返回顶部</a>
<script>
let content =''
/* 1. 先让页面足够长:通过for循环+innerHTML(+=)实现 */
for (let i = 0; i < 200; ++i) {
content+='Dotcpp编程<br>'
}
document.querySelector('body').innerHTML+=content
/* 3. 事件监听,点击实现返回顶部操作 */
document.querySelector('#top').addEventListener('click', function() {
// 平滑滚动到顶部
window.scrollTo({
top: 0,
behavior: 'smooth'
});
// 或者使用这种方式(立即滚动)
// window.scrollTo(0, 0);
});
</script>
</body>
</html>总结:本节我们主要学习JS如何操作浏览器窗口,包括新窗口的大小设置和位移,如何制作一个一键返回按钮等。
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程