javascript-网页换肤案例

本文解析JavaScript中比较运算符的使用,包括类型转换规则,以及逻辑运算符的写法。同时,深入探讨网页换肤功能的实现原理,包括事件绑定、样式文件的动态替换等关键技术。

小结

 


比较运算符,请问 3 == “3” 的结果
true
等号两边的数据类型不一样 首先会进行转换,然后再进行比较

比较运算符,请问 3 === “3” 的结果
false
有三个等号会直接比较等号,两边的数据不会进行转换


逻辑运算符,请写出,与,或,非,的写法
与,&&
或,||
非,!

自增,a=3,请问alert(a++)的结果是多少
3

自增,a=3,请问alert(--a)的结果是多少
2


事件,标签对象oDiv绑定点击事件,点击触发move函数
oDiv.onclick = move

 

 

网页换肤的原理

变更样式

 

具体的实现步骤

1 实现点击事件

通过点击按钮来换肤的

需要,点击事件

onClick

1,获取按钮

2,绑定事件

<link rel="stylesheet" href="m1.css">

<script>
    // 当页面窗口加载完成后,执行函数中的内容
    window.onload = function () {
        // 通过id,选择到了一个标签对象
        var oBtn2 = document.getElementById('btn2')
        // 给标签对象添加一个鼠标点击事件
        oBtn2.onclick = chang_skin
    }


    function chang_skin() {
        alert('btn2 clicked')
    }

</script>


<input type="button" value="更换为皮肤1" id="btn1">
<input type="button" value="更换为皮肤2" id="btn2">

<h1>python一期学员网</h1>

<div>
    我们是python一期学员,现在学习有三个月了。<br>
    还有六个月时间就毕业了。
</div>

 

2,修改链接的样式文件

点击btn2,让link所链接的css文件,发生变化。让它指向m2.css

a,获取link标签对象

标签 = 通过getElementById()

b,修改link标签对象的herf属性的值

如何修改一个对象的属性值?

对象.属性 = 新值-

因此,只需要通过

标签.herf =新值



<script>
    // 当页面窗口加载完成后,执行函数中的内容
    window.onload = function () {
        // 通过id,选择到了一个标签对象
        var oBtn2 = document.getElementById('btn2')
        // 给标签对象添加一个鼠标点击事件
        oBtn2.onclick = chang_skin

    }


    function chang_skin() {
        // 获取link标签对象
        var oLk = document.getElementById('lk')
        // 修改link标签的herf属性
        oLk.href = "m2.css"
    }

</script>

<link rel="stylesheet" href="m1.css" id="lk">
<input type="button" value="更换为皮肤1" id="btn1">
<input type="button" value="更换为皮肤2" id="btn2">

<h1>python一期学员网</h1>

<div>
    我们是python一期学员,现在学习有三个月了。<br>
    还有六个月时间就毕业了。
</div>

 

知识点

对象.事件 = 函数的本体

 

### JavaScript 实现网站换肤功能 通过分析提供的引用内容以及常见的实现方式,可以总结出一种基于 JavaScript 的网站换肤功能的实现方法。以下是详细的说明和代码示例。 #### 基本原理 网站换肤功能的核心在于动态修改网页中的 CSS 属性,尤其是 `background-image` 或其他与主题相关的样式属性。通常的做法是监听用户的交互行为(如点击某个按钮或图片),然后更新页面的样式[^1]。 #### HTML 结构 HTML 提供了一个简单的结构来展示可供选择的主题皮肤。这里以一组 `<li>` 元素为例,其中每个 `<li>` 包含一张代表不同主题的图片: ```html <ul> <li><img src="themes/theme1.jpg" alt="Theme 1"></li> <li><img src="themes/theme2.jpg" alt="Theme 2"></li> <li><img src="themes/theme3.jpg" alt="Theme 3"></li> </ul> ``` #### CSS 样式 CSS 负责定义基础布局和初始样式。例如,移除默认列表样式并调整图片大小以便于用户操作: ```css ul { list-style: none; padding: 0; } li { display: inline-block; margin-right: 10px; } li img { width: 50px; height: 50px; cursor: pointer; } ``` #### JavaScript 实现逻辑 JavaScript 是整个功能的关键部分。它负责捕获用户的点击事件,并将所选主题应用到页面上。以下是一个完整的脚本实现: ```javascript document.addEventListener('DOMContentLoaded', function () { const images = document.querySelectorAll('ul li img'); images.forEach(function (image) { image.onclick = function () { document.body.style.backgroundImage = `url(${this.src})`; localStorage.setItem('theme', this.src); }; }); // 加载保存的主题 const savedTheme = localStorage.getItem('theme'); if (savedTheme) { document.body.style.backgroundImage = `url(${savedTheme})`; } }); ``` 此代码片段实现了以下几个功能: - 使用 `querySelectorAll` 获取所有的主题图片元素。 - 为每张图片绑定点击事件处理程序,在点击时更改页面背景图像。 - 利用 `localStorage` 存储用户的选择,使得刷新页面后仍能保留上次选定的主题[^4]。 #### 完整代码示例 将以上各部分内容组合起来形成一个完整的 HTML 文件如下所示: ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Website Theme Switcher</title> <style> ul { list-style: none; padding: 0; } li { display: inline-block; margin-right: 10px; } li img { width: 50px; height: 50px; cursor: pointer; } </style> </head> <body> <h1>Select a theme:</h1> <ul> <li><img src="themes/theme1.jpg" alt="Theme 1"></li> <li><img src="themes/theme2.jpg" alt="Theme 2"></li> <li><img src="themes/theme3.jpg" alt="Theme 3"></li> </ul> <script> document.addEventListener('DOMContentLoaded', function () { const images = document.querySelectorAll('ul li img'); images.forEach(function (image) { image.onclick = function () { document.body.style.backgroundImage = `url(${this.src})`; localStorage.setItem('theme', this.src); }; }); const savedTheme = localStorage.getItem('theme'); if (savedTheme) { document.body.style.backgroundImage = `url(${savedTheme})`; } }); </script> </body> </html> ``` 这段代码提供了一种简单而有效的机制让用户自定义其浏览体验,同时保持了良好的用户体验连续性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鲸鱼编程pyhui

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值