Dojo:主题(theme)切换以及Div蒙板覆盖

Dojo:主题(theme)切换以及Div蒙板覆盖

主题的切换本质上来说即使:1、图片的改变;2、颜色的改变。

以上两点都是可以css控制的,所以在设计之初,就应该把需要被主题控制的css统一到一个css文件中,同一个主题的图片也要分开归类文件夹。

下面说一下Dojo的主题切换实现:

Html片段:

    <link id="firstTheme" rel="stylesheet" type="text/css" href="/dojo/css/firstTheme.css" ></link> 
    <link id="secondTheme" rel="stylesheet" type="text/css" href="/dojo/css/secondTheme.css" disabled="true"></link> 
    <link id="thirdTheme" rel="stylesheet" type="text/css" href="/dojo/css/thirdTheme.css" disabled="true"></link> 

从linked引入的css文件,有disabled属性可以控制css是否可用。

JS片段:

复制代码
function changeThemes(newThemes){
    dojo.forEach(dojo.query("link"),function(link_theme){
        if(link_theme.id != newThemes){
            link_theme.disabled = true;
        }else{
            link_theme.disabled = false;    
        }
    })
    
}
复制代码

 

通过对changeThemes("secondTheme")的调用,即实现了对link标签disabled属性的改变。

 

 

切换html,含方便的div半透明蒙板实现,下一步工作既是将之构成dojo类:

 

复制代码
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>主题</title>
<style>
.theme,.cover{
    position:absolute;
    width:200px;
    height:160px;
}
div.container{
    position:relative;
    width:200px;
    height:160px;
    float:left;
    margin-left:10px;
    }
div.cover{
    background-color:#333;
    opacity: 0.0;
    }
b.description{
    position:absolute;
    left:38%;
    top:40%;
    font-size:15px;
    color:#FFF;
    }
</style>
<script type="text/javascript"> 

        dojo.require("dojo.fx"); 
         
        dojo.query("div.cover").connect("mouseover",function(){
            dojo.animateProperty({ 
             node: this, 
             duration:1000, 
                properties: {  
                    opacity: 0.5  
                } 
            }).play();
            });
        dojo.query("div.cover").connect("mouseout",function(){
            dojo.animateProperty({ 
             node: this, 
             duration:1000, 
                properties: {  
                    opacity: 0 
                } 
            }).play();
            });
         </script> 

</head>
    <body>
        <div class="container">
            <img class="theme" src="/dojo/resource/image/firstTheme/preview.jpg" /> 
            <div class="cover" onClick="changeThemes('firstTheme')"><b class="description">--黑色--</b></div>
        </div>
        <div class="container">
            <img class="theme" src="/dojo/resource/image/secondTheme/preview.jpg" />
            <div class="cover" onClick="changeThemes('secondTheme')"><b class="description">--蓝色--</b></div>
        </div>
        <div class="container">
            <img class="theme" src="/dojo/resource/image/thirdTheme/preview.jpg" /> 
            <div class="cover" onClick="changeThemes('thirdTheme')"><b class="description">--红色--</b></div>
        </div>
    </body>
</html>
复制代码
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值