当前位置: 首页 > news >正文

一键换肤的简单实现

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

以前看到一键换肤的效果很炫酷,其实想一想,实现很简单,于是乎也写一个吧。

上代码:

oneBtnChangeSkin.html ( 引入bootstrap.min.css 和 jquery.js )

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8"/>
    <meta http-equiv="cache-control" content="no-cache"/>
    <title>one button to change skin</title>
    <link rel="stylesheet" href="dist/bootstrap/css/bootstrap.min.css">
</head>
<body>
<header id="header" class="row navbar-fixed-top" style="border-bottom:1px solid #eee;">
    <div class="col-md-1"></div>
    <div class="navbar-brand">One Piece</div>
    <div class="text-center col-md-9">
        <div class="col-md-4"></div>
        <div class="col-md-4" style="margin-top:10px;">
            <input type="text" class="form-control col-md-12" placeholder="search..." style="padding-right:34px;"/>
            <span class="glyphicon glyphicon-search" style="position: absolute;right:25px;top:10px;"></span>
        </div>
        <ul class="nav navbar-nav navbar-right">
            <li>
                <a href="##" title="Click to change skin" onclick="listShow();" onmouseleave="listHide();">
                    Skin&nbsp;<span class="glyphicon glyphicon-triangle-bottom"></span>
                    <div id="SkinList" class="row" style="display:none;position:absolute;width:360px;height:400px;overflow:auto;margin-top:16px;">
                        
                    </div>
                </a>
            </li>
            <li><a href="##">Home</a></li>
            <li><a href="##">About</a></li>
            <li><a href="##">Contact</a></li>
        </ul>
    </div>
</header>
<div class="row" style="margin-top:50px;height:540px;">
    <div id="left-box" class="col-md-3" style="height:540px;"></div>
    <div id="right-box" class="col-md-9" style="height:540px;"></div>
</div>
<script src="dist/jquery/jquery-3.1.1.min.js"></script>
<script src="javascript/oneBtnChangeSkin.js"></script>
</body>
</html>

oneBtnChangeSkin.js

/**
 * Created by lonely.dawn on 2017-02-06.
 * 一键换肤的简单实现
 */

//模拟后台返回的数据 , 记录各个需要切换样式的点 (这里是简单实现 , 只给出三个 经典ERP布局模块点的变换)
var skins= [{
        top:'resources/images/gray-top.jpg',
        left:'resources/images/gray-left.jpg',
        right:'resources/images/gray-right.jpg',
        thumbnail:'resources/images/gray-thumbnail.jpg',
        title:'经典雅致灰',
        des:'灰色穿插于黑白之间,代表着幽暗、典雅、寂寞与空灵。'
    }, {
        top:'resources/images/blue-top.jpg',
        left:'resources/images/blue-left.jpg',
        right:'resources/images/blue-right.jpg',
        thumbnail:'resources/images/blue-thumbnail.jpg',
        title:'宁静幽雅蓝',
        des:'蓝是一种纯净的颜色,代表着宁静、理智、淡泊、广阔与忧郁。'
    }];

//页面加载完毕,为skin list添加项
$(function(){
    for(var i=0;i<skins.length;i++) {
        $("#SkinList").append(
            "<div class='media' onclick='skinToggle("+i+")'>" +
            "<a href='#' class='pull-left'>" +
            "<img src='" + skins[i].thumbnail + "' title='Toggle to change skin.'/>" +
            "</a>" +
            "<div class='media-body'>" +
            "<h3 class='media-heading'>" + skins[i].title + "</h3>" +
            "<p class='text-left'>" + skins[i].des + "</p>" +
            "</div>" +
            "</div>"+
            "<hr/>"
        );
    }
    //默认使用下标为0的皮肤
    skinToggle(0);
});

//skin list 下拉框显示控制
var listShow=function(){
    $("#SkinList").css("display","block");
};

var listHide=function(){
    $("#SkinList").css("display","none");
};

