Angularjs切换网站配色模式简单示例2(切换body元素的class)

一个网站可以有多种配色方案,例如正常模式,夜间模式等。

简单示例一个通过点击toggle 按钮,切换body元素的class,达到切换配色模式的angularjs小app。

1. Live范例可以在以下Codepen网址查看: http://codepen.io/ChristyWang/pen/NPxNMx

2. Toggle button源代码由以下网站生成:https://proto.io/freebies/onoff/

3. 主要文件有两个:index.html和main.css。

index.html文件代码如下:

<!DOCTYPE html>
<html>

<head>
    <link rel='stylesheet' type='text/css' href='main.css'>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.10/angular.min.js"></script>
    <script>
        var myApp = angular.module('App', []);

        myApp.controller('AppController',
            function($scope) {
        <span style="white-space:pre">	</span>//默认lightswitch关闭
                $scope.lightswitch = 'off';
                $scope.switchTheme = function() {
                    var checkProperty = document
                        .getElementById('myonoffswitch').checked;
                    //如果toggle button被点击,body元素class设为“on”
                    if (checkProperty) {
                        $scope.lightswitch = 'on';
                    } 
                    //如果toggle button再次被点击,body元素class设为“off”
                    else {
                        $scope.lightswitch = 'off';
                    }
                }
            });
    </script>
</head>

<body ng-app='App' ng-controller='AppController' ng-class="lightswitch">
    <div class="onoffswitch">
        <input type="checkbox" name="onoffswitch" class="onoffswitch-checkbox" id="myonoffswitch" ng-click="switchTheme()">
        <label class="onoffswitch-label" for="myonoffswitch"> <span class="onoffswitch-inner"></span>
            <span class="onoffswitch-switch"></span>
        </label>
    </div>
    <p class='p1'>test line 1</p>
    <p class='p2'>test line 2</p>
</body>

</html>

main.css文件代码如下:

 /*for light swtich*/
 .off p {
	color: red;
}

body.on{
	background-color:grey;
}
 .on p {
	color: blue;
}

/*for the toggle button*/
.onoffswitch {
    position: relative; width: 67px;
    -webkit-user-select:none; -moz-user-select:none; -ms-user-select: none;
}
.onoffswitch-checkbox {
    display: none;
}
.onoffswitch-label {
    display: block; overflow: hidden; cursor: pointer;
    border: 2px solid #999999; border-radius: 20px;
}
.onoffswitch-inner {
    display: block; width: 200%; margin-left: -100%;
    -moz-transition: margin 0.3s ease-in 0s; -webkit-transition: margin 0.3s ease-in 0s;
    -o-transition: margin 0.3s ease-in 0s; transition: margin 0.3s ease-in 0s;
}
.onoffswitch-inner:before, .onoffswitch-inner:after {
    display: block; float: left; width: 50%; height: 22px; padding: 0; line-height: 22px;
    font-size: 14px; color: white; font-family: Trebuchet, Arial, sans-serif; font-weight: bold;
    -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box;
}
.onoffswitch-inner:before {
    content: "ON";
    padding-left: 10px;
    background-color: #0064D2; color: ;
}
.onoffswitch-inner:after {
    content: "OFF";
    padding-right: 10px;
    background-color: #F0F0F0; color: #999999;
    text-align: right;
}
.onoffswitch-switch {
    display: block; width: 18px; margin: 2px;
    background: #FFFFFF;
    border: 2px solid #999999; border-radius: 20px;
    position: absolute; top: 0; bottom: 0; right: 41px;
    -moz-transition: all 0.3s ease-in 0s; -webkit-transition: all 0.3s ease-in 0s;
    -o-transition: all 0.3s ease-in 0s; transition: all 0.3s ease-in 0s;
}
.onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-inner {
    margin-left: 0;
}
.onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-switch {
    right: 0px;
} 

4. 截图展示:

lightswich off:

lightswitch on:

时间: 2024-10-27 12:23:59

Angularjs切换网站配色模式简单示例2(切换body元素的class)的相关文章

Angularjs切换网站配色模式简单示例

