diff --git a/jquery.smartbanner.css b/jquery.smartbanner.css
index 4bb9407..e963acc 100644
--- a/jquery.smartbanner.css
+++ b/jquery.smartbanner.css
@@ -1,6 +1,8 @@
-#smartbanner { display: block; position: absolute; left: 0; right: 0; top:-82px; border-bottom: 1px solid #000; width: 100%; height: 78px; font-family: 'Helvetica Neue',sans-serif; z-index: 9998; -webkit-font-smoothing: antialiased; overflow: hidden; -webkit-text-size-adjust: none; }
-#smartbanner, html.sb-animation { -webkit-transition: all 0.3s ease; transition: all 0.3s ease; }
-#smartbanner .sb-container { margin: 0 auto; }
+#smartbanner { display: block; border-bottom: 1px solid #000; width: 100%; height: 0; font-family: 'Helvetica Neue',sans-serif; z-index: 9998; -webkit-font-smoothing: antialiased; overflow: hidden; -webkit-text-size-adjust: none; }
+#smartbanner { -webkit-transition: height 0.3s ease; transition: height 0.3s ease; }
+#smartbanner.showing { overflow: hidden; height: 78px;}
+#smartbanner.shown { height: 78px; }
+#smartbanner .sb-container { margin: 0 auto; height: 100%; position: relative; overflow: hidden;}
#smartbanner .sb-close { position: absolute; left: 5px; top: 5px; display: block; width: 17px; height: 17px; font-family: 'ArialRoundedMTBold', Arial; font-size: 17px; line-height: 17px; text-align: center; color: #fff; background: #000; text-decoration: none; text-shadow: none; border-radius: 17px; -webkit-font-smoothing: subpixel-antialiased; }
#smartbanner .sb-icon { position: absolute; left: 30px; top: 10px; display: block; width: 57px; height: 57px; background: rgba(0,0,0,0.6); background-size: cover; border-radius: 10px; box-shadow: 0 1px 3px rgba(0,0,0,0.3); }
#smartbanner.no-icon .sb-icon { display: none; }
diff --git a/jquery.smartbanner.js b/jquery.smartbanner.js
index d32fed9..aead5d3 100644
--- a/jquery.smartbanner.js
+++ b/jquery.smartbanner.js
@@ -6,7 +6,6 @@
*/
!function ($) {
var SmartBanner = function (options) {
- this.origHtmlMargin = parseFloat($('html').css('margin-top')); // Get the original margin-top of the HTML element so we can take that into account
var options = $.extend({}, $.smartbanner.defaults, options);
this.os = options.force || this.detectOS();
@@ -159,8 +158,8 @@
.append('×')
.append($(''))
.append($('
')
- .append($('
').text(this.title))
- .append($('').text(this.author))
+ .append($('').text(this.options.title))
+ .append($('').text(this.options.author))
.append($('').text(inStore))
)
.append($('').attr('href', url)
@@ -176,12 +175,11 @@
} else{
$('#smartbanner').addClass('no-icon');
}
-
+
this.bannerHeight = $('#smartbanner').outerHeight() + 2;
if (this.scale > 1) {
$('#smartbanner')
- .css('top', parseFloat($('#smartbanner').css('top')) * this.scale)
.css('height', parseFloat($('#smartbanner').css('height')) * this.scale)
.hide();
$('#smartbanner .sb-container')
@@ -190,7 +188,6 @@
.css('-moz-transform', 'scale('+this.scale+')')
.css('width', $(window).width() / this.scale);
}
- $('#smartbanner').css('position', (this.options.layer) ? 'absolute' : 'static');
}
// Listen for click events
@@ -202,7 +199,6 @@
// Show smartbanner
SmartBanner.prototype.show = function() {
var banner = $('#smartbanner');
- var top = this.origHtmlMargin + (this.bannerHeight * this.scale);
var speed = parseFloat(banner.css('transition-duration')) * 1000;
banner.stop();
@@ -210,28 +206,18 @@
if ($.support.transition) {
banner
.one($.support.transition.end, function() {
- banner.addClass('shown');
- })
- .emulateTransitionEnd(speed)
- .css('top', 0);
-
- $('html')
- .addClass('sb-animation')
- .one($.support.transition.end, function() {
- $('html').removeClass('sb-animation');
+ banner.addClass('shown').removeClass('showing');
})
.emulateTransitionEnd(speed)
- .css('margin-top', top);
+ .addClass('showing');
} else {
- banner.animate({top: 0}, { duration: speed, easing: 'swing' }).addClass('shown');
- $('html').animate({marginTop: top}, { duration: speed, easing: 'swing' });
+ banner.animate({height: '78' * this.scale}, { duration: speed, easing: 'swing' }).addClass('shown');
}
}
// Hide smartbanner
SmartBanner.prototype.hide = function() {
var banner = $('#smartbanner');
- var top = -1 * this.bannerHeight * this.scale;
var speed = parseFloat(banner.css('transition-duration')) * 1000;
banner.stop();
@@ -242,19 +228,9 @@
$('#smartbanner').remove();
})
.emulateTransitionEnd(speed)
- .removeClass('shown')
- .css('top', top);
-
- $('html')
- .addClass('sb-animation')
- .one($.support.transition.end, function() {
- $('html').css('margin-top', "").removeClass('sb-animation');
- })
- .emulateTransitionEnd(speed)
- .css('margin-top', this.origHtmlMargin);
+ .removeClass('shown');
} else {
- banner.animate({top: top}, { duration: speed, easing: 'swing' }).addClass('shown');
- $('html').animate({marginTop: this.origHtmlMargin}, { duration: speed, easing: 'swing' });
+ banner.animate({height: 0}, { duration: speed, easing: 'swing' }).removeClass('shown');
}
}
@@ -369,7 +345,7 @@
!function ($) {
function transitionEnd() {
var el = document.createElement('smartbanner');
-
+
var transEndEventNames = {
WebkitTransition: 'webkitTransitionEnd',
MozTransition: 'transitionend',