Changeset 1393100
- Timestamp:
- 04/12/2016 03:46:22 PM (10 years ago)
- Location:
- scroll-tool/trunk
- Files:
-
- 1 added
- 1 deleted
- 3 edited
-
js/scroll-tool-admin.js (added)
-
js/scroll-tool-main.js (deleted)
-
js/scroll-tool.js (modified) (1 diff)
-
readme.txt (modified) (4 diffs)
-
scroll-tool.php (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
scroll-tool/trunk/js/scroll-tool.js
r881971 r1393100 1 // This is just a patch for Wordpress entities without jQuery autoload. 1 // Scroll-tool front-end functionality 2 3 jQuery(document).ready(function($) { 4 5 var scrollHeight; 6 var lastPosition = 0; 7 var downDirect = false; 8 var isDown = true; 9 var scrollPause = false; 10 11 if(scrollToolParams.scrollToolOptions.hide_for_mobile && $( window ).width() < 768){ 12 var showAdjScroll = false; 13 } 14 else 15 { 16 var showAdjScroll = true; 17 } 18 19 if(showAdjScroll){ 20 var adjScroll='<div class="'+scrollToolParams.scrollToolClass+'" id="scroll-tool" style="'+scrollToolParams.scrollToolStyle+'">'+scrollToolParams.scrollToolLabel+'</div>'; 21 $( "body" ).append(adjScroll); 22 if(scrollToolParams.scrollToolOptions.animated_scroll){ 23 $(window).scroll(function () { 24 scrollHeight = $(document).scrollTop(); 25 if( scrollHeight > 300 && isDown ){ 26 $( "#scroll-tool" ).stop(); 27 isDown = false; 28 $( "#scroll-tool" ).fadeTo('slow', 0.5); 29 } 30 if(scrollHeight > 300 && !scrollPause && !scrollToolParams.scrollToolOptions.disable_down){ 31 downDirect = false; 32 $('#scroll-tool #label-up').css('display', 'block'); 33 $('#scroll-tool #label-down').css('display', 'none'); 34 $('#scroll-tool').css('background', scrollToolParams.scrollToolOptions.upBg); 35 } 36 if( scrollHeight <= 300 && !isDown && scrollToolParams.scrollToolOptions.disable_down ){ 37 $( "#scroll-tool" ).stop(); 38 isDown = true; 39 $( "#scroll-tool" ).fadeOut('slow'); 40 } 41 }); 42 } 43 else 44 { 45 $(window).scroll(function () { 46 scrollHeight = $(document).scrollTop(); 47 if( scrollHeight > 300 && isDown ){ 48 isDown = false; 49 $( "#scroll-tool" ).css('display', 'block'); 50 } 51 if(scrollHeight > 300 && !scrollPause && !scrollToolParams.scrollToolOptions.disableDown){ 52 downDirect = false; 53 $('#scroll-tool #label-up').css('display', 'block'); 54 $('#scroll-tool #label-down').css('display', 'none'); 55 $('#scroll-tool').css('background', scrollToolParams.scrollToolOptions.upBg); 56 } 57 if( scrollHeight <= 300 && !isDown && scrollToolParams.scrollToolOptions.disableDown ){ 58 isDown = true; 59 $( "#scroll-tool" ).css('display', 'none'); 60 } 61 }); 62 } 63 64 if(scrollToolParams.scrollToolOptions.animated_scroll && !scrollToolParams.scrollToolOptions.disable_down){ 65 66 $( "#scroll-tool" ).mouseenter(function(){ 67 $('#scroll-tool').stop().animate({'opacity':'1'}); 68 }); 69 $( "#scroll-tool" ).mouseleave(function(){ 70 $('#scroll-tool').stop().animate({'opacity':'0.5'}); 71 }); 72 } 73 74 if(scrollToolParams.scrollToolOptions.animated_scroll && scrollToolParams.scrollToolOptions.disable_down){ 75 76 $( "#scroll-tool" ).mouseenter(function(){ 77 if(scrollHeight > 300) 78 $('#scroll-tool').stop().animate({'opacity':'1'}); 79 }); 80 $( "#scroll-tool" ).mouseleave(function(){ 81 if(scrollHeight > 300) 82 $('#scroll-tool').stop().animate({'opacity':'0.5'}); 83 }); 84 } 85 86 if(scrollToolParams.scrollToolOptions.animated_motion){ 87 if(scrollToolParams.scrollToolOptions.disable_down){ 88 $('#scroll-tool').click( 89 function (e) { 90 $('html, body').animate({scrollTop: '0px'}, 800); 91 } 92 ); 93 } 94 else 95 { 96 $('#scroll-tool').click( 97 function (e) { 98 if(!downDirect){ 99 downDirect = true; 100 $('#scroll-tool #label-up').css('display', 'none'); 101 $('#scroll-tool #label-down').css('display', 'block'); 102 $('#scroll-tool').css('background', scrollToolParams.scrollToolOptions.downBg); 103 lastPosition = $(document).scrollTop(); 104 scrollPause = true; 105 $('html, body').stop().animate({scrollTop: '0px'}, 800, function() {scrollPause = false;}); 106 } 107 else 108 { 109 downDirect = false; 110 $('#scroll-tool #label-up').css('display', 'block'); 111 $('#scroll-tool #label-down').css('display', 'none'); 112 $('#scroll-tool').css('background', scrollToolParams.scrollToolOptions.upBg); 113 scrollPause = true; 114 $('html, body').stop().animate({scrollTop: lastPosition+'px'}, 800, function() {scrollPause = false;}); 115 } 116 } 117 ); 118 } 119 } 120 else 121 { 122 if(disableDown){ 123 $('#scroll-tool').click( 124 function (e) { 125 $( "#scroll-tool" ).css('display', 'none'); 126 $('html, body').scrollTop(0); 127 } 128 ); 129 } 130 else 131 { 132 $('#scroll-tool').click( 133 function (e) { 134 135 if(!downDirect){ 136 downDirect = true; 137 $('#scroll-tool #label-up').css('display', 'none'); 138 $('#scroll-tool #label-down').css('display', 'block'); 139 $('#scroll-tool').css('background', scrollToolParams.scrollToolOptions.downBg); 140 lastPosition = $(document).scrollTop(); 141 scrollPause = true; 142 $('html, body').scrollTop(0); 143 scrollPause = false; 144 } 145 else 146 { 147 downDirect = false; 148 $('#scroll-tool #label-up').css('display', 'block'); 149 $('#scroll-tool #label-down').css('display', 'none'); 150 $('#scroll-tool').css('background', scrollToolParams.scrollToolOptions.upBg); 151 scrollPause = true; 152 $('html, body').scrollTop(lastPosition); 153 scrollPause = false; 154 } 155 } 156 ); 157 } 158 } 159 } 160 }); -
scroll-tool/trunk/readme.txt
r1393077 r1393100 3 3 Tags: scroll, sidebar, button, top, up, down 4 4 Requires at least: 3.3 5 Tested up to: 3.8.15 Tested up to: 4.4.2 6 6 Stable tag: 1.2 7 7 License: GPLv2 or later … … 13 13 14 14 Fully adjustable scroll tool for your site. 15 Easily adapts to any theme. You can change the size, shape, color, and much more. D inamicly loads to the page and, thus does not affect SEO. Tested in browsers: Internet Explorer 7 - 10 and last versions of Mozilla Firefox, Google Chrome and Opera.15 Easily adapts to any theme. You can change the size, shape, color, and much more. Dynamicly loads to the page and, thus does not affect on SEO. This plugin uses Color Picker - jQuery plugin for easy way to change colors of Your button. Tested in browsers: Internet Explorer 7 - 10 and last versions of Mozilla Firefox, Google Chrome and Opera. 16 16 17 17 Features: 18 18 19 19 * type of scroll (button or sidebar); 20 * fully customizable view of scroll;21 * disable for small mobile screen (option);20 * fully customizable scroll tool; 21 * disable for small mobile screens (option); 22 22 * animated scroll motion (option); 23 23 * scroll down to last view position (option). 24 * change colors of the button using Color Picker palette 24 25 25 26 == Installation == … … 35 36 2. screenshot-2.jpg 36 37 3. screenshot-3.jpg 38 4. screenshot-4.jpg 37 39 38 40 == Changelog == … … 40 42 = 1.0 = 41 43 Initial release. 44 45 = 1.1 = 46 Scroll tool frontend js-script moved from the main html-page to the binded js-file. 47 48 = 1.2 = 49 Inline JavaScript integration improved using wp_localize_script() function. JavaScript is properly escaped and quoted now. 50 Mentioned above function takes care of the required CDATA tags not to break XHTML validation. -
scroll-tool/trunk/scroll-tool.php
r881971 r1393100 5 5 /* 6 6 Plugin Name: Scroll Tool 7 Plugin URI: http ://www.eeforyou.com/contact-form/7 Plugin URI: https://wordpress.org/plugins/scroll-tool/ 8 8 Description: Allows to create scroll tool (button or sidebar) for your blog. 9 9 Author: fractal512 10 Version: 1. 011 Author URI: http ://www.eeforyou.com/contact-form/10 Version: 1.2 11 Author URI: https://profiles.wordpress.org/fractal512/ 12 12 */ 13 13 14 //create and print interface 14 // namespace "lloo" will be used for this plugin 15 // scroll-tool admin's panel 16 15 17 function lloo_echo_interface(){ 16 18 if(isset($_POST['scroll_tool'])){ … … 291 293 } 292 294 293 //add css and js 295 // add css stylesheets and js-scripts to the admin's front-end 296 294 297 function lloo_css_js(){ 295 298 if(isset($_GET['page']) && $_GET['page'] == 'scroll-tool'){ … … 300 303 $myScriptUrl = plugin_dir_url( __FILE__ ).'js/scroll-tool-colorpicker.js'; 301 304 wp_register_script('lloo-colorpicker-script', $myScriptUrl); 302 wp_enqueue_script('lloo-admin-script', plugin_dir_url( __FILE__ ).'js/scroll-tool- main.js', array('jquery', 'lloo-colorpicker-script'));305 wp_enqueue_script('lloo-admin-script', plugin_dir_url( __FILE__ ).'js/scroll-tool-admin.js', array('jquery', 'lloo-colorpicker-script')); 303 306 } 304 307 } 308 309 // add css stylesheet and js-script to the front-end 310 // this is only one place in the current php-script where html will be added to the user's front-end page 305 311 306 312 function lloo_frontend_css_js(){ … … 308 314 wp_register_style('lloo-frontend-style', $myStyleUrl); 309 315 wp_enqueue_style( 'lloo-frontend-style'); 310 wp_enqueue_script('lloo-frontend-script', plugin_dir_url( __FILE__ ).'js/scroll-tool.js', array('jquery')); 311 } 312 313 //hook for include to admin's panel 316 wp_enqueue_script('lloo-frontend-script', plugin_dir_url( __FILE__ ).'js/scroll-tool.js', array('jquery'), false, true); 317 $params = lloo_get_scroll_tool_params(); 318 wp_localize_script( 'lloo-frontend-script', 'scrollToolParams', $params ); 319 } 320 321 // display scroll-tool admin's panel 322 314 323 function lloo_admin_menu() { 315 //this way only for administrator 324 325 // this way only for the administrator with the manage options privilege 326 316 327 add_theme_page('Scroll Tool', 'Scroll Tool', 'manage_options', 'scroll-tool', 'lloo_echo_interface'); 317 } 318 319 function lloo_append_scroll() { 328 329 } 330 331 // get scroll-tool parameters from the database and prepare it for the front-end js-script 332 333 function lloo_get_scroll_tool_params() { 334 320 335 $lloo_op = unserialize(get_option('lloo_options')); 321 336 $tplOptions = $lloo_op; 322 337 $styles = array(); 323 338 $pluginUrl = plugin_dir_url( __FILE__ ); 339 324 340 if($lloo_op['type'] == 'button'){ 325 341 $class = 'scroll_button'; … … 448 464 $i++; 449 465 } 450 ?> 451 <script type="text/javascript"> 452 jQuery(document).ready(function($) { 453 454 <?php 455 if ($tplOptions['hide_for_mobile'] == 1) 456 echo 'var hideForMobile = true;'."\n"; 457 else 458 echo 'var hideForMobile = false;'."\n"; 459 if ($tplOptions['animated_scroll'] == 1) 460 echo 'var animatedScroll = true;'."\n"; 461 else 462 echo 'var animatedScroll = false;'."\n"; 463 if ($tplOptions['animated_motion'] == 1) 464 echo 'var animatedMotion = true;'."\n"; 465 else 466 echo 'var animatedMotion = false;'."\n"; 467 if ($tplOptions['disable_down'] == 1) 468 echo 'var disableDown = true;'."\n"; 469 else 470 echo 'var disableDown = false;'."\n"; 471 ?> 472 var scrollHeight; 473 var lastPosition = 0; 474 var downDirect = false; 475 var isDown = true; 476 var scrollPause = false; 477 478 if(hideForMobile && $( window ).width() < 768){ 479 var showAdjScroll = false; 480 } 481 else 482 { 483 var showAdjScroll = true; 484 } 485 486 if(showAdjScroll){ 487 var adjScroll='<div class="<?php echo $class; ?>" id="scroll-tool" style="<?php echo $style; ?>"><?php if (isset($button_label)) { echo $button_label; } ?></div>'; 488 $( "body" ).append(adjScroll); 489 if(animatedScroll){ 490 $(window).scroll(function () { 491 scrollHeight = $(document).scrollTop(); 492 if( scrollHeight > 300 && isDown ){ 493 $( "#scroll-tool" ).stop(); 494 isDown = false; 495 $( "#scroll-tool" ).fadeTo('slow', 0.5); 496 } 497 if(scrollHeight > 300 && !scrollPause && !disableDown){ 498 downDirect = false; 499 $('#scroll-tool #label-up').css('display', 'block'); 500 $('#scroll-tool #label-down').css('display', 'none'); 501 $('#scroll-tool').css('background', '<?php echo $tplOptions["upBg"]; ?>'); 502 } 503 if( scrollHeight <= 300 && !isDown && disableDown ){ 504 $( "#scroll-tool" ).stop(); 505 isDown = true; 506 $( "#scroll-tool" ).fadeOut('slow'); 507 } 508 }); 509 } 510 else 511 { 512 $(window).scroll(function () { 513 scrollHeight = $(document).scrollTop(); 514 if( scrollHeight > 300 && isDown ){ 515 isDown = false; 516 $( "#scroll-tool" ).css('display', 'block'); 517 } 518 if(scrollHeight > 300 && !scrollPause && !disableDown){ 519 downDirect = false; 520 $('#scroll-tool #label-up').css('display', 'block'); 521 $('#scroll-tool #label-down').css('display', 'none'); 522 $('#scroll-tool').css('background', '<?php echo $tplOptions["upBg"]; ?>'); 523 } 524 if( scrollHeight <= 300 && !isDown && disableDown ){ 525 isDown = true; 526 $( "#scroll-tool" ).css('display', 'none'); 527 } 528 }); 529 } 530 531 if(animatedScroll && !disableDown){ 532 533 $( "#scroll-tool" ).mouseenter(function(){ 534 $('#scroll-tool').stop().animate({'opacity':'1'}); 535 }); 536 $( "#scroll-tool" ).mouseleave(function(){ 537 $('#scroll-tool').stop().animate({'opacity':'0.5'}); 538 }); 539 } 540 541 if(animatedScroll && disableDown){ 542 543 $( "#scroll-tool" ).mouseenter(function(){ 544 if(scrollHeight > 300) 545 $('#scroll-tool').stop().animate({'opacity':'1'}); 546 }); 547 $( "#scroll-tool" ).mouseleave(function(){ 548 if(scrollHeight > 300) 549 $('#scroll-tool').stop().animate({'opacity':'0.5'}); 550 }); 551 } 552 553 if(animatedMotion){ 554 if(disableDown){ 555 $('#scroll-tool').click( 556 function (e) { 557 $('html, body').animate({scrollTop: '0px'}, 800); 558 } 559 ); 560 } 561 else 562 { 563 $('#scroll-tool').click( 564 function (e) { 565 if(!downDirect){ 566 downDirect = true; 567 $('#scroll-tool #label-up').css('display', 'none'); 568 $('#scroll-tool #label-down').css('display', 'block'); 569 $('#scroll-tool').css('background', '<?php echo $tplOptions["downBg"]; ?>'); 570 lastPosition = $(document).scrollTop(); 571 scrollPause = true; 572 $('html, body').stop().animate({scrollTop: '0px'}, 800, function() {scrollPause = false;}); 573 } 574 else 575 { 576 downDirect = false; 577 $('#scroll-tool #label-up').css('display', 'block'); 578 $('#scroll-tool #label-down').css('display', 'none'); 579 $('#scroll-tool').css('background', '<?php echo $tplOptions["upBg"]; ?>'); 580 scrollPause = true; 581 $('html, body').stop().animate({scrollTop: lastPosition+'px'}, 800, function() {scrollPause = false;}); 582 } 583 } 584 ); 585 } 586 } 587 else 588 { 589 if(disableDown){ 590 $('#scroll-tool').click( 591 function (e) { 592 $( "#scroll-tool" ).css('display', 'none'); 593 $('html, body').scrollTop(0); 594 } 595 ); 596 } 597 else 598 { 599 $('#scroll-tool').click( 600 function (e) { 601 602 if(!downDirect){ 603 downDirect = true; 604 $('#scroll-tool #label-up').css('display', 'none'); 605 $('#scroll-tool #label-down').css('display', 'block'); 606 $('#scroll-tool').css('background', '<?php echo $tplOptions["downBg"]; ?>'); 607 lastPosition = $(document).scrollTop(); 608 scrollPause = true; 609 $('html, body').scrollTop(0); 610 scrollPause = false; 611 } 612 else 613 { 614 downDirect = false; 615 $('#scroll-tool #label-up').css('display', 'block'); 616 $('#scroll-tool #label-down').css('display', 'none'); 617 $('#scroll-tool').css('background', '<?php echo $tplOptions["upBg"]; ?>'); 618 scrollPause = true; 619 $('html, body').scrollTop(lastPosition); 620 scrollPause = false; 621 } 622 } 623 ); 624 } 625 } 626 } 627 }); 628 </script> 629 <?php 630 } 466 467 // redefine variables for last 4 checkboxes in the admin panel 468 469 if ($tplOptions['hide_for_mobile'] == 1) 470 $tplOptions['hide_for_mobile'] = true; 471 else 472 $tplOptions['hide_for_mobile'] = false; 473 if ($tplOptions['animated_scroll'] == 1) 474 $tplOptions['animated_scroll'] = true; 475 else 476 $tplOptions['animated_scroll'] = false; 477 if ($tplOptions['animated_motion'] == 1) 478 $tplOptions['animated_motion'] = true; 479 else 480 $tplOptions['animated_motion'] = false; 481 if ($tplOptions['disable_down'] == 1) 482 $tplOptions['disable_down'] = true; 483 else 484 $tplOptions['disable_down'] = false; 485 486 // check for button text presense 487 488 if (!isset($button_label)) $button_label = ''; 489 490 // initialize associative array with button custom settings that created by user 491 492 $params = array( 493 'scrollToolClass' => $class, 494 'scrollToolStyle' => $style, 495 'scrollToolLabel' => $button_label, 496 'scrollToolOptions' => $tplOptions 497 ); 498 499 // return parameters to wp-function wp_localize_script() that will localize it for static js-script placed at js/scroll-tool.js 500 501 return $params; 502 503 }// end of lloo_get_scroll_tool_params() 504 505 506 // write defaults to the database instantly after plugin activation 631 507 632 508 function lloo_install() … … 635 511 $defaults = serialize(lloo_get_options(array())); 636 512 add_option('lloo_options', $defaults); 637 } 513 514 } 515 516 // delete options from the database when plugin deactivated 638 517 639 518 function lloo_uninstall() 640 519 { 520 641 521 delete_option('lloo_options'); 642 } 522 523 } 524 525 // activation/deactivation hooks 643 526 644 527 register_activation_hook( __FILE__, 'lloo_install'); 645 528 register_deactivation_hook( __FILE__, 'lloo_uninstall'); 529 530 // front-end & admin panel hooks 646 531 647 532 add_action('wp_enqueue_scripts', 'lloo_frontend_css_js'); 648 533 add_action('admin_enqueue_scripts', 'lloo_css_js'); 649 534 add_action('admin_menu', 'lloo_admin_menu'); 650 add_action('wp_footer', 'lloo_append_scroll');651 535 ?>
Note: See TracChangeset
for help on using the changeset viewer.