|
|
04.11.2013, 14:36
|
|
ipm
Ильин Павел
Зарегистрирован: 2012-10-12
Сообщений: 386
|
Ну это конечно, вариант, но а если стоит задача грузить изображения в админке?
Ну т.е. фоновое изображение должно не в css файле прописываться, а должно гузиться в админке.
Как тогда быть в этом случае?
Знание может быть лишь у того, у кого есть вопросы. Ханс Георг Гадамер
|
|
|
04.11.2013, 18:18
|
|
Игорь
Игорь Мишарин
Зарегистрирован: 2011-11-20
Сообщений: 482
|
Код:background: url(/netcat_files/XX_YY.png) no-repat left top
XX - номер поля в Системных таблицах
YY - номер раздела
Stark
|
|
|
04.11.2013, 19:32
|
|
ipm
Ильин Павел
Зарегистрирован: 2012-10-12
Сообщений: 386
|
Цитата:background: url(/netcat_files/XX_YY.png) no-repat left top
XX - номер поля в Системных таблицах
YY - номер раздела
Но ведь название изображения загружается реальное, а соответственно динамично в css не пропишешь имя картинки.
Или куда Вы предлагаете писать этот код: background: url(/netcat_files/XX_YY.png) no-repat left top , если не в файл стилей и не в style в теге?
Если каждому li будет подставлен свой class, через системное поле раздела, т.е. в каждом разделе можно будет написать класс, используя строковое поле, а потом этот класс будет подставляться динамически для каждого раздела в шаблонах навигации... тогда я не пойму, куда бэкграунд писать (background: url(/netcat_files/XX_YY.png) no-repat left top)... если в css, то толку... имя у загруженной картинки остаётся именно таким, какое есть до загрузки, т.е. когда загружено лежит в папке уже в таком виде: http://mysite.ru/netcat_files/1056/img_caption10.11.2011.png ... ну т.е. имя изображения сохраняется, так смысл тогда в XX_YY? В css файле заранее не прописать, если только не знать точное имя картинки... а знать его невозможно, так как грузить изображение может любой человек, который просто ожидает после загрузки смену изображения и всё. И формат также может быть любым...не только png.
Хочется добиться максимальной автоматизации данного процесса.
Можете уточнить, что Вы имели ввиду?:
Цитата:background: url(/netcat_files/XX_YY.png) no-repat left top
XX - номер поля в Системных таблицах
YY - номер раздела
Знание может быть лишь у того, у кого есть вопросы. Ханс Георг Гадамер
|
|
|
04.11.2013, 19:50
|
|
Игорь
Игорь Мишарин
Зарегистрирован: 2011-11-20
Сообщений: 482
|
Цитата:Но ведь название изображения загружается реальное
Тип файловой системы - Простая, и именно в таком виде будет доступно изображение - /netcat_files/XX_YY.png
А если так, то только прописывать стиль в шаблоне вывода меню.
А background-position уже в css.
Цитата:то толку... имя у загруженной картинки остаётся именно таким, какое есть до загрузки, т.е. когда загружено лежит в папке уже в таком виде: http://mysite.ru/netcat_files/1056/img_caption10.11.2011.png ... ну т.е. имя изображения сохраняется, так смысл тогда в XX_YY?
вы пробовали это сделать или просто так думаете?
Stark
|
|
|
04.11.2013, 20:01
|
|
ipm
Ильин Павел
Зарегистрирован: 2012-10-12
Сообщений: 386
|
Цитата:то толку... имя у загруженной картинки остаётся именно таким, какое есть до загрузки, т.е. когда загружено лежит в папке уже в таком виде: http://mysite.ru/netcat_files/1056/img_caption10.11.2011.png ... ну т.е. имя изображения сохраняется, так смысл тогда в XX_YY?
вы пробовали это сделать или просто так думаете?
Я пробовал со стандартной файловой системой, а с простой не пробовал...я подумал, что Вы имеете ввиду этот момент, но...если пойти дальше и предположить что нам обязательно использовать файл. систему не простую, а стандартную или защищенную, то тогда остается вариант прописывать стиль в шаблоне и ничего более? Или можно ещё как-то 'исхитриться'? Вы не сталкивались с подобным?
Знание может быть лишь у того, у кого есть вопросы. Ханс Георг Гадамер
|
|
|
04.11.2013, 22:29
|
|
Игорь
Игорь Мишарин
Зарегистрирован: 2011-11-20
Сообщений: 482
|
Цитата:обязательно использовать файл. систему не простую, а стандартную или защищенную, то тогда остается вариант прописывать стиль в шаблоне и ничего более? Или можно ещё как-то 'исхитриться'? Вы не сталкивались с подобным?
Если Стандартная или Защищенная то да, вариант с css-файлом не проходит.
А может не бэкграундом картинку вставлять и по :hover к ней применять opacity?
Или нужно, чтобы картинка полностью изменялась?
Stark
|
|
|
05.11.2013, 06:51
|
|
ipm
Ильин Павел
Зарегистрирован: 2012-10-12
Сообщений: 386
|
В моем случае желательно картинку изменять полностью.
Спасибо большое за помощь.
Буду использовать простую файловую систему/
Ещё раз спасибо
Знание может быть лишь у того, у кого есть вопросы. Ханс Георг Гадамер
|
|
|
05.11.2013, 07:13
|
|
Руслан Густокашин
Студия Вэлпис
Зарегистрирован: 2012-02-06
Сообщений: 962
|
Павел, вот еще один хитрый вариант, чисто на jQuery.
В шаблоне:
Код:$vertical_menu[0]['prefix'] = "<ul class='menuha'>";
$vertical_menu[0]['suffix'] = "</ul>";
$vertical_menu[0]['active'] = "<li style='background-image: url(%BackgroundImgSection);'><a rel='url(%BackgroundImgSectionHover)' href='%URL'>%NAME</a></li>%NEXT_LEVEL";
$vertical_menu[0]['unactive'] = $vertical_menu[0]['active'];
В js-файле:
Код:$( ".menuha li" ).hover(
function() {
mainbg=$(this).css('backgroundImage');
$(this).css('backgroundImage', $(this).find('a').attr('rel') );
$(this).find('a').attr('rel',mainbg);
}, function() {
hoverbg=$(this).css('backgroundImage');
$(this).css('backgroundImage', $(this).find('a').attr('rel') );
$(this).find('a').attr('rel',hoverbg);
}
);
Но лучше бы вам загружать сдвоенную картинку в настройки раздела, а не две картинки в разные поля. Дело в том, что если менять URL картинки при наведении курсора, то будет некоторая задержка - потребуется время, чтобы картинка скачалась. Этого недостатка лишен "сдвоенный" вариант картинки. В случае, если переделать все так, чтобы пользователь грузил только одну, но сдвоенную картинку, скрипт упрощается.
В шаблоне:
Код:$vertical_menu[0]['prefix'] = "<ul class='menuha'>";
$vertical_menu[0]['suffix'] = "</ul>";
$vertical_menu[0]['active'] = "<li style='background-image: url(%BackgroundImgSection);'><a href='%URL'>%NAME</a></li>%NEXT_LEVEL";
$vertical_menu[0]['unactive'] = $vertical_menu[0]['active'];
В js-файле:
Код:$( ".menuha li" ).hover(
function() {
$(this).css('backgroundPosition', '0 -100px'); // смещаем картинку на 100 пикселей вниз
}, function() {
$(this).css('backgroundPosition', '0 0' );
}
);
Только не забудьте задать для фоновой картинки в CSS высоту - иначе на сайте будет показываться сдвоенная картинка, а не нужная ее половинка.
|
|
|
05.11.2013, 07:24
|
|
ipm
Ильин Павел
Зарегистрирован: 2012-10-12
Сообщений: 386
|
Цитата:Но лучше бы вам загружать сдвоенную картинку в настройки раздела, а не две картинки в разные поля. Дело в том, что если менять URL картинки при наведении курсора, то будет некоторая задержка - потребуется время, чтобы картинка скачалась. Этого недостатка лишен "сдвоенный" вариант картинки. В случае, если переделать все так, чтобы пользователь грузил только одну, но сдвоенную картинку, скрипт упрощается.
Да, Руслан, спасибо. Я так и решил делать.
За идею тоже спасибо, может пригодится)
Знание может быть лишь у того, у кого есть вопросы. Ханс Георг Гадамер
|
|
|
05.11.2013, 21:59
|
|
Руслан Густокашин
Студия Вэлпис
Зарегистрирован: 2012-02-06
Сообщений: 962
|
Пожалуйста!
Хм, чет я только сейчас понял, что ступил - сделал в последнем варианте на жквери эмуляцию стандартного CSS-псевдокласса :hover, когда можно было ограничиться CSS'кой. :-)))
|