customizer.js 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253
  1. /**
  2. * Theme Customizer enhancements for a better user experience.
  3. *
  4. * Contains handlers to make Theme Customizer preview reload changes asynchronously.
  5. */
  6. ( function( $ ) {
  7. // Collect information from panel-customizer.js about which panels are opening
  8. wp.customize.bind( 'preview-ready', function() {
  9. wp.customize.preview.bind( 'section-highlight', function( data ) {
  10. // If there's an expanded panel section, scroll down to that panel & highlight in the preview
  11. if ( true === data.expanded ) {
  12. $.scrollTo( $( '.' + data.section ), {
  13. duration: 600,
  14. offset: { 'top': -40 }
  15. } );
  16. $( '.' + data.section ).addClass( 'pique-highlight' );
  17. // If we've left the panel, remove the highlight and scroll back to the top
  18. } else {
  19. $.scrollTo( $( '#masthead' ), {
  20. duration: 300,
  21. offset: { 'top': 0 }
  22. } );
  23. $( '.' + data.section ).removeClass( 'pique-highlight' );
  24. }
  25. } );
  26. } );
  27. // Site title and description.
  28. wp.customize( 'blogname', function( value ) {
  29. value.bind( function( to ) {
  30. $( '.site-title a' ).text( to );
  31. } );
  32. } );
  33. wp.customize( 'blogdescription', function( value ) {
  34. value.bind( function( to ) {
  35. $( '.site-description' ).text( to );
  36. } );
  37. } );
  38. // Header text color.
  39. wp.customize( 'header_textcolor', function( value ) {
  40. value.bind( function( to ) {
  41. if ( 'blank' === to ) {
  42. $( '#masthead .site-branding .site-title a, #masthead .site-branding .site-description' ).css( {
  43. 'clip': 'rect(1px, 1px, 1px, 1px)',
  44. 'position': 'absolute'
  45. } );
  46. } else {
  47. $( '#masthead .site-branding .site-title a, #masthead .site-branding .site-description' ).css( {
  48. 'clip': 'auto',
  49. 'color': to,
  50. 'position': 'relative'
  51. } );
  52. }
  53. $( 'body' ).resize();
  54. } );
  55. } );
  56. // Site logo.
  57. wp.customize( 'site_logo', function( value ) {
  58. value.bind( function() {
  59. $( 'body' ).resize();
  60. } );
  61. } );
  62. // Shaded panels
  63. wp.customize( 'pique_panel1_opacity', function( value ) {
  64. value.bind( function( opacity ) {
  65. $( '.pique-panel1 .pique-panel-background' ).css( {
  66. 'opacity': opacity,
  67. } );
  68. } );
  69. } );
  70. wp.customize( 'pique_panel1_background', function( value ) {
  71. value.bind( function( color ) {
  72. if ( false === color ) {
  73. $( '.pique-panel1' ).css( {
  74. 'background-color': '',
  75. } );
  76. } else {
  77. $( '.pique-panel1' ).css( {
  78. 'background-color': color,
  79. } );
  80. }
  81. } );
  82. } );
  83. wp.customize( 'pique_panel2_opacity', function( value ) {
  84. value.bind( function( opacity ) {
  85. $( '.pique-panel2 .pique-panel-background' ).css( {
  86. 'opacity': opacity,
  87. } );
  88. } );
  89. } );
  90. wp.customize( 'pique_panel2_background', function( value ) {
  91. value.bind( function( color ) {
  92. if ( false === color ) {
  93. $( '.pique-panel2' ).css( {
  94. 'background-color': '',
  95. } );
  96. } else {
  97. $( '.pique-panel2' ).css( {
  98. 'background-color': color,
  99. } );
  100. }
  101. } );
  102. } );
  103. wp.customize( 'pique_panel3_opacity', function( value ) {
  104. value.bind( function( opacity ) {
  105. $( '.pique-panel3 .pique-panel-background' ).css( {
  106. 'opacity': opacity,
  107. } );
  108. } );
  109. } );
  110. wp.customize( 'pique_panel3_background', function( value ) {
  111. value.bind( function( color ) {
  112. if ( false === color ) {
  113. $( '.pique-panel3' ).css( {
  114. 'background-color': '',
  115. } );
  116. } else {
  117. $( '.pique-panel3' ).css( {
  118. 'background-color': color,
  119. } );
  120. }
  121. } );
  122. } );
  123. wp.customize( 'pique_panel4_opacity', function( value ) {
  124. value.bind( function( opacity ) {
  125. $( '.pique-panel4 .pique-panel-background' ).css( {
  126. 'opacity': opacity,
  127. } );
  128. } );
  129. } );
  130. wp.customize( 'pique_panel4_background', function( value ) {
  131. value.bind( function( color ) {
  132. if ( false === color ) {
  133. $( '.pique-panel4' ).css( {
  134. 'background-color': '',
  135. } );
  136. } else {
  137. $( '.pique-panel4' ).css( {
  138. 'background-color': color,
  139. } );
  140. }
  141. } );
  142. } );
  143. wp.customize( 'pique_panel5_opacity', function( value ) {
  144. value.bind( function( opacity ) {
  145. $( '.pique-panel5 .pique-panel-background' ).css( {
  146. 'opacity': opacity,
  147. } );
  148. } );
  149. } );
  150. wp.customize( 'pique_panel5_background', function( value ) {
  151. value.bind( function( color ) {
  152. if ( false === color ) {
  153. $( '.pique-panel5' ).css( {
  154. 'background-color': '',
  155. } );
  156. } else {
  157. $( '.pique-panel5' ).css( {
  158. 'background-color': color,
  159. } );
  160. }
  161. } );
  162. } );
  163. wp.customize( 'pique_panel6_opacity', function( value ) {
  164. value.bind( function( opacity ) {
  165. $( '.pique-panel6 .pique-panel-background' ).css( {
  166. 'opacity': opacity,
  167. } );
  168. } );
  169. } );
  170. wp.customize( 'pique_panel6_background', function( value ) {
  171. value.bind( function( color ) {
  172. if ( false === color ) {
  173. $( '.pique-panel6' ).css( {
  174. 'background-color': '',
  175. } );
  176. } else {
  177. $( '.pique-panel6' ).css( {
  178. 'background-color': color,
  179. } );
  180. }
  181. } );
  182. } );
  183. wp.customize( 'pique_panel7_opacity', function( value ) {
  184. value.bind( function( opacity ) {
  185. $( '.pique-panel7 .pique-panel-background' ).css( {
  186. 'opacity': opacity,
  187. } );
  188. } );
  189. } );
  190. wp.customize( 'pique_panel7_background', function( value ) {
  191. value.bind( function( color ) {
  192. if ( false === color ) {
  193. $( '.pique-panel7' ).css( {
  194. 'background-color': '',
  195. } );
  196. } else {
  197. $( '.pique-panel7' ).css( {
  198. 'background-color': color,
  199. } );
  200. }
  201. } );
  202. } );
  203. wp.customize( 'pique_panel8_opacity', function( value ) {
  204. value.bind( function( opacity ) {
  205. $( '.pique-panel8 .pique-panel-background' ).css( {
  206. 'opacity': opacity,
  207. } );
  208. } );
  209. } );
  210. wp.customize( 'pique_panel8_background', function( value ) {
  211. value.bind( function( color ) {
  212. if ( false === color ) {
  213. $( '.pique-panel8' ).css( {
  214. 'background-color': '',
  215. } );
  216. } else {
  217. $( '.pique-panel8' ).css( {
  218. 'background-color': color,
  219. } );
  220. }
  221. } );
  222. } );
  223. $( document ).ready( function() {
  224. // Give each of the panels a highlight & title
  225. $( '.pique-frontpage' ).find( '.pique-panel' ).not( '#pique-hero' ).each(function() {
  226. $( this ).append( '<span class="pique-panel-title">' + $( this ).data( 'panel-title' ) + '</span>' );
  227. });
  228. });
  229. } )( jQuery );