一个网站可以有多种配色方案,例如正常模式,夜间模式等. 简单示例一个通过点击按钮,更换css文件,达到切换配色模式的angularjs 小app. 主要文件有三个:index.html(主文件),white.css(白色背景配色方案css文件),black.css(黑色背景配色方案css文件). index.html文件代码如下: <!DOCTYPE html> <html> <head> <link rel='stylesheet' type='text/css

用angularjs做简单的tab切换

用angularjs做简单的tab切换: 页面部分 <div> <div id="tabs" ng-controller="TabsCtrl"> <ul> <li ng-repeat="tab in tabs" ng-class="{active:isActiveTab(tab.url)}" ng-click="onClickTab(tab)">{{tab.t

动态网站开发技术学习2:VS 2010制作作第一个简单示例网站

制作一个简单示例网站的步骤: 一,启动VS 2010开发环境,选择菜单中的"文件",选择其中的"新建",再选择"网站",会弹出"新建网站"对话框. 二,在"新建网站"的对话框,在"已安装模板"中选择Visual C#,右侧的选择"ASP.NET网站"选项,单击"新建网 站"中的"文件系统",下拉菜单中有"文件系统&qu

HAProxy基本配置、调度算法与tcp、http、heath模式配置示例

一.HAProxy安装 1.HAProxy简单介绍 HAProxy虽然名字前有HA,但它并不是一款高可用软件,而是一款用于实现负载均衡的软件,可实现四层与七层的负载均衡. 2.yum安装HAProxy HAProxy已经包含在yum的base中,版本为1.15,可以直接yum安装 ~]# yum install -y haproxy HAProxy的配置文件路径为:/etc/haproxy/haproxy.cfg 主程序路径为:/usr/sbin/haproxy 3.HAProxy配置 HAPr

简单示例

下面是一个简单示例,当阀切换至自动模式时,会自动向储罐中补水,到达设定值后自动关闭.当储罐中水位到达设定值后水泵自动开启,水位低时联锁关闭. 上图分别显示了阀门和水泵操作面板 上图显示了水泵的联锁信息 上图是参数设置 上图显示了水位曲线

Redis 安装与简单示例

Redis 安装与简单示例 一.Redis的安装 Redis下载地址如下:https://github.com/dmajkic/redis/downloads 解压后根据自己机器的实际情况选择32位或者64位.下载解压后图片如下: redis-server.exe redis服务器的daemon启动程序 redis.conf redis配置文件 redis-cli.exe redis命令行操作工具.当然,也可以用telnet根据其纯文本协议来操作 redis-check-dump.exe 本地数

iOS 实现简单的界面切换

以下是在iOS中最简单的界面切换示例.使用了多个Controller,并演示Controller之间在切换界面时的代码处理. 实现的应用界面: 首先,创建一个window-based application,即: 使用window-base application的目的是,尽量从最基本的情况下说明程序的编写过程.项目创建好后,即可以编译运行,执行结果是白屏页面: 编写第一个视图和控制器,我管它叫Topic,即主题,因此控制器命名为:TopicController,视图TopicView. 创建T

AMQP消息队列之RabbitMQ简单示例

前面一篇文章讲了如何快速搭建一个ActiveMQ的示例程序,ActiveMQ是JMS的实现,那这篇文章就再看下另外一种消息队列AMQP的代表实现RabbitMQ的简单示例吧.在具体讲解之前,先通过一个图来概览下: 1.添加Maven依赖 <!-- rabbitmq begin --> <dependency> <groupId>org.springframework.amqp</groupId> <artifactId>spring-rabbit

xcode江湖录-第04章 风水宝地--界面生成器之StoryBoard简单示例 与 约束

第04章风水宝地--界面生成器之StoryBoard简单示例 ??如何设置转场动画?? ??如何在参与到转场动作中?? ??如何让页面跳转到自定义VC?? ??如何设置自定义跳转模式?? ??如何用StoryBoard中的VC生成对象?? 01:新建SingleViewApplication,命名为StoryBoardTest. 02:打开Main.Storyboard,如下: 03:通过Object Library选中View Controller(A controller that mana