T3 Community Discussion & Support

Let's build the best free Joomla template framework, together!
  1. Jon Buckner
  2. General Discussion
  3. Monday, July 14 2014, 08:25 AM
  4.  Subscribe via email
T3-Framework: 2.3.0
Template: T3 Bs3 Blank 2.1.5

Off-Canvas toggle still has issue, to remind people of the solution:

Here is the info:

Here is the location for the files:

The complete code for each file is below:

Amended jquery.tap.min.js file ( to replace the existing file)
!function(a,b){"use strict";var c,d,e,f="._tap",g="._tapActive",h="tap",i="clientX clientY screenX screenY pageX pageY".split(" "),j={count:0,event:0},k=function(a,c){var d=c.originalEvent,e=b.Event(d);e.type=a;for(var f=0,g=i.length;g>f;f++)e[i[f]]=c[i[f]];return e},l=function(a){if(a.isTrigger)return!1;var c=j.event,d=Math.abs(a.pageX-c.pageX),e=Math.abs(a.pageY-c.pageY),f=Math.max(d,e);return a.timeStamp-c.timeStamp<b.tap.TIME_DELTA&&f<b.tap.POSITION_DELTA&&(!c.touches||1===j.count)&&o.isTracking},m=function(a){if(!e)return!1;var c=Math.abs(a.pageX-e.pageX),d=Math.abs(a.pageY-e.pageY),f=Math.max(c,d);return Math.abs(a.timeStamp-e.timeStamp)<750&&f<b.tap.POSITION_DELTA},n=function(a){if(0===a.type.indexOf("touch")){a.touches=a.originalEvent.changedTouches;for(var b=a.touches[0],c=0,d=i.length;d>c;c++)a[i[c]]=b[i[c]]}a.timeStamp=Date.now?Date.now():+new Date},o={isEnabled:!1,isTracking:!1,enable:function(){o.isEnabled||(o.isEnabled=!0,c=b(a.body).on("touchstart"+f,o.onStart).on("mousedown"+f,o.onStart).on("click"+f,o.onClick))},disable:function(){o.isEnabled&&(o.isEnabled=!1,c.off(f))},onStart:function(a){a.isTrigger||(n(a),(!b.tap.LEFT_BUTTON_ONLY||a.touches||1===a.which)&&(a.touches&&(j.count=a.touches.length),o.isTracking||(a.touches||!m(a))&&(o.isTracking=!0,j.event=a,a.touches?(e=a,c.on("touchend"+f+g,o.onEnd).on("touchcancel"+f+g,o.onCancel)):c.on("mouseup"+f+g,o.onEnd))))},onEnd:function(a){var c;a.isTrigger||(n(a),l(a)&&(c=k(h,a),d=c,b(j.event.target).trigger(c)),o.onCancel(a))},onCancel:function(a){a&&"touchcancel"===a.type&&a.preventDefault(),o.isTracking=!1,c.off(g)},onClick:function(a){return!a.isTrigger&&d&&d.isDefaultPrevented()&&d.target===a.target&&d.pageX===a.pageX&&d.pageY===a.pageY&&a.timeStamp-d.timeStamp<750?(d=null,!1):void 0}};b(a).ready(o.enable),b.tap={POSITION_DELTA:10,TIME_DELTA:400,LEFT_BUTTON_ONLY:!0}}(document,jQuery);

Amended off-canvas.js file (to replace existing file)
* @package T3 Framework for Joomla!
* @copyright Copyright (C) 2004-2013 JoomlArt.com. All Rights Reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
* @authors JoomlArt, JoomlaBamboo, (contribute to this project at github
* & Google group to become co-author)
* @Google group: https://groups.google.com/forum/#!forum/t3fw
* @Link: http://t3-framework.org

