22 декабря 2015
9 июля 2012
Вопросы компании UniSender
Здравствуйте, коллеги! Я представляю компанию http://unisender.com UniSender , один из крупнейших российских сервисов email и sms-рассылок. Мы создали эту ветку, чтобы общаться на тему email-маркетинга - вы можете задавать нам технические и маркетинговые вопросы по рассылкам, работе с вашими базами, работе с компаний UniSender. Будем рады ответить на ваши вопросы и поделиться нашим опытом и знаниями.
27 июня 2012
Кого нанимать для разработки картографических сервисов?
Возникла необходимость нанять программиста для создания картографического сервиса (основывающегося на api Google Maps или Яндекс.Карт) и не могу сформулировать требования к профилю кандидата.
Кого искать? PHP+JavaScrip разработчика? Критично ли наличие опыта работы с картографическими api, или любой программист "въедет"?
Кого искать? PHP+JavaScrip разработчика? Критично ли наличие опыта работы с картографическими api, или любой программист "въедет"?
26 июня 2012
mail.ru не индексирует сайт
Почему mail.ru не индексирует сайт http://mebel.bars36.ru/ ? В чём проблема?
14 июня 2012
Живой фон
Как сделать живой фон на сайте? Такой, чтоб плавно менялся. К примеру, на фоне картинка с облаками и они медленно плывут.
12 июня 2012
Синхронизация CSS
Как сделать так чтоб писать читаемый CSS у себя на компе а на хостинге чтоб он автоматически синхронизировался и сжимался?
15 мая 2012
Как правильно разрезать фон с шумом для верстки?
Добрый день! Подскажите, пожалуйста, как правильно разрезать фон с шумом в фотошопе, чтобы потом при верстке шум был равномерным, а не одинаковыми повторяющимися квадратами? Спасибо.
3 апреля 2012
Как доработать возврат на начало
Уважаемые, кто подскажет, как доработать уже готовый код, что бы был возврат к первому товару, без клика на "далее". т.е. если товаров 7, отображается по очереди 1 2 3 4 5 6 7 далее сразу за 7 следует 1.
код:
(function($){
$.fn.carousel = function(config) {
var defaults = {
slider: '.slider',
slide: '.slide',
prevSlide: '.prev',
nextSlide: '.next',
speed: 500
},
opt = $.extend(defaults, config),
dStyle = document.body.style,
transitionSupport = dStyle.webkitTransition !== undefined ||
dStyle.MozTransition !== undefined ||
dStyle.msTransition !== undefined ||
dStyle.OTransition !== undefined ||
dStyle.transition !== undefined;
$(opt.prevSlide).addClass('disabled');
function moveNext($slider) {
var leftmargin = $slider.attr('style').match(/margin\-left:(.*[0-9])/i) && parseInt(RegExp.$1),
$slide = $slider.find(opt.slide);
if (!$slider.is(":animated") && (-leftmargin) != (($slide.length - 1) * 100)) {
leftmargin -= 100;
if(transitionSupport) {
$slider.css('marginLeft', leftmargin + "%");
} else {
$slider.animate({ marginLeft: leftmargin + "%" }, opt.speed);
}
if((-leftmargin) == ($slide.length - 1) * 100) {
return false;
}
}
}
function movePrev($slider) {
var leftmargin = $slider.attr('style').match(/margin\-left:(.*[0-9])/i) && parseInt(RegExp.$1);
if(!$slider.is(":animated") && (leftmargin != 0)) {
leftmargin += 100;
if(transitionSupport) {
$slider.css('marginLeft', leftmargin + "%");
} else {
$slider.animate({ marginLeft: leftmargin + "%" }, opt.speed);
}
if(leftmargin == 0) {
return false;
}
}
}
$(opt.nextSlide + ',' + opt.prevSlide).click(function(e) {
var $el = $(this),
link = $el.attr('href'),
$target = $(opt.slider).filter(link);
$(opt.nextSlide).each(function() {
if($(this)[0] == $el[0]) {
if(moveNext($target) === false) {
$el.addClass('disabled');
};
$(opt.prevSlide).filter(function() {
return this.getAttribute('href') === link;
}).removeClass('disabled');
}
});
$(opt.prevSlide).each(function() {
if($(this)[0] == $el[0]) {
if(movePrev($target) === false) {
$el.addClass('disabled');
};
$(opt.nextSlide).filter(function() {
return this.getAttribute('href') === link;
}).removeClass('disabled');
}
});
e.preventDefault();
});
//swipes trigger move left/right
$(this).live( "swipe", function(e, ui){
(ui.direction === "left" ? moveNext : movePrev)($(this).find( opt.slider ));
});
return this.each(function() {
var $wrap = $(this),
$slider = $wrap.find(opt.slider),
$slide = $wrap.find(opt.slide),
slidenum = $slide.length,
speed = opt.speed / 300;
$wrap.css({
overflow: "hidden"
});
$slider.css({
marginLeft: "0px",
float: "left",
width: 32 * slidenum + "%",
"-webkit-transition": "margin-left " + speed + "s ease",
"-moz-transition": "margin-left " + speed + "s ease",
"-ms-transition": "margin-left " + speed + "s ease",
"-o-transition": "margin-left " + speed + "s ease",
"transition": "margin-left " + speed + "s ease"
});
$slide.css({
float: "left",
width: (100 / slidenum) + "%"
});
});
};
//modified swipe events from jQuery Mobile
// also handles swipeleft, swiperight
$.event.special.swipe = {
setup: function() {
var $el = $(this);
$el
.bind("touchstart", function(e) {
var data = e.originalEvent.touches ? e.originalEvent.touches[0] : e,
start = {
time: (new Date).getTime(),
coords: [ data.pageX, data.pageY ],
origin: $(e.target)
},
stop;
function moveHandler(e) {
if(!start) {
return;
}
var data = e.originalEvent.touches ? e.originalEvent.touches[0] : e;
stop = {
time: (new Date).getTime(),
coords: [ data.pageX, data.pageY ]
};
// prevent scrolling
if (Math.abs(start.coords[0] - stop.coords[0]) > 10) {
e.preventDefault();
}
}
$el
.bind("touchmove", moveHandler)
.one("touchend", function(e) {
$el.unbind("touchmove", moveHandler);
if (start && stop) {
if (stop.time - start.time < 1000 &&
Math.abs(start.coords[0] - stop.coords[0]) > 30 &&
Math.abs(start.coords[1] - stop.coords[1]) < 75) {
var left = start.coords[0] > stop.coords[0];
start.origin
.trigger("swipe", {direction: left ? "left" : "right"})
.trigger(left ? "swipeleft" : "swiperight" );
}
}
start = stop = undefined;
});
});
}
};
})(jQuery);
код:
(function($){
$.fn.carousel = function(config) {
var defaults = {
slider: '.slider',
slide: '.slide',
prevSlide: '.prev',
nextSlide: '.next',
speed: 500
},
opt = $.extend(defaults, config),
dStyle = document.body.style,
transitionSupport = dStyle.webkitTransition !== undefined ||
dStyle.MozTransition !== undefined ||
dStyle.msTransition !== undefined ||
dStyle.OTransition !== undefined ||
dStyle.transition !== undefined;
$(opt.prevSlide).addClass('disabled');
function moveNext($slider) {
var leftmargin = $slider.attr('style').match(/margin\-left:(.*[0-9])/i) && parseInt(RegExp.$1),
$slide = $slider.find(opt.slide);
if (!$slider.is(":animated") && (-leftmargin) != (($slide.length - 1) * 100)) {
leftmargin -= 100;
if(transitionSupport) {
$slider.css('marginLeft', leftmargin + "%");
} else {
$slider.animate({ marginLeft: leftmargin + "%" }, opt.speed);
}
if((-leftmargin) == ($slide.length - 1) * 100) {
return false;
}
}
}
function movePrev($slider) {
var leftmargin = $slider.attr('style').match(/margin\-left:(.*[0-9])/i) && parseInt(RegExp.$1);
if(!$slider.is(":animated") && (leftmargin != 0)) {
leftmargin += 100;
if(transitionSupport) {
$slider.css('marginLeft', leftmargin + "%");
} else {
$slider.animate({ marginLeft: leftmargin + "%" }, opt.speed);
}
if(leftmargin == 0) {
return false;
}
}
}
$(opt.nextSlide + ',' + opt.prevSlide).click(function(e) {
var $el = $(this),
link = $el.attr('href'),
$target = $(opt.slider).filter(link);
$(opt.nextSlide).each(function() {
if($(this)[0] == $el[0]) {
if(moveNext($target) === false) {
$el.addClass('disabled');
};
$(opt.prevSlide).filter(function() {
return this.getAttribute('href') === link;
}).removeClass('disabled');
}
});
$(opt.prevSlide).each(function() {
if($(this)[0] == $el[0]) {
if(movePrev($target) === false) {
$el.addClass('disabled');
};
$(opt.nextSlide).filter(function() {
return this.getAttribute('href') === link;
}).removeClass('disabled');
}
});
e.preventDefault();
});
//swipes trigger move left/right
$(this).live( "swipe", function(e, ui){
(ui.direction === "left" ? moveNext : movePrev)($(this).find( opt.slider ));
});
return this.each(function() {
var $wrap = $(this),
$slider = $wrap.find(opt.slider),
$slide = $wrap.find(opt.slide),
slidenum = $slide.length,
speed = opt.speed / 300;
$wrap.css({
overflow: "hidden"
});
$slider.css({
marginLeft: "0px",
float: "left",
width: 32 * slidenum + "%",
"-webkit-transition": "margin-left " + speed + "s ease",
"-moz-transition": "margin-left " + speed + "s ease",
"-ms-transition": "margin-left " + speed + "s ease",
"-o-transition": "margin-left " + speed + "s ease",
"transition": "margin-left " + speed + "s ease"
});
$slide.css({
float: "left",
width: (100 / slidenum) + "%"
});
});
};
//modified swipe events from jQuery Mobile
// also handles swipeleft, swiperight
$.event.special.swipe = {
setup: function() {
var $el = $(this);
$el
.bind("touchstart", function(e) {
var data = e.originalEvent.touches ? e.originalEvent.touches[0] : e,
start = {
time: (new Date).getTime(),
coords: [ data.pageX, data.pageY ],
origin: $(e.target)
},
stop;
function moveHandler(e) {
if(!start) {
return;
}
var data = e.originalEvent.touches ? e.originalEvent.touches[0] : e;
stop = {
time: (new Date).getTime(),
coords: [ data.pageX, data.pageY ]
};
// prevent scrolling
if (Math.abs(start.coords[0] - stop.coords[0]) > 10) {
e.preventDefault();
}
}
$el
.bind("touchmove", moveHandler)
.one("touchend", function(e) {
$el.unbind("touchmove", moveHandler);
if (start && stop) {
if (stop.time - start.time < 1000 &&
Math.abs(start.coords[0] - stop.coords[0]) > 30 &&
Math.abs(start.coords[1] - stop.coords[1]) < 75) {
var left = start.coords[0] > stop.coords[0];
start.origin
.trigger("swipe", {direction: left ? "left" : "right"})
.trigger(left ? "swipeleft" : "swiperight" );
}
}
start = stop = undefined;
});
});
}
};
})(jQuery);
26 марта 2012
jQuery - выбрать элементы первой строки
Эге-гей, привет!
есть много div-ов фиксированной ширины, у них float: left; доходят они до правого края страницы и переходят на новую строку и так далее... нужно выбрать элементы первой получившейся строки
подскажите, пожалуйста, как это сделать
есть много div-ов фиксированной ширины, у них float: left; доходят они до правого края страницы и переходят на новую строку и так далее... нужно выбрать элементы первой получившейся строки
подскажите, пожалуйста, как это сделать
23 марта 2012
Как изменить порядок рубрик в WordPress
Здравствуйте! Подскажите пожалуйста, как изменить порядок рубрик в WordPress? Тема не поддерживает создание произвольного меню, использование плагина My category order также не помогает. Код рубрик выведен в PHP в виде
10 марта 2012
Google maps api, расстановка маркера вручную
Добрый день. Есть скрипт (www.index01d.com/cc2m/q9itfh) выполняющий следующее: можно расставлять маркеры по средством click,и передвигать их.
Подскажите, как сделать ограничение на количество расставляемых маркеров. Необходимо ставить всего один маркер. И как можно при перемещении данного маркера, получать его новые координаты.
Заранее благодарю.
Подскажите, как сделать ограничение на количество расставляемых маркеров. Необходимо ставить всего один маркер. И как можно при перемещении данного маркера, получать его новые координаты.
Заранее благодарю.