javascript - JS 网页换肤之问题
世界只因有你
世界只因有你 2017-07-05 10:50:04
0
4
897

<link href="green.css" rel="stylesheet" type="text/css" />

window.onload = function ()
{
    var oLink = document.getElementsByTagName("link")[0];
    var oSkin = document.getElementById("skin").getElementsByTagName("li");
    
    for(var i = 0; i< oSkin.length; i++)
    {        
        oSkin[i].onclick = function ()
        {
            for(var p in oSkin) oSkin[p].className = "";
            this.className = "current";
            oLink['href'] = this.id + ".css";                
        }    
    }
    
};
<body>
<p id="outer">
    <ul id="skin">
        <li id="red" title="红色">红</li><li id="green" class="current" title="绿色">绿</li><li id="black" title="黑色">黑</li>
    </ul>
    <ul id="nav">
        <li><a href="javascript:;">新闻</a></li>
        <li><a href="javascript:;">娱乐</a></li>
        <li><a href="javascript:;">体育</a></li>
        <li><a href="javascript:;">电影</a></li>
        <li><a href="javascript:;">音乐</a></li>
        <li class="last"><a href="javascript:;">旅游</a></li>
    </ul>
</p>
</body>

this.className = "current"表示什么? 是对应当前页面是绿色状态下的按钮吗

世界只因有你
世界只因有你

全部回复(4)
Peter_Zhu

this.className = "current";
将当前被点击的那个<li> 的class 设为 current,达到动态更改标签样式的目的

巴扎黑

.css 应该是一个样式文件,通过id来载入指定的皮肤样式。

link 是一个 html element,用来载入资源的。

Ty80

一般来说,换肤的话会涉及到很多CSS。我一般都会把外联的CSS换掉来做这个功能。
假设我现在有一个HTML文件和两个HTML皮肤(就是俩CSS文件,一红一黄)。
简单的代码如下
<!DOCTYPE html>
<html>
<head>

<meta charset="utf-8">
<title>test</title>
<link id="css" rel="stylesheet" href="red.css">

</head>
<body>

<button id="red">red</button>
<button id="yellow">yellow</button>
<script>
    var css = document.getElementById("css");
    var red = document.getElementById("red");
    var yellow = document.getElementById("yellow");
    red.onclick = function () {
        css.href = "red.css";
    };
    yellow.onclick = function () {
        css.href = "yellow.css";
    };
</script>

</body>
</html>
大概就是这个感觉

滿天的星座

你这个代码应该没完,他这个代码的意思估计是修改皮肤,动态加载css样式。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板