jQuery (document).ready(function($){
// fix for old ie
if (/MSIE\s([\d.]+)/.test(navigator.userAgent) ? new Number(RegExp.$1) < 10 : false) {
$('html').addClass ('old-ie');
} else if(/constructor/i.test(window.HTMLElement)){

var $wrapper = $('body'),
$inner = $('.t3-wrapper'),
$toggles = $('.off-canvas-toggle'),
$offcanvas = $('.t3-off-canvas'),
$close = $('.t3-off-canvas .close'),
direction = 'left',
$fixed = null;
// no wrapper, just exit
if (!$wrapper.length) return ;

// add effect class for nav
$toggles.each (function () {
var $this = $(this),
$nav = $($this.data('nav')),
effect = $this.data('effect'),
direction = ($('html').attr('dir') == 'rtl' && $this.data('pos')!='right') || ($('html').attr('dir') != 'rtl' && $this.data('pos')=='right') ? 'right':'left';
$nav.addClass (effect).addClass ('off-canvas-'+direction);

// move to outside wrapper-content
var inside_effect = ['off-canvas-effect-3','off-canvas-effect-16','off-canvas-effect-7','off-canvas-effect-8','off-canvas-effect-14'];
if ($.inArray(effect, inside_effect) == -1) {
} else {

$toggles.on('tap', function(e){
// detect direction

stopBubble (e);

if ($wrapper.hasClass ('off-canvas-open')) {
oc_hide (e);
return false;

$btn = $(this);
$nav = $($btn.data('nav'));
$fixed = $inner.find('*').filter (function() {return $(this).css("position";) === 'fixed';});

$nav.addClass ('off-canvas-current');

direction = ($('html').attr('dir') == 'rtl' && $btn.data('pos')!='right') || ($('html').attr('dir') != 'rtl' && $btn.data('pos')=='right') ? 'right':'left';

// add direction class to body
// $('html').removeClass ('off-canvas-left off-canvas-right').addClass ('off-canvas-' + direction);


// disable scroll event
var events = $(window).data('events');
if (events && events.scroll && events.scroll.length) {
// store current handler for scroll
var handlers = [];
for (var i=0; i<events.scroll.length; i++){
handlers[i] = events.scroll[i].handler;
$(window).data('scroll-events', handlers);
$(window).off ('scroll');
// disable scroll on page
var scrollTop = ($('html').scrollTop()) ? $('html').scrollTop() : $('body').scrollTop(); // Works for Chrome, Firefox, IE...
$('html').addClass('noscroll').css('top',-scrollTop).data('top', scrollTop);

// make the fixed element become absolute
$fixed.each (function () {
var $this = $(this),
$parent = $this.parent(),
mtop = 0;
// find none static parent
while (!$parent.is($inner) && $parent.css("position";) === 'static') $parent = $parent.parent();
mtop = -$parent.offset().top;
$this.css ({'position': 'absolute', 'margin-top': mtop});

$wrapper.scrollTop (scrollTop);
// update effect class
$wrapper[0].className = $wrapper[0].className.replace (/\s*off\-canvas\-effect\-\d+\s*/g, ' ').trim() +
' ' + $btn.data('effect') + ' ' + 'off-canvas-' + direction;

setTimeout(oc_show, 50);

return false;
var oc_show = function () {
$wrapper.addClass ('off-canvas-open');
$inner.on ('click', oc_hide);
$close.on ('click', oc_hide);
$offcanvas.on ('click', stopBubble);

// fix for old ie
if ($.browser.msie && $.browser.version < 10) {
var p1 = {}, p2 = {};
p1['padding-'+direction] = $('.t3-off-canvas').width();
p2[direction] = 0;
$inner.animate (p1);
$nav.animate (p2);

var oc_hide = function () {

//remove events
$inner.off ('click', oc_hide);
$close.off ('click', oc_hide);
$offcanvas.off ('click', stopBubble);

//delay for click action
$wrapper.removeClass ('off-canvas-open');
}, 100);

setTimeout (function (){
$wrapper.removeClass ($btn.data('effect')).removeClass ('off-canvas-'+direction);
$wrapper.scrollTop (0);
// enable scroll
$('html').removeClass ('noscroll').css('top', '');
$('html,body').scrollTop ($('html').data('top'));
$nav.removeClass ('off-canvas-current');
// restore fixed elements
$fixed.css ({'position': '', 'margin-top': ''});
// re-enable scroll
if ($(window).data('scroll-events')) {
var handlers = $(window).data('scroll-events');
for (var i=0; i<handlers.length; i++) {
$(window).on ('scroll', handlers[i]);
$(window).data('scroll-events', null);
}, 550);

// fix for old ie
if ($('html').hasClass ('old-ie')) {
var p1 = {}, p2 = {};
p1['padding-'+direction] = 0;
p2[direction] = -$('.t3-off-canvas').width();
$inner.animate (p1);
$nav.animate (p2);

var stopBubble = function (e) {
return true;

There are no comments made yet.
Accepted Answer
Gardner Luna Accepted Answer Pending Moderation
Hi, please check the commit: https://github.com/t3framework/t3/commit/901049bcea910e155a334d6cfe76f56d43b9e1cc
Hope it's what you expect.

There are no comments made yet.
  1. more than a month ago
  2. General Discussion
  3. # Permalink
Gardner Luna Accepted Answer Pending Moderation
Hi Jon,

It's absolutely great, I will have discussion with dev team about this.

There are no comments made yet.
  1. more than a month ago
  2. General Discussion
  3. # 1
jaytse Accepted Answer Pending Moderation
n in the river bank of thousands of lights like jade, in the dark water gently swaying, the Zapatos Under Armour Curry 3 scenery is very beautiful. An aunt put a photo of a stall photographed and quickly imaged. She was very good, to take pictures. I laughed and said she was vulgar, took the camera over and took the shadow of the two of us in the streetlight. ?Two shadows lean together, obliquely long shadow on the ground, looks very deep meaning can be savored. Is ambiguous from the two people, but in each other's life has a reflection. Not day and night. ?She put the photo in the bag and said, I like this picture, I will remember this evening. ?Half a month later, she and her boyfriend and complex, Nike Roshe Run Slip back to his home to live. ?My apartment or that dark look, stuck in a noisy city, like a gradually sinking quiet island. ?Sometimes the heart can not sleep at night, up to listen to the cello, V on the desk filled with typewriters practice pen words. Written with a sleepy, in order to go to bed to sleep. Daytime often headache splitting. ?In the school and how can not meet her. One after another or in a pile of friends to meet when she met her, she used to sit with me, always said to me, or happy with you, ah, or happy with you. ?I go back to her, that is, ah, then you come back to my apartment to live together. ?She smiled and said, no problem, as long as you make me happy, what is good to say. ?Sister, your words, but the tone of the authentic clients. ?Who prostrate you ah ?Two people will be slapstick up, heartless smile. ?5 ?In the past is so sad to see her smile ah, then how. Zijun. I can not sit beside her sadly. New Balance Scarpe At first sight of her, they think she has too much past, between the facial features whitewash, she has forgotten, she did not mention, but I was distressed, could not bear her unhappy. Just got me I missed her childhood, juvenile. Otherwise I will give her Anping's life. ?In the past always feel that they are more ruthless people can be ruthless people. If you feel that I want him to be indifferent, then his feeling is right, because this world is as thin as paper, I have been tired, no longer have the interest to do no return. I am just a laity, inadvertently thinking for others. ?But my mind is clear, Zijun not the same. I do not suffer from her suffering, sorrow Zapatos Nike Shox she is not sorrowful, and only willing to leave her meet the joy of the morning and evening, drunk laughing thirty thousand field, do not complain from the injury. ?Later, this kind of miss has become a habit, but also their own rich and happy to get up, and my heart there is a personal place, is a collection, so before filling the blank of life. ?Remember to read the night to the morning, and read such a sentence: ?... ?But you will not forget me. You do not need to forget me. I am so light for you, you can be my Sunday afternoon as the marshmallows eat from time to time, adjust the taste of life. You will be a person when you miss me, miss my love for you, think: I met a warm woman. ?I have to spend a lifetime of energy to forget, to fight with hope and hope. Things are never fair, I am playing a must lose the gambling, pay a lifetime of love. ?... ?There will be so one day. Memory and miss, not longer than our lives. But I and that day, in the end to be separated by how long the time, how much space, how Colors of California Scarpe many others, my, your things, how many classes to open the train, how many people leave and how many People come back. That day is mixed with many things, people, moments, distance, can not remember? That day I will not know? I will not say, for example, on Nike Air Max Shoes Outlet April 5, 1976 at Tiananmen Square, I forgot you. At that time I remembered you but I could not Canada Goose Italia remember the feeling of things. So forget that there is no meaning, as with words to say silence. ?I repeatedly look at this paragraph, my heart moved to the pain, endured tears, pen on the paper copy down, go out in the morning, ran two blocks, find a dark green old mailbox, sent to her. When a man walked back slowly, the day was bright. I walked, the street lamp went out on a light. It seems the world because I lost the light. I said in my heart, piumini moncler outlet online Zijun, no one would like me to love you. I do not love you like this again. ?The sun is still far but there must be sun. ?And it seems that from that night, cold eyes to see her people around for another change, Yan Yu more and more, one year out of a more measured, even jokes are convergence up, the attitude has been impeccable. In this way, my heart gradually even the last trace of moving are light. ?Always feel that UGG Orejeras rojo she remembered later, not the childhood of her mischievous neighbor, will not be a painful to live in the stomach of the child, not the first time in high school boy, not twenty years old A middle-aged man who took her into the gorgeous restaurant, will not be a conversation with her and stay her phone Aventure ... ... will not be any person, it will not be me. ?She will not remember anyone. Come to things just reflected in the eye, Jiaoren think it is a pair of stories of the eyes. But I know that no one who comes to her, she will know how to live their own good. This is
There are no comments made yet.
  1. more than a month ago
  2. General Discussion
  3. # 2
  • Page :
  • 1

There are no replies made for this post yet.
However, you are not allowed to reply to this post.