(function($) {
'use strict';
$.ThreeSixtyFullscreen = function(el, options) {
var plugin = this,
$el = el,
opts = options,
$button = $('<a href=\'#\'>Fullscreen</a>'),
isFullscreen = true,
pfx = ['webkit', 'moz', 'ms', 'o', ''];
// Attach event to the plugin
$button.bind('touchstart click', function(event) {
plugin.onClickHandler.apply(this, event);
});
/**
* Set styles for the plugin interface.
* @return {Object} this
*/
plugin.setStyles = function() {
$button.css({
'z-index': '12',
'display': 'block',
'position': 'absolute',
'background': 'url(/catalog/view/javascript/jquery/threesixty/images/fs.png) no-repeat',
'width': '32px',
'height': '32px',
'text-indent': '-99999px',
'right': '10px',
'bottom': '10px',
'cursor': 'pointer',
'background-position': '0px -32px'
});
return this;
};
plugin.RunPrefixMethod = function(obj, method) {
var p = 0,
m, t;
while (p < pfx.length && !obj[m]) {
m = method;
if (pfx[p] === '') {
m = m.substr(0, 1).toLowerCase() + m.substr(1);
}
m = pfx[p] + m;
t = typeof obj[m];
if (t !== 'undefined') {
pfx = [pfx[p]];
return (t === 'function' ? obj[m]() : obj[m]);
}
p++;
}
};
/**
* Initilize the fullscreen plugin
* @param {Object} opt override options
*/
plugin.init = function() {
plugin.setStyles();
$el.prepend($button);
};
plugin.onClickHandler = function(e) {
var elem;
if (typeof $el.attr('id') !== 'undefined') {
elem = document.getElementById($el.attr('id'));
} else if (typeof $el.parent().attr('id') !== 'undefined') {
elem = document.getElementById($el.parent().attr('id'));
} else {
return false;
}
plugin.toggleFullscreen(elem);
};
plugin.toggleButton = function() {
if (isFullscreen) {
$button.css({
'background-position': '0px 0px'
});
} else {
$button.css({
'background-position': '0px -32px'
});
}
};
plugin.toggleFullscreen = function(elem) {
if (plugin.RunPrefixMethod(document, 'FullScreen') || plugin.RunPrefixMethod(document, 'IsFullScreen')) {
plugin.RunPrefixMethod(document, 'CancelFullScreen');
}
else {
plugin.RunPrefixMethod(elem, 'RequestFullScreen');
}
plugin.toggleButton();
};
plugin.init();
};
}(jQuery));
Есть вот такой скрипт для вывода крутёлки 360 в полный экран, он работает, но есть несколько проблем.
По умолчанию кнопка перехода в полноэкранный режим такая как надо (0 -32), когда заходим в полноэкранный режим кнопка меняется на (0 -0), а вот когда выходим из полноэкранного режима кнопка не возвращается в исходное состояние (0 -32). fs.png - это спрайт 32 ширина и 64 высота. Вроде все должно работать, но не идет.
В мобильном устройстве кнопка на вход в полноэкранный режим при касании меняет картинку, но в полный экран не заходит (точнее заходит, но нужно словить положение), а вот выход из полноэкранного режима работает с пол тыка. Вообще и то и то плохо работало пока я не добавил touchstart. С мышкой в полноэкранный заходит без проблем. Наверное еще что то нужно поменять. Проблема не во всех браузерах (только в Опере и Хроме).
Что можно допилить, чтобы этот скрипт еще и в IE работал?
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Есть файл json, в нем содержатся данные, и один массив с массивами, те
Сразу оговорюсь, на Vuejs не программировал, есть небольшой опыт со старым AngularJS, да и тот в Notepad++
Имеется массив с координатами точек, названием и содержимым для балуна, циклом добавляется в коллекцию и выводятся точки на картуНо встал...
Наткнулся на этот пост Группировка меток на карте но на практике выкидывает не понятные ошибке http://dtenpokt