zoukankan      html  css  js  c++  java
  • 使用JS实现网页动态换肤

    现在很多网站都有换肤功能,通过切换风格可以让同一个网站带给用户不一样的体验,那么如何动态切换风格呢?
    我们现在的网站都是结构,表现,行为分离,所以我们可以通过切换CSS样式来更改页面风格。
    如果你的网站使用了jQuery,那么我们可以定义一个jQuery扩展方法,用来动态切换CSS样式
    代码如下:

    jQuery.extend({
        //根据ID查找样式,如果存在则删除这个样式
        removeStyleSheet: function(id) {
            var existing = document.getElementById(id);
            if (existing) {
                existing.parentNode.removeChild(existing);
            }
        }, 
        //风格切换  id:样式标识ID   url:样式路径
        swapStyleSheet: function(id, url) {
            var doc = document;
            this.removeStyleSheet(id);
            var ss = doc.createElement("link");
            ss.setAttribute("rel", "stylesheet");
            ss.setAttribute("type", "text/css");
            ss.setAttribute("id", id);
            ss.setAttribute("href", url);
            doc.getElementsByTagName("head")[0].appendChild(ss);
        }
    });
    

    然后我们就可以在调用这个方法来实现换肤功能:

    $.swapStyleSheet("DefaultStyle", "Styles/DefaultStyle.css");
    

    如果你的网站样式比较固定 那么可以使用以下的JS方法:

    function C(id) {
        return !id ? null : document.getElementById(id);
    }
    // 风格切换  cssname css文件名
    function themestyle(cssname) {
        if (!C('themestyle')) {
            css = document.createElement('link');
            css.id = 'themestyle',
            css.type = 'text/css';
            css.rel = 'stylesheet';
            var headNode = document.getElementsByTagName("head")[0];
            headNode.appendChild(css);
        }
        // 引用的CSS文件的地址
        C('themestyle').href = 'Styles/' + cssname + '.css';
    }
    

    然后调用以上方法即可:themestyle("DefaultStyle");

    作者:Crazy Ma
    出处:http://www.cnblogs.com/intcry
    ♪:30%的技术+70%的精神,帮助别人得到他想要的,你就能得到你想要的! ♪

  • 相关阅读:
    apache-kylin 权威指南—读书笔记
    数据仓库之数据仓库环境——读书笔记
    R 语言—基本绘图
    MapReduce 过程分析
    HDFS 的运行机制
    R 语言贷款月供数据分析
    UML 简介笔记
    为什么要学习 UML?
    scrum 项目的基本模式
    elasticsearch 集群配置
  • 原文地址:https://www.cnblogs.com/intcry/p/2110486.html
Copyright © 2011-2022 走看看