//皮肤切换控制
var skinToggle=function(index){
    var item=skins[index];
    console.log(index);
    $("#header").css("background","url("+item.top+")");
    $("#header").css("background-size","cover");

    $("#left-box").css("background","url("+item.left+")");
    $("#left-box").css("background-size","cover");

    $("#right-box").css("background","url("+item.right+")");
    $("#right-box").css("background-size","contain");
};

 

很简单的代码,然后来体验一下这酷炫的感觉

在线演示 (1月后 17-03-10 腾讯云服务器到期,不一定续)

转载于:https://my.oschina.net/lonelydawn/blog/837738

相关文章:

  • 使用Percona Toolkit解决Mysql主从不同步问题【备忘】
  • java设计模式-懒汉设计模式
  • 配置服务器来调整性能(一)——概论
  • 深入理解ByteBuffer(转)
  • 质量管理体系歌--产品实现
  • Winfrom 使用TabControl控件模拟程序向导步骤
  • 开放才能进步!Angular和Wijmo一起走过的日子
  • T-SQL使用案例——结果数据前面自动补0
  • 康托展开
  • CC254x/CC2540/CC2541库函数速查(转)
  • Netscaler的超高端口复用助力应对公网地址紧张
  • HTML页面跳转的5种方法
  • ​ssh-keyscan命令--Linux命令应用大词典729个命令解读
  • 应该知道的Linux技巧(转载)
  • Oracle如何查看执行计划
  • javascript从右向左截取指定位数字符的3种方法
  • maven工程打包jar以及java jar命令的classpath使用
  • MySQL Access denied for user 'root'@'localhost' 解决方法
  • node-glob通配符
  • python 学习笔记 - Queue Pipes,进程间通讯
  • Spring Boot快速入门(一):Hello Spring Boot
  • SpringCloud集成分布式事务LCN (一)
  • swift基础之_对象 实例方法 对象方法。
  • 爱情 北京女病人
  • 彻底搞懂浏览器Event-loop
  • 关于Flux,Vuex,Redux的思考
  • 开发了一款写作软件(OSX,Windows),附带Electron开发指南
  • 普通函数和构造函数的区别
  • 浅谈JavaScript的面向对象和它的封装、继承、多态
  • 深度学习入门:10门免费线上课程推荐
  • 吐槽Javascript系列二:数组中的splice和slice方法
  • 我这样减少了26.5M Java内存!
  • 验证码识别技术——15分钟带你突破各种复杂不定长验证码
  • k8s使用glusterfs实现动态持久化存储
  • ​MPV,汽车产品里一个特殊品类的进化过程
  • %3cli%3e连接html页面,html+canvas实现屏幕截取
  • (2)MFC+openGL单文档框架glFrame
  • (windows2012共享文件夹和防火墙设置
  • (zz)子曾经曰过:先有司,赦小过,举贤才
  • (附源码)springboot工单管理系统 毕业设计 964158
  • (算法)N皇后问题
  • (转)程序员技术练级攻略
  • .bat批处理(九):替换带有等号=的字符串的子串
  • .bat批处理(六):替换字符串中匹配的子串
  • .NET 5种线程安全集合
  • .net wcf memory gates checking failed
  • .NET 设计模式—适配器模式(Adapter Pattern)
  • .Net的C#语言取月份数值对应的MonthName值
  • .NET中使用Redis (二)
  • @for /l %i in (1,1,10) do md %i 批处理自动建立目录
  • [ vulhub漏洞复现篇 ] ThinkPHP 5.0.23-Rce
  • [ 渗透测试面试篇 ] 渗透测试面试题大集合(详解)(十)RCE (远程代码/命令执行漏洞)相关面试题
  • [ 隧道技术 ] cpolar 工具详解之将内网端口映射到公网
  • [120_移动开发Android]008_android开发之Pull操作xml文件
  • [AIGC] Spring Interceptor 拦截器详解