forked from OpenNeo/impress
get STUCK, actions bar! get. stuck.
This commit is contained in:
parent
40f508247d
commit
49cd93087a
4 changed files with 18 additions and 2 deletions
|
@ -440,6 +440,13 @@
|
||||||
updateBulkActions();
|
updateBulkActions();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// hahaha, nasty hacks to make stickUp use our old jQuery
|
||||||
|
$.fn.on = $.fn.bind;
|
||||||
|
|
||||||
|
$(function() {
|
||||||
|
$('.bulk-actions').stickUp();
|
||||||
|
});
|
||||||
|
|
||||||
function maintainCheckboxes(fn) {
|
function maintainCheckboxes(fn) {
|
||||||
var checkedIds = getCheckedIds();
|
var checkedIds = getCheckedIds();
|
||||||
|
|
||||||
|
|
1
app/assets/javascripts/stickUp.min.js
vendored
Normal file
1
app/assets/javascripts/stickUp.min.js
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
jQuery(function($){$(document).ready(function(){var contentButton = [];var contentTop = [];var content = [];var lastScrollTop = 0;var scrollDir = '';var itemClass = '';var itemHover = '';var menuSize = null;var stickyHeight = 0;var stickyMarginB = 0;var currentMarginT = 0;var topMargin = 0;$(window).scroll(function(event){var st = $(this).scrollTop();if (st > lastScrollTop){scrollDir = 'down';} else {scrollDir = 'up';}lastScrollTop = st;});$.fn.stickUp = function( options ) {$(this).addClass('stuckMenu');var objn = 0;if(options != null) {for(var o in options.parts) {if (options.parts.hasOwnProperty(o)){content[objn] = options.parts[objn];objn++;}}if(objn == 0) {console.log('error:needs arguments');}itemClass = options.itemClass;itemHover = options.itemHover;if(options.topMargin != null) {if(options.topMargin == 'auto') {topMargin = parseInt($('.stuckMenu').css('margin-top'));} else {if(isNaN(options.topMargin) && options.topMargin.search("px") > 0){topMargin = parseInt(options.topMargin.replace("px",""));} else if(!isNaN(parseInt(options.topMargin))) {topMargin = parseInt(options.topMargin);} else {console.log("incorrect argument, ignored.");topMargin = 0;} }} else {topMargin = 0;}menuSize = $('.'+itemClass).size();}stickyHeight = parseInt($(this).height());stickyMarginB = parseInt($(this).css('margin-bottom'));currentMarginT = parseInt($(this).next().closest('div').css('margin-top'));vartop = parseInt($(this).offset().top);};$(document).on('scroll', function() {varscroll = parseInt($(document).scrollTop());if(menuSize != null){for(var i=0;i < menuSize;i++){contentTop[i] = $('#'+content[i]+'').offset().top;function bottomView(i) {contentView = $('#'+content[i]+'').height()*.4;testView = contentTop[i] - contentView;if(varscroll > testView){$('.'+itemClass).removeClass(itemHover);$('.'+itemClass+':eq('+i+')').addClass(itemHover);} else if(varscroll < 50){$('.'+itemClass).removeClass(itemHover);$('.'+itemClass+':eq(0)').addClass(itemHover);}}if(scrollDir == 'down' && varscroll > contentTop[i]-50 && varscroll < contentTop[i]+50) {$('.'+itemClass).removeClass(itemHover);$('.'+itemClass+':eq('+i+')').addClass(itemHover);}if(scrollDir == 'up') {bottomView(i);}}}if(vartop < varscroll + topMargin){$('.stuckMenu').addClass('isStuck');$('.stuckMenu').next().closest('div').css({'margin-top': stickyHeight + stickyMarginB + currentMarginT + 'px'}, 10);$('.stuckMenu').css("position","fixed");$('.isStuck').css({top: '0px'}, 10, function(){});};if(varscroll + topMargin < vartop){$('.stuckMenu').removeClass('isStuck');$('.stuckMenu').next().closest('div').css({'margin-top': currentMarginT + 'px'}, 10);$('.stuckMenu').css("position","relative");};});});});
|
|
@ -88,7 +88,6 @@ body.closet_hangers-index
|
||||||
|
|
||||||
.bulk-actions
|
.bulk-actions
|
||||||
display: none
|
display: none
|
||||||
text-align: center
|
|
||||||
|
|
||||||
#closet-hangers
|
#closet-hangers
|
||||||
clear: both
|
clear: both
|
||||||
|
@ -372,10 +371,19 @@ body.closet_hangers-index
|
||||||
content: "…"
|
content: "…"
|
||||||
|
|
||||||
.bulk-actions
|
.bulk-actions
|
||||||
|
background: $background-color
|
||||||
border-top: 1px solid $module-border-color
|
border-top: 1px solid $module-border-color
|
||||||
|
box-sizing: border-box
|
||||||
display: block
|
display: block
|
||||||
font-size: 85%
|
font-size: 85%
|
||||||
padding: .5em 1em
|
padding: .5em 1em
|
||||||
|
text-align: center
|
||||||
|
width: $container-width
|
||||||
|
|
||||||
|
&.isStuck
|
||||||
|
border-bottom: 1px solid $module-border-color
|
||||||
|
border-top: 0
|
||||||
|
z-index: 11 /* beat the visibility form */
|
||||||
|
|
||||||
.bulk-actions-intro, .bulk-actions-target-desc-singular
|
.bulk-actions-intro, .bulk-actions-target-desc-singular
|
||||||
display: none
|
display: none
|
||||||
|
|
|
@ -155,4 +155,4 @@
|
||||||
- content_for :javascripts do
|
- content_for :javascripts do
|
||||||
= include_javascript_libraries :jquery, :jquery_tmpl
|
= include_javascript_libraries :jquery, :jquery_tmpl
|
||||||
= javascript_include_tag 'ajax_auth', 'jquery.ui', 'jquery.jgrowl',
|
= javascript_include_tag 'ajax_auth', 'jquery.ui', 'jquery.jgrowl',
|
||||||
'placeholder', 'closet_hangers/index'
|
'placeholder', 'stickUp.min', 'closet_hangers/index'
|
Loading…
Reference in a new issue