如何更改jQuery pickadate主题

时间:2013-06-06 10:32:07

标签: jquery html jquery-plugins

您好我正在使用名为pickadate.js的jQuery插件。但我无法得到如何改变主题。有两个主题默认和经典。我想把它改成经典。

3 个答案:

答案 0 :(得分:1)

您只需为所需主题添加主题CSS ... Docs are here

如果您希望主题选择器显示插件主页..请检查this pages source ...

HTML:

<span class="menu__link">
  Themes: 
  <input class="theme-toggle__input" type="radio" id="show_theme_default" name="show_theme" value="default" checked hidden>
  <label class="theme-toggle__label" for="show_theme_default">default</label> and 
  <input class="theme-toggle__input" type="radio" id="show_theme_classic" name="show_theme" value="classic" hidden>
  <label class="theme-toggle__label" for="show_theme_classic" class="checked-negative">classic</label>
</span>

JavaScript的:

var themeSelected = window.localStorage ? localStorage.getItem( 'theme' ) : '',
    $themeLinks = $( '#theme_base, #theme_date, #theme_time' ),
    updateStylingLinks = function( value ) {
        value = value || 'default'
        $( '#show_theme_' + value ).attr( 'checked', true )
        $themeLinks.detach()
        $themeLinks.each( function() {
            this.href = this.href.replace( /(.+\/)(\w+)(.+)/, '$1' + value + '$3' )
        })
        $themeLinks.appendTo( 'head' )
    }

if ( themeSelected ) {
    updateStylingLinks( themeSelected )
}

$( '[name=show_theme]' ).on( 'change', function() {
    var value = this.value
    updateStylingLinks( value )
    if ( window.localStorage ) {
        localStorage.setItem( 'theme', value )
    }
})

答案 1 :(得分:1)

  

主题

     

所有主题都是使用LESS生成的,并编译到lib / themes中   文件夹中。

     
      
  • 只需要一个基本样式表。选择一个主题,然后也包括相应的选择器。
  •   

答案 2 :(得分:0)

我的目标是根据用户是在移动设备(默认主题)还是在桌面(经典主题)上使用这两个主题。

如果不修改他们的.LESS文件(对于版本升级非常重要),我会在不同的CSS名称空间中对它们进行变形,如下所示 -

@import "../bower_components/pickadate/lib/themes-source/_variables.less";
@import "../bower_components/pickadate/lib/themes-source/base.less";
@import "../bower_components/pickadate/lib/themes-source/base.date.less";

body.pickadate--default {
    @import "../bower_components/pickadate/lib/themes-source/default.less";
    @import "../bower_components/pickadate/lib/themes-source/default.date.less";
}
body.pickadate--classic {
    @import "../bower_components/pickadate/lib/themes-source/classic.less";
    @import "../bower_components/pickadate/lib/themes-source/classic.date.less";
}

然后使用JavaScript,我根据屏幕大小添加/删除CSS类 -

var isDesktop = Modernizr.mq('(min-width: 768px)'); //Modernizr media queries

if (isDesktop) {
    $("body").addClass("pickadate--classic");
    $("body").removeClass("pickadate--default");
} else {
    $("body").addClass("pickadate--default");
    $("body").removeClass("pickadate--classic");
}

注意:确保也在window.resize上调用JS函数。