Version Description
- Added: Make visible when scroled after number of pixels option.
- Fixed opacity 100 bug.
Download this release
Release Info
Developer | damiroquai |
Plugin | myStickymenu |
Version | 1.6 |
Comparing to | |
See all releases |
Code changes from version 1.5 to 1.6
- mystickymenu.js +12 -4
- mystickymenu.php +126 -72
- readme.txt +79 -9
- screenshot-1.png +0 -0
- screenshot-2.png +0 -0
mystickymenu.js
CHANGED
@@ -1,3 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
1 |
// select mysticky class
|
2 |
var mysticky_navbar = document.querySelector(mysticky_name.mysticky_string);
|
3 |
|
@@ -23,13 +28,15 @@ parentnav.replaceChild(wrappernav, mysticky_navbar);
|
|
23 |
wrappernav.appendChild(mysticky_navbar);
|
24 |
|
25 |
// add myfixed and wrapfixed class to divs while scroll
|
26 |
-
var
|
|
|
|
|
|
|
27 |
var hasScrollY = 'scrollY' in window;
|
28 |
function onScroll(e) {
|
29 |
var mydivWidth = ((mysticky_navbar.offsetWidth) + 'px');
|
30 |
-
var mydivHeight = ((mysticky_navbar.offsetHeight) + 'px');
|
31 |
var mydivReset = '';
|
32 |
-
|
33 |
var y = hasScrollY ? window.scrollY : document.documentElement.scrollTop;
|
34 |
y >= origOffsetY ? mysticky_navbar.classList.add('myfixed') : mysticky_navbar.classList.remove('myfixed');
|
35 |
y >= origOffsetY ? wrappernav.classList.add('wrapfixed') : wrappernav.classList.remove('wrapfixed');
|
@@ -37,4 +44,5 @@ var y = hasScrollY ? window.scrollY : document.documentElement.scrollTop;
|
|
37 |
y >= origOffsetY ? wrappermysticky.style.height = mydivHeight : wrappermysticky.style.height = mydivReset;
|
38 |
}
|
39 |
|
40 |
-
document.addEventListener('scroll', onScroll);
|
|
1 |
+
//disable at small screen sizes
|
2 |
+
var myfixed_disable_small = parseInt(mysticky_name.mysticky_disable_at_width_string);
|
3 |
+
var mybodyWidth = parseInt(document.body.clientWidth);
|
4 |
+
|
5 |
+
if (mybodyWidth >= myfixed_disable_small) {
|
6 |
// select mysticky class
|
7 |
var mysticky_navbar = document.querySelector(mysticky_name.mysticky_string);
|
8 |
|
28 |
wrappernav.appendChild(mysticky_navbar);
|
29 |
|
30 |
// add myfixed and wrapfixed class to divs while scroll
|
31 |
+
var mysticky_active_on_height = parseInt(mysticky_name.mysticky_active_on_height_string) ;
|
32 |
+
var origOffsetY = mysticky_active_on_height ;
|
33 |
+
var mydivHeight = ((mysticky_navbar.offsetHeight) + 'px');
|
34 |
+
|
35 |
var hasScrollY = 'scrollY' in window;
|
36 |
function onScroll(e) {
|
37 |
var mydivWidth = ((mysticky_navbar.offsetWidth) + 'px');
|
|
|
38 |
var mydivReset = '';
|
39 |
+
|
40 |
var y = hasScrollY ? window.scrollY : document.documentElement.scrollTop;
|
41 |
y >= origOffsetY ? mysticky_navbar.classList.add('myfixed') : mysticky_navbar.classList.remove('myfixed');
|
42 |
y >= origOffsetY ? wrappernav.classList.add('wrapfixed') : wrappernav.classList.remove('wrapfixed');
|
44 |
y >= origOffsetY ? wrappermysticky.style.height = mydivHeight : wrappermysticky.style.height = mydivReset;
|
45 |
}
|
46 |
|
47 |
+
document.addEventListener('scroll', onScroll);
|
48 |
+
};
|
mystickymenu.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
Plugin Name: myStickymenu
|
4 |
Plugin URI: http://wordpress.transformnews.com/plugins/mystickymenu-simple-sticky-fixed-on-top-menu-implementation-for-twentythirteen-menu-269
|
5 |
Description: Simple sticky (fixed on top) menu implementation for default Twentythirteen navigation menu. For other themes, after install go to Settings / myStickymenu and change Sticky Class to .your_navbar_class or #your_navbar_id.
|
6 |
-
Version: 1.
|
7 |
Author: m.r.d.a
|
8 |
License: GPLv2 or later
|
9 |
*/
|
@@ -71,8 +71,8 @@ class MyStickyMenuPage
|
|
71 |
* Register and add settings
|
72 |
*/
|
73 |
public function page_init()
|
74 |
-
{
|
75 |
-
|
76 |
register_setting(
|
77 |
'mysticky_option_group', // Option group
|
78 |
'mysticky_option_name', // Option name
|
@@ -135,14 +135,15 @@ class MyStickyMenuPage
|
|
135 |
'my-stickymenu-settings',
|
136 |
'setting_section_id'
|
137 |
);
|
|
|
138 |
add_settings_field(
|
139 |
-
'
|
140 |
-
'
|
141 |
-
array( $this, '
|
142 |
'my-stickymenu-settings',
|
143 |
'setting_section_id'
|
144 |
-
|
145 |
);
|
|
|
146 |
add_settings_field(
|
147 |
'myfixed_fade',
|
148 |
'Fade or slide effect',
|
@@ -150,6 +151,15 @@ class MyStickyMenuPage
|
|
150 |
'my-stickymenu-settings',
|
151 |
'setting_section_id'
|
152 |
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
153 |
}
|
154 |
|
155 |
/**
|
@@ -170,20 +180,23 @@ class MyStickyMenuPage
|
|
170 |
$new_input['myfixed_bgcolor'] = sanitize_text_field( $input['myfixed_bgcolor'] );
|
171 |
|
172 |
if( isset( $input['myfixed_opacity'] ) )
|
173 |
-
$new_input['myfixed_opacity'] =
|
174 |
|
175 |
if( isset( $input['myfixed_transition_time'] ) )
|
176 |
$new_input['myfixed_transition_time'] = sanitize_text_field( $input['myfixed_transition_time'] );
|
177 |
|
178 |
if( isset( $input['myfixed_disable_small_screen'] ) )
|
179 |
$new_input['myfixed_disable_small_screen'] = absint( $input['myfixed_disable_small_screen'] );
|
|
|
|
|
|
|
|
|
|
|
|
|
180 |
|
181 |
if( isset( $input['myfixed_cssstyle'] ) )
|
182 |
//$new_input['myfixed_cssstyle'] = esc_textarea( $input['myfixed_cssstyle'] );
|
183 |
$new_input['myfixed_cssstyle'] = sanitize_text_field( $input['myfixed_cssstyle'] );
|
184 |
-
|
185 |
-
if( isset( $input['myfixed_fade'] ) )
|
186 |
-
$new_input['myfixed_fade'] = sanitize_text_field( $input['myfixed_fade'] );
|
187 |
|
188 |
|
189 |
return $new_input;
|
@@ -195,12 +208,8 @@ class MyStickyMenuPage
|
|
195 |
public function mysticky_default_options() {
|
196 |
|
197 |
global $options;
|
198 |
-
|
199 |
|
200 |
|
201 |
-
|
202 |
-
if ( get_option('mysticky_option_name') == false ) {
|
203 |
-
|
204 |
$default = array(
|
205 |
|
206 |
'mysticky_class_selector' => '.navbar',
|
@@ -208,14 +217,31 @@ class MyStickyMenuPage
|
|
208 |
'myfixed_bgcolor' => '#F39A30',
|
209 |
'myfixed_opacity' => '95',
|
210 |
'myfixed_transition_time' => '0.3',
|
211 |
-
'myfixed_cssstyle' => '.myfixed {margin: 0 auto!important; float:none!important; border:0px!important; background:none!important;}',
|
212 |
'myfixed_disable_small_screen' => '359',
|
213 |
-
'
|
|
|
|
|
|
|
214 |
);
|
|
|
|
|
|
|
|
|
215 |
|
216 |
update_option( 'mysticky_option_name', $default );
|
217 |
}
|
218 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
219 |
/**
|
220 |
* Print the Section text
|
221 |
*/
|
@@ -231,7 +257,7 @@ class MyStickyMenuPage
|
|
231 |
public function mysticky_class_selector_callback()
|
232 |
{
|
233 |
printf(
|
234 |
-
'<p class="description"><input type="text" id="mysticky_class_selector" name="mysticky_option_name[mysticky_class_selector]" value="%s" /> menu or header div class or id.</p>',
|
235 |
isset( $this->options['mysticky_class_selector'] ) ? esc_attr( $this->options['mysticky_class_selector']) : ''
|
236 |
);
|
237 |
}
|
@@ -239,7 +265,7 @@ class MyStickyMenuPage
|
|
239 |
public function myfixed_zindex_callback()
|
240 |
{
|
241 |
printf(
|
242 |
-
'<p class="description"><input type="text" id="myfixed_zindex" name="mysticky_option_name[myfixed_zindex]" value="%s" /> sticky z-index.</p>',
|
243 |
isset( $this->options['myfixed_zindex'] ) ? esc_attr( $this->options['myfixed_zindex']) : ''
|
244 |
);
|
245 |
}
|
@@ -247,7 +273,7 @@ class MyStickyMenuPage
|
|
247 |
public function myfixed_bgcolor_callback()
|
248 |
{
|
249 |
printf(
|
250 |
-
'<p class="description"><input type="text" id="myfixed_bgcolor" name="mysticky_option_name[myfixed_bgcolor]" value="%s" /> full width background color.</p>' ,
|
251 |
isset( $this->options['myfixed_bgcolor'] ) ? esc_attr( $this->options['myfixed_bgcolor']) : ''
|
252 |
);
|
253 |
}
|
@@ -255,7 +281,7 @@ class MyStickyMenuPage
|
|
255 |
public function myfixed_opacity_callback()
|
256 |
{
|
257 |
printf(
|
258 |
-
'<p class="description"><input type="text" id="myfixed_opacity" name="mysticky_option_name[myfixed_opacity]" value="%s" /> numbers 1-100.</p>',
|
259 |
isset( $this->options['myfixed_opacity'] ) ? esc_attr( $this->options['myfixed_opacity']) : ''
|
260 |
);
|
261 |
}
|
@@ -263,7 +289,7 @@ class MyStickyMenuPage
|
|
263 |
public function myfixed_transition_time_callback()
|
264 |
{
|
265 |
printf(
|
266 |
-
'<p class="description"><input type="text" id="myfixed_transition_time" name="mysticky_option_name[myfixed_transition_time]" value="%s" /> in seconds.</p>',
|
267 |
isset( $this->options['myfixed_transition_time'] ) ? esc_attr( $this->options['myfixed_transition_time']) : ''
|
268 |
);
|
269 |
}
|
@@ -271,56 +297,71 @@ class MyStickyMenuPage
|
|
271 |
public function myfixed_disable_small_screen_callback()
|
272 |
{
|
273 |
printf(
|
274 |
-
'<p class="description">less than <input type="text" size="4" id="myfixed_disable_small_screen" name="mysticky_option_name[myfixed_disable_small_screen]" value="%s" />
|
275 |
isset( $this->options['myfixed_disable_small_screen'] ) ? esc_attr( $this->options['myfixed_disable_small_screen']) : ''
|
276 |
);
|
277 |
}
|
278 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
279 |
public function myfixed_cssstyle_callback()
|
280 |
|
281 |
{
|
282 |
printf(
|
283 |
'
|
284 |
-
<p class="description">Add/Edit .myfixed css class to change sticky menu style.Leave it blank for default style.</p> <textarea type="text" rows="4" cols="60" id="myfixed_cssstyle" name="mysticky_option_name[myfixed_cssstyle]">%s</textarea> <br
|
285 |
' ,
|
286 |
isset( $this->options['myfixed_cssstyle'] ) ? esc_attr( $this->options['myfixed_cssstyle']) : ''
|
287 |
);
|
|
|
288 |
}
|
289 |
|
290 |
-
public function myfixed_fade_callback()
|
291 |
-
{
|
292 |
-
printf(
|
293 |
-
'<p class="description"><input id="%1$s" name="mysticky_option_name[myfixed_fade]" type="checkbox" %2$s /> Checked is fade, unchecked is slide.</p>',
|
294 |
-
'myfixed_fade',
|
295 |
-
checked( isset( $this->options['myfixed_fade'] ), true, false )
|
296 |
-
);
|
297 |
-
}
|
298 |
-
|
299 |
}
|
300 |
|
301 |
-
if( is_admin() )
|
302 |
$my_settings_page = new MyStickyMenuPage();
|
303 |
|
304 |
-
// end plugin admin settings
|
305 |
-
|
306 |
|
307 |
-
// Remove default option for more link that jumps at the midle of page and its covered by menu
|
308 |
|
309 |
-
function mysticky_remove_more_jump_link($link)
|
310 |
-
|
311 |
-
|
312 |
-
$
|
313 |
-
|
314 |
-
|
315 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
316 |
}
|
317 |
-
|
318 |
-
|
319 |
-
add_filter('the_content_more_link', 'mysticky_remove_more_jump_link');
|
320 |
|
321 |
-
// Create style from options
|
322 |
|
323 |
-
function mysticky_build_stylesheet_content() {
|
324 |
|
325 |
$mysticky_options = get_option( 'mysticky_option_name' );
|
326 |
|
@@ -329,56 +370,69 @@ function mysticky_build_stylesheet_content() {
|
|
329 |
if ( is_user_logged_in() ) {
|
330 |
echo '#wpadminbar { position: absolute !important; top: 0px !important;}';
|
331 |
}
|
332 |
-
|
333 |
if ( $mysticky_options['myfixed_cssstyle'] == "" ) {
|
334 |
-
|
335 |
-
echo '.myfixed { margin:0 auto!important; float:none!important; border:0px!important; background:none!important; max-width:100%!important; }';
|
336 |
-
|
337 |
}
|
338 |
-
|
339 |
echo
|
340 |
$mysticky_options ['myfixed_cssstyle'] ;
|
341 |
-
|
342 |
echo
|
343 |
'
|
344 |
#mysticky-nav { width:100%!important; position: static;';
|
345 |
-
|
|
|
|
|
346 |
echo
|
347 |
'top: -100px;';
|
348 |
}
|
349 |
echo
|
350 |
'}';
|
|
|
|
|
|
|
|
|
351 |
echo
|
352 |
-
'.wrapfixed { position: fixed!important; top:
|
353 |
';
|
|
|
|
|
|
|
354 |
|
355 |
-
|
|
|
|
|
|
|
356 |
|
357 |
if ($mysticky_options ['myfixed_disable_small_screen'] > 0 ){
|
358 |
echo
|
359 |
-
'@media (max-width: ' . $mysticky_options ['myfixed_disable_small_screen'] . 'px) {.wrapfixed {position: static!important;}}
|
360 |
';
|
361 |
}
|
362 |
echo
|
363 |
'</style>
|
364 |
';
|
365 |
-
}
|
366 |
-
|
|
|
367 |
|
368 |
|
369 |
-
function mystickymenu_script() {
|
370 |
|
371 |
$mysticky_options = get_option( 'mysticky_option_name' );
|
372 |
|
373 |
-
// Register scripts
|
374 |
-
wp_register_script('mystickymenu', WP_PLUGIN_URL. '/mystickymenu/mystickymenu.js', false,'1.0.0', true);
|
375 |
-
wp_enqueue_script( 'mystickymenu' );
|
376 |
|
377 |
-
// Localize mystickymenu.js script with myStickymenu options
|
378 |
-
$mysticky_translation_array = array(
|
|
|
|
|
|
|
|
|
379 |
|
380 |
-
wp_localize_script( 'mystickymenu', 'mysticky_name', $mysticky_translation_array );
|
381 |
-
}
|
382 |
|
383 |
-
add_action( 'wp_enqueue_scripts', 'mystickymenu_script' );
|
384 |
?>
|
3 |
Plugin Name: myStickymenu
|
4 |
Plugin URI: http://wordpress.transformnews.com/plugins/mystickymenu-simple-sticky-fixed-on-top-menu-implementation-for-twentythirteen-menu-269
|
5 |
Description: Simple sticky (fixed on top) menu implementation for default Twentythirteen navigation menu. For other themes, after install go to Settings / myStickymenu and change Sticky Class to .your_navbar_class or #your_navbar_id.
|
6 |
+
Version: 1.6
|
7 |
Author: m.r.d.a
|
8 |
License: GPLv2 or later
|
9 |
*/
|
71 |
* Register and add settings
|
72 |
*/
|
73 |
public function page_init()
|
74 |
+
{
|
75 |
+
global $id, $title, $callback, $page;
|
76 |
register_setting(
|
77 |
'mysticky_option_group', // Option group
|
78 |
'mysticky_option_name', // Option name
|
135 |
'my-stickymenu-settings',
|
136 |
'setting_section_id'
|
137 |
);
|
138 |
+
|
139 |
add_settings_field(
|
140 |
+
'mysticky_active_on_height',
|
141 |
+
'Make visible when scroled',
|
142 |
+
array( $this, 'mysticky_active_on_height_callback' ),
|
143 |
'my-stickymenu-settings',
|
144 |
'setting_section_id'
|
|
|
145 |
);
|
146 |
+
|
147 |
add_settings_field(
|
148 |
'myfixed_fade',
|
149 |
'Fade or slide effect',
|
151 |
'my-stickymenu-settings',
|
152 |
'setting_section_id'
|
153 |
);
|
154 |
+
|
155 |
+
add_settings_field(
|
156 |
+
'myfixed_cssstyle',
|
157 |
+
'.myfixed css class',
|
158 |
+
array( $this, 'myfixed_cssstyle_callback' ),
|
159 |
+
'my-stickymenu-settings',
|
160 |
+
'setting_section_id'
|
161 |
+
|
162 |
+
);
|
163 |
}
|
164 |
|
165 |
/**
|
180 |
$new_input['myfixed_bgcolor'] = sanitize_text_field( $input['myfixed_bgcolor'] );
|
181 |
|
182 |
if( isset( $input['myfixed_opacity'] ) )
|
183 |
+
$new_input['myfixed_opacity'] = absint( $input['myfixed_opacity'] );
|
184 |
|
185 |
if( isset( $input['myfixed_transition_time'] ) )
|
186 |
$new_input['myfixed_transition_time'] = sanitize_text_field( $input['myfixed_transition_time'] );
|
187 |
|
188 |
if( isset( $input['myfixed_disable_small_screen'] ) )
|
189 |
$new_input['myfixed_disable_small_screen'] = absint( $input['myfixed_disable_small_screen'] );
|
190 |
+
|
191 |
+
if( isset( $input['mysticky_active_on_height'] ) )
|
192 |
+
$new_input['mysticky_active_on_height'] = absint( $input['mysticky_active_on_height'] );
|
193 |
+
|
194 |
+
if( isset( $input['myfixed_fade'] ) )
|
195 |
+
$new_input['myfixed_fade'] = sanitize_text_field( $input['myfixed_fade'] );
|
196 |
|
197 |
if( isset( $input['myfixed_cssstyle'] ) )
|
198 |
//$new_input['myfixed_cssstyle'] = esc_textarea( $input['myfixed_cssstyle'] );
|
199 |
$new_input['myfixed_cssstyle'] = sanitize_text_field( $input['myfixed_cssstyle'] );
|
|
|
|
|
|
|
200 |
|
201 |
|
202 |
return $new_input;
|
208 |
public function mysticky_default_options() {
|
209 |
|
210 |
global $options;
|
|
|
211 |
|
212 |
|
|
|
|
|
|
|
213 |
$default = array(
|
214 |
|
215 |
'mysticky_class_selector' => '.navbar',
|
217 |
'myfixed_bgcolor' => '#F39A30',
|
218 |
'myfixed_opacity' => '95',
|
219 |
'myfixed_transition_time' => '0.3',
|
|
|
220 |
'myfixed_disable_small_screen' => '359',
|
221 |
+
'mysticky_active_on_height' => '320',
|
222 |
+
'myfixed_fade' => false,
|
223 |
+
'myfixed_cssstyle' => '.myfixed { margin:0 auto!important; float:none!important; border:0px!important; background:none!important; max-width:100%!important; }'
|
224 |
+
|
225 |
);
|
226 |
+
|
227 |
+
if ( get_option('mysticky_option_name') == false ) {
|
228 |
+
|
229 |
+
|
230 |
|
231 |
update_option( 'mysticky_option_name', $default );
|
232 |
}
|
233 |
+
|
234 |
+
/*
|
235 |
+
foreach ( $options as $option => $default_value ) {
|
236 |
+
if ( ! get_option( $option ) ) {
|
237 |
+
add_option( $option, $default_value );
|
238 |
+
} else {
|
239 |
+
update_option( $option, $default_value );
|
240 |
+
}
|
241 |
+
}
|
242 |
+
*/
|
243 |
+
}
|
244 |
+
|
245 |
/**
|
246 |
* Print the Section text
|
247 |
*/
|
257 |
public function mysticky_class_selector_callback()
|
258 |
{
|
259 |
printf(
|
260 |
+
'<p class="description"><input type="text" size="8" id="mysticky_class_selector" name="mysticky_option_name[mysticky_class_selector]" value="%s" /> menu or header div class or id.</p>',
|
261 |
isset( $this->options['mysticky_class_selector'] ) ? esc_attr( $this->options['mysticky_class_selector']) : ''
|
262 |
);
|
263 |
}
|
265 |
public function myfixed_zindex_callback()
|
266 |
{
|
267 |
printf(
|
268 |
+
'<p class="description"><input type="text" size="8" id="myfixed_zindex" name="mysticky_option_name[myfixed_zindex]" value="%s" /> sticky z-index.</p>',
|
269 |
isset( $this->options['myfixed_zindex'] ) ? esc_attr( $this->options['myfixed_zindex']) : ''
|
270 |
);
|
271 |
}
|
273 |
public function myfixed_bgcolor_callback()
|
274 |
{
|
275 |
printf(
|
276 |
+
'<p class="description"><input type="text" size="8" id="myfixed_bgcolor" name="mysticky_option_name[myfixed_bgcolor]" value="%s" /> full width background color.</p>' ,
|
277 |
isset( $this->options['myfixed_bgcolor'] ) ? esc_attr( $this->options['myfixed_bgcolor']) : ''
|
278 |
);
|
279 |
}
|
281 |
public function myfixed_opacity_callback()
|
282 |
{
|
283 |
printf(
|
284 |
+
'<p class="description"><input type="text" size="4" id="myfixed_opacity" name="mysticky_option_name[myfixed_opacity]" value="%s" /> numbers 1-100.</p>',
|
285 |
isset( $this->options['myfixed_opacity'] ) ? esc_attr( $this->options['myfixed_opacity']) : ''
|
286 |
);
|
287 |
}
|
289 |
public function myfixed_transition_time_callback()
|
290 |
{
|
291 |
printf(
|
292 |
+
'<p class="description"><input type="text" size="4" id="myfixed_transition_time" name="mysticky_option_name[myfixed_transition_time]" value="%s" /> in seconds.</p>',
|
293 |
isset( $this->options['myfixed_transition_time'] ) ? esc_attr( $this->options['myfixed_transition_time']) : ''
|
294 |
);
|
295 |
}
|
297 |
public function myfixed_disable_small_screen_callback()
|
298 |
{
|
299 |
printf(
|
300 |
+
'<p class="description">less than <input type="text" size="4" id="myfixed_disable_small_screen" name="mysticky_option_name[myfixed_disable_small_screen]" value="%s" />px width, 0 to disable.</p>',
|
301 |
isset( $this->options['myfixed_disable_small_screen'] ) ? esc_attr( $this->options['myfixed_disable_small_screen']) : ''
|
302 |
);
|
303 |
}
|
304 |
+
|
305 |
+
public function mysticky_active_on_height_callback()
|
306 |
+
{
|
307 |
+
printf(
|
308 |
+
'<p class="description">after <input type="text" size="4" id="mysticky_active_on_height" name="mysticky_option_name[mysticky_active_on_height]" value="%s" />px, </p>',
|
309 |
+
isset( $this->options['mysticky_active_on_height'] ) ? esc_attr( $this->options['mysticky_active_on_height']) : ''
|
310 |
+
);
|
311 |
+
}
|
312 |
+
|
313 |
+
public function myfixed_fade_callback()
|
314 |
+
{
|
315 |
+
printf(
|
316 |
+
'<p class="description"><input id="%1$s" name="mysticky_option_name[myfixed_fade]" type="checkbox" %2$s /> Checked is slide, unchecked is fade.</p>',
|
317 |
+
'myfixed_fade',
|
318 |
+
checked( isset( $this->options['myfixed_fade'] ), true, false )
|
319 |
+
);
|
320 |
+
|
321 |
+
}
|
322 |
+
|
323 |
public function myfixed_cssstyle_callback()
|
324 |
|
325 |
{
|
326 |
printf(
|
327 |
'
|
328 |
+
<p class="description">Add/Edit .myfixed css class to change sticky menu style. Leave it blank for default style.</p> <textarea type="text" rows="4" cols="60" id="myfixed_cssstyle" name="mysticky_option_name[myfixed_cssstyle]">%s</textarea> <br />
|
329 |
' ,
|
330 |
isset( $this->options['myfixed_cssstyle'] ) ? esc_attr( $this->options['myfixed_cssstyle']) : ''
|
331 |
);
|
332 |
+
echo '<p class="description">Default style: .myfixed { margin:0 auto!important; float:none!important; border:0px!important; background:none!important; max-width:100%!important; }<br /><br />If you want to change sticky hover color first add default style and than: .myfixed li a:hover {color:#000; background-color: #ccc;} .<br /> More examples <a href="http://wordpress.transformnews.com/tutorials/mystickymenu-extended-style-functionality-using-myfixed-sticky-class-403" target="blank">here</a>.</p>';
|
333 |
}
|
334 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
335 |
}
|
336 |
|
337 |
+
if( is_admin() )
|
338 |
$my_settings_page = new MyStickyMenuPage();
|
339 |
|
340 |
+
// end plugin admin settings
|
|
|
341 |
|
342 |
+
// Remove default option for more link that jumps at the midle of page and its covered by menu
|
343 |
|
344 |
+
function mysticky_remove_more_jump_link($link)
|
345 |
+
{
|
346 |
+
|
347 |
+
$offset = strpos($link, '#more-');
|
348 |
+
|
349 |
+
if ($offset) {
|
350 |
+
$end = strpos($link, '"',$offset);
|
351 |
+
}
|
352 |
+
|
353 |
+
if ($end) {
|
354 |
+
$link = substr_replace($link, '', $offset, $end-$offset);
|
355 |
+
}
|
356 |
+
|
357 |
+
return $link;
|
358 |
}
|
359 |
+
|
360 |
+
add_filter('the_content_more_link', 'mysticky_remove_more_jump_link');
|
|
|
361 |
|
362 |
+
// Create style from options
|
363 |
|
364 |
+
function mysticky_build_stylesheet_content() {
|
365 |
|
366 |
$mysticky_options = get_option( 'mysticky_option_name' );
|
367 |
|
370 |
if ( is_user_logged_in() ) {
|
371 |
echo '#wpadminbar { position: absolute !important; top: 0px !important;}';
|
372 |
}
|
|
|
373 |
if ( $mysticky_options['myfixed_cssstyle'] == "" ) {
|
374 |
+
echo '.myfixed { margin:0 auto!important; float:none!important; border:0px!important; background:none!important; max-width:100%!important; }';
|
|
|
|
|
375 |
}
|
|
|
376 |
echo
|
377 |
$mysticky_options ['myfixed_cssstyle'] ;
|
378 |
+
|
379 |
echo
|
380 |
'
|
381 |
#mysticky-nav { width:100%!important; position: static;';
|
382 |
+
|
383 |
+
if (isset($mysticky_options['myfixed_fade'])){
|
384 |
+
|
385 |
echo
|
386 |
'top: -100px;';
|
387 |
}
|
388 |
echo
|
389 |
'}';
|
390 |
+
|
391 |
+
if ($mysticky_options ['myfixed_opacity'] == 100 ){
|
392 |
+
|
393 |
+
|
394 |
echo
|
395 |
+
'.wrapfixed { position: fixed!important; top:0px!important; left: 0px!important; margin-top:0px!important; z-index: '. $mysticky_options ['myfixed_zindex'] .'; -webkit-transition: ' . $mysticky_options ['myfixed_transition_time'] . 's; -moz-transition: ' . $mysticky_options ['myfixed_transition_time'] . 's; -o-transition: ' . $mysticky_options ['myfixed_transition_time'] . 's; transition: ' . $mysticky_options ['myfixed_transition_time'] . 's; background-color: ' . $mysticky_options ['myfixed_bgcolor'] . '!important; }
|
396 |
';
|
397 |
+
}
|
398 |
+
if ($mysticky_options ['myfixed_opacity'] < 100 ){
|
399 |
+
|
400 |
|
401 |
+
echo
|
402 |
+
'.wrapfixed { position: fixed!important; top:0px!important; left: 0px!important; margin-top:0px!important; z-index: '. $mysticky_options ['myfixed_zindex'] .'; -webkit-transition: ' . $mysticky_options ['myfixed_transition_time'] . 's; -moz-transition: ' . $mysticky_options ['myfixed_transition_time'] . 's; -o-transition: ' . $mysticky_options ['myfixed_transition_time'] . 's; transition: ' . $mysticky_options ['myfixed_transition_time'] . 's; -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=' . $mysticky_options ['myfixed_opacity'] . ')"; filter: alpha(opacity=' . $mysticky_options ['myfixed_opacity'] . '); opacity:.' . $mysticky_options ['myfixed_opacity'] . '; background-color: ' . $mysticky_options ['myfixed_bgcolor'] . '!important; }
|
403 |
+
';
|
404 |
+
}
|
405 |
|
406 |
if ($mysticky_options ['myfixed_disable_small_screen'] > 0 ){
|
407 |
echo
|
408 |
+
'@media (max-width: ' . $mysticky_options ['myfixed_disable_small_screen'] . 'px) {.wrapfixed {position: static!important; display: none!important;}}
|
409 |
';
|
410 |
}
|
411 |
echo
|
412 |
'</style>
|
413 |
';
|
414 |
+
}
|
415 |
+
|
416 |
+
add_action('wp_head', 'mysticky_build_stylesheet_content');
|
417 |
|
418 |
|
419 |
+
function mystickymenu_script() {
|
420 |
|
421 |
$mysticky_options = get_option( 'mysticky_option_name' );
|
422 |
|
423 |
+
// Register scripts
|
424 |
+
wp_register_script('mystickymenu', WP_PLUGIN_URL. '/mystickymenu/mystickymenu.js', false,'1.0.0', true);
|
425 |
+
wp_enqueue_script( 'mystickymenu' );
|
426 |
|
427 |
+
// Localize mystickymenu.js script with myStickymenu options
|
428 |
+
$mysticky_translation_array = array(
|
429 |
+
'mysticky_string' => $mysticky_options['mysticky_class_selector'] ,
|
430 |
+
'mysticky_active_on_height_string' => $mysticky_options['mysticky_active_on_height'],
|
431 |
+
'mysticky_disable_at_width_string' => $mysticky_options['myfixed_disable_small_screen']
|
432 |
+
);
|
433 |
|
434 |
+
wp_localize_script( 'mystickymenu', 'mysticky_name', $mysticky_translation_array );
|
435 |
+
}
|
436 |
|
437 |
+
add_action( 'wp_enqueue_scripts', 'mystickymenu_script' );
|
438 |
?>
|
readme.txt
CHANGED
@@ -1,27 +1,97 @@
|
|
1 |
=== myStickymenu ===
|
2 |
Contributors: damiroquai
|
3 |
Donate link: http://wordpress.transformnews.com
|
4 |
-
Tags: sticky menu, twentythirteen, twenty-thirteen, plugin, menu
|
5 |
-
Requires at least: 3.
|
6 |
Tested up to: 3.9.1
|
7 |
-
Stable tag: 1.
|
8 |
License: GPLv2 or later
|
9 |
|
10 |
-
This lightweight plugin will made your menu sticky on top of page, after
|
11 |
|
12 |
== Description ==
|
13 |
-
Plugin is designed for
|
|
|
|
|
|
|
|
|
14 |
|
15 |
Plugin Home + Demo URL: http://wordpress.transformnews.com/plugins/mystickymenu-simple-sticky-fixed-on-top-menu-implementation-for-twentythirteen-menu-269
|
16 |
|
17 |
== Installation ==
|
|
|
|
|
18 |
|
19 |
-
|
20 |
|
21 |
-
|
|
|
22 |
|
23 |
-
Original javascript used from http://jsbin.com/omanut/2/edit
|
24 |
|
25 |
== Screenshots ==
|
|
|
26 |
1. screenshot-1.png shows administration settings.
|
27 |
-
2. screenshot-2.png shows menu when page is scrolled towards the bottom.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
=== myStickymenu ===
|
2 |
Contributors: damiroquai
|
3 |
Donate link: http://wordpress.transformnews.com
|
4 |
+
Tags: sticky menu, twentythirteen, twenty-thirteen, plugin, menu, jquery
|
5 |
+
Requires at least: 3.5.1
|
6 |
Tested up to: 3.9.1
|
7 |
+
Stable tag: 1.6
|
8 |
License: GPLv2 or later
|
9 |
|
10 |
+
This lightweight plugin will made your menu or header sticky on top of page, after desired number of pixels when scrolled.
|
11 |
|
12 |
== Description ==
|
13 |
+
Plugin is designed for Twenty Thirteen template but should work on any theme. By default, it uses Twenty Thirteen navigation css class ".navbar" under "Sticky Class" setting field and that should be modified for other themes (if different) to make it work. Do not forget this, it is a mandatory field.
|
14 |
+
|
15 |
+
Plugin is responsive as far as your theme is. Also there is possibility to add custom css code which make this plugin very flexible, customizable and user friendly.
|
16 |
+
|
17 |
+
Another advancement of this simple plugin is that increases usability and page views of your WordPress site since menu is available to the user all the time.
|
18 |
|
19 |
Plugin Home + Demo URL: http://wordpress.transformnews.com/plugins/mystickymenu-simple-sticky-fixed-on-top-menu-implementation-for-twentythirteen-menu-269
|
20 |
|
21 |
== Installation ==
|
22 |
+
Install like any other plugin. After install activate. If using template other than Twenty Thirteen go to Settings / myStickymenu and change Sticky Class to .your_navbar_class or #your_navbar_id..
|
23 |
+
|
24 |
|
25 |
+
== Frequently Asked Questions ==
|
26 |
|
27 |
+
= How to find Sticky Class, what should I enter here? =
|
28 |
+
So this depends on what you want to make sticky and what theme do you use, but for example if you want your menu to be sticky, than you can examine the code (in firefox right click and “View page source”) and find div in which your menu is situated. This div have some class or id, and that’s the Sticky Class we need. If using class than don’t forget to ad dot (.) in front of class name, or hash (#) in front of id name in Sticky Class field. Twenty Thirteen default working class is “.navbar” without of quotes.
|
29 |
|
|
|
30 |
|
31 |
== Screenshots ==
|
32 |
+
|
33 |
1. screenshot-1.png shows administration settings.
|
34 |
+
2. screenshot-2.png shows menu when page is scrolled towards the bottom.
|
35 |
+
|
36 |
+
|
37 |
+
== Changelog ==
|
38 |
+
|
39 |
+
= 1.6 =
|
40 |
+
* Added: “Make visible when scroled” after number of pixels option.
|
41 |
+
* Fixed opacity 100 bug.
|
42 |
+
|
43 |
+
= 1.5 =
|
44 |
+
* Added option to enter exact width in px when sticky menu should be disabled “Disable at Small Screen Sizes”.
|
45 |
+
* Added “.myfixed css class” setting field – edit .myfixed css style via plugin settings to create custom style.
|
46 |
+
* Fixed google adsense clash and undefined index notice.
|
47 |
+
* is_user_logged_in instead of old “Remove CSS Rules for Static Admin Bar while Sticky” option
|
48 |
+
|
49 |
+
= 1.4 =
|
50 |
+
* Added fade in or slide down effect settings field for sticky class.
|
51 |
+
* Added new wrapped div around selected sticky class with id mysticky_wrap which should make menu works smoother and extend theme support.
|
52 |
+
|
53 |
+
= 1.3 =
|
54 |
+
* Added “block direct access” to the mystickymenu plugin file (for security sake).
|
55 |
+
* Added Enable / Disable at small screen sizes and Remove not necessary css for all themes without admin bar on front page.
|
56 |
+
* Added “margin-top :0px” to .myfixed class in head which should extend theme support.
|
57 |
+
|
58 |
+
= 1.2 =
|
59 |
+
* Fixed mystickymenu.js for IE browsers, so myStickymenu is now compatible with IE 10, 11
|
60 |
+
|
61 |
+
= 1.1 =
|
62 |
+
* Added administration options, now available through Dashboard / Settings / myStickymenu. Options are as follows: Sticky Class, Sticky z-index, Sticky Width, Sticky Background Color, Sticky Opacity, Sticky Transition Time.
|
63 |
+
* Old mystickymenu.css file is deprecated and not in use anymore.
|
64 |
+
|
65 |
+
= 1.0 =
|
66 |
+
* First release of myStickymenu plugin
|
67 |
+
|
68 |
+
== Upgrade Notice ==
|
69 |
+
= 1.6 =
|
70 |
+
* After plugin update go to mystickymenu plugin settings and save changes with desired value for a new parameters. Clear cache if some cache system used on your site.
|
71 |
+
* Added: “Make visible when scroled” after number of pixels option.
|
72 |
+
* Fixed opacity 100 bug.
|
73 |
+
|
74 |
+
= 1.5 =
|
75 |
+
* Added option to enter exact width in px when sticky menu should be disabled “Disable at Small Screen Sizes”.
|
76 |
+
* Added “.myfixed css class” setting field – edit .myfixed css style via plugin settings to create custom style.
|
77 |
+
* Fixed google adsense clash and undefined index notice.
|
78 |
+
* is_user_logged_in instead of old “Remove CSS Rules for Static Admin Bar while Sticky” option
|
79 |
+
|
80 |
+
= 1.4 =
|
81 |
+
* Added fade in or slide down effect settings field for sticky class.
|
82 |
+
* Added new wrapped div around selected sticky class with id mysticky_wrap.
|
83 |
+
|
84 |
+
= 1.3 =
|
85 |
+
* Added “block direct access” to the mystickymenu plugin file.
|
86 |
+
* Added Enable / Disable at small screen sizes and Remove not necessary css.
|
87 |
+
* Added “margin-top :0px” to .myfixed class in head which should extend theme support.
|
88 |
+
|
89 |
+
= 1.2 =
|
90 |
+
* Fixed mystickymenu.js for IE browsers, so myStickymenu is now compatible with IE 10, 11
|
91 |
+
|
92 |
+
= 1.1 =
|
93 |
+
* Added administration options, now available through Dashboard / Settings / myStickymenu. Options are as follows: Sticky Class, Sticky z-index, Sticky Width, Sticky Background Color, Sticky Opacity, Sticky Transition Time.
|
94 |
+
* Old mystickymenu.css file is deprecated and not in use anymore.
|
95 |
+
|
96 |
+
|
97 |
+
|
screenshot-1.png
DELETED
Binary file
|
screenshot-2.png
DELETED
Binary file
|