Здесь курят мануал.

Добро пожаловать на Пыху!

Логин:
Пароль:
 

Нет прописки? Зарегистрируйся!

Новости

Пыха переехала на новый сервер, ура!

Краснодарское время: 24 Май, 2012, 10:44:24

Страниц: [1] 2
Печать
Автор Тема: Стилизация input[type=file]...  (Прочитано 1927 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Stasovsky    ↓ 
09 Февраль, 2011, 03:24:01
НЕ ХУЕТА! ХУЕТА!

Сенсей XD
Группа: Джедаи

Карма: 54
Сообщений: 3653
Сила слова: 1.48

решил замутить стилизацию интпута с выбором файла)) не гарантирую, что будет ниипаццо круто и будет работать во всех бравзерах, но потестил в ff 2/3, opera 9.2/10.54, ie 7/8, safari/chrome 4/5...
зачем? - просто от нех делать))
такие уже есть! - они страшные и генерят всякое говно, а меня это пугает))
 
демка -- http://keyx.narod.ru/input_file/
 
собственно вот так это работает...
HTML
<input type="file" name="" class="file" />

CSS
/* your styles */
#jinput_file { width:250px; } // ширина всего элемента
#jinput_file .jinput_input,
#jinput_file .jinput_input span { height:34px; } // высота элемента
#jinput_file .jinput_input span { line-height:30px; padding:0 15px 0 10px; margin-left:5px; font-size:13px; font-weight:bold; } // оформление кнопочки
#jinput_file .jinput_input,
#jinput_file .jinput_input span,
#jinput_file .jinput_input:hover,
#jinput_file .jinput_input:hover span,
#jinput_file.jinput_disable .jinput_input,
#jinput_file.jinput_disable .jinput_input span { background:url('img/button.gif') 0 0 no-repeat; } // фон кнопочки
#jinput_file .jinput_name { line-height:34px; margin:0 10px; } // оформление вывода имени файла
 
// остальное не трогаем
 
/* default style */
#jinput_file { overflow:hidden; }
#jinput_file .jinput_input { position:relative; overflow:hidden; }
    #jinput_file .jinput_input span { display:block; background-position:100% 0; }
    #jinput_file .jinput_input:hover { background-position:0 50%; }
    #jinput_file .jinput_input:hover span { background-position:100% 50%; } 
    #jinput_file .jinput_input input { font-size:72px; position:absolute; top:-20px; right:-20px; opacity:0; filter:alpha(opacity=0); cursor:pointer; }
    @-moz-document url-prefix() {#jinput_file .jinput_input input { left:-850px; }}
    #jinput_file .jinput_name { float:left; }
    #jinput_file.jinput_disable .jinput_input input { display:none; }
    #jinput_file.jinput_disable .jinput_input { background-position:0 100%; }
    #jinput_file.jinput_disable .jinput_input span { background-position:100% 100%; color:#666; cursor:default; }   
button.gif прилагается...
 
функция...
Javascript
$('input.file').jInput({
    buttonLocation : 'right', // расположение кнопки right/left
    buttonText : 'Обзор...', // текст кнопки
    relFormats : ['jpg', 'jpeg', 'gif', 'png'], // массив допустимых форматов
    errFormatText : 'неверный формат', // сообщение об ошибке
    disable : false // активность элемента
});

это сам плагин...
Javascript
(function($) {
    $.fn.jInput = function(options) {
        var defaults = {
            buttonLocation : 'right',
            buttonText : 'Обзор...',
            relFormats : ['jpg', 'jpeg', 'gif', 'png'],
            errFormatText : 'неверный формат',
            disable : false
        },
        opts = $.extend(defaults, options);
       
        this.each(function() {
            disable = opts.disable ? ' class="jinput_disable"' : '';
            $(this).wrap('<div id="jinput_file"'+disable+'><div class="jinput_input" style="float:'+opts.buttonLocation+';"></div><span class="jinput_name"></span></div>');
            $(this).parent().append('<span>'+opts.buttonText+'</span>');
            $(this).val('');
        });
       
        this.change(function() {
            var fileName = $(this).val().replace(/(.+\\)/i,'').replace(/(.{10}).{3,}(.{10})/i,'$1...$2'),
                relFormats = new RegExp('('+opts.relFormats.join('|')+')', 'i');
            a = fileName.split('.');
            fileFormat = a[(a.length-1)];
            if (fileFormat.match(relFormats)) {
                $(this).parent().next().text(fileName);
            } else {
                $(this).parent().next().text(opts.errFormatText);
                $(this).val('');
            }
        });
       
    };
})(jQuery);

собственно всё)) если найдете косяки, постараюсь пофиксить)) если че криво написал, попробую исправить))


* button.gif (5.06 Кб, 673x102 - просмотрено 82 раз.)
« Последнее редактирование: 09 Февраль, 2011, 03:24:01 от Stasovsky » Записан
Sinkler    ↓ 
25 Август, 2010, 02:10:08 , спустя
НЕ ХУЕТА! ХУЕТА!

Похуй, пляшем!
Группа: Джедаи

Карма: 73
Сообщений: 6804
Сила слова: 1.07

придумай, что мне приебать в блоге на шапку
Записан

Stasovsky    ↓ 
25 Август, 2010, 02:12:28 , спустя 2 минуты 20 секунд
НЕ ХУЕТА! ХУЕТА!

Сенсей XD
Группа: Джедаи

Карма: 54
Сообщений: 3653
Сила слова: 1.48

не срать!!! >.<
я тут людям бобро делаю, а ты со всоей блоговской шапкой)))
Записан
krasun    ↓ 
25 Август, 2010, 02:12:33 , спустя 5 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: Джедаи
Группа: Джедаи

Карма: 41
Сообщений: 1379
Сила слова: 2.97

Stasovsky, сделай скрин или выложи демо, а то хочу посмотреть, но харит
Записан
Stasovsky    ↓ 
25 Август, 2010, 02:13:59 , спустя 1 минуту 26 секунд
НЕ ХУЕТА! ХУЕТА!

Сенсей XD
Группа: Джедаи

Карма: 54
Сообщений: 3653
Сила слова: 1.48

да-да, демку)) забыл))
Записан
Sinkler    ↓ 
25 Август, 2010, 02:24:25 , спустя 10 минут 26 секунд
НЕ ХУЕТА! ХУЕТА!

Похуй, пляшем!
Группа: Джедаи

Карма: 73
Сообщений: 6804
Сила слова: 1.07


не срать!!! >.<
я тут людям бобро делаю, а ты со всоей блоговской шапкой)))
это я тебе на заметку, тебе всё-равно делать нечего. с меня пиво)))
Записан

Stasovsky    ↓ 
25 Август, 2010, 02:24:38 , спустя 13 секунд
НЕ ХУЕТА! ХУЕТА!

Сенсей XD
Группа: Джедаи

Карма: 54
Сообщений: 3653
Сила слова: 1.48

демка в первом посте))
Sinkler, по поводу блога... могу только пару косяков поправить, а че в шапку пхать - хз, я не дезигнер...
Записан
Sinkler    ↓ 
25 Август, 2010, 02:26:21 , спустя 1 минуту 43 секунды
НЕ ХУЕТА! ХУЕТА!

Похуй, пляшем!
Группа: Джедаи

Карма: 73
Сообщений: 6804
Сила слова: 1.07

демка в первом посте))
куль
Sinkler, по поводу блога... могу только пару косяков поправить, а че в шапку пхать - хз, я не дезигнер...
ну гуд
Записан

Stasovsky    ↓ 
25 Август, 2010, 02:29:14 , спустя 2 минуты 53 секунды
НЕ ХУЕТА! ХУЕТА!

Сенсей XD
Группа: Джедаи

Карма: 54
Сообщений: 3653
Сила слова: 1.48

могу какую-нить хрень с букафкаи замутить, а-ля "PHP Cake ololo" и все такое, но думаю будет не айс)) можно еще трафки жахнуть, но она тоже не в тему, за по цвету))
Записан
Sinkler    ↓ 
25 Август, 2010, 02:38:10 , спустя 8 минут 56 секунд
НЕ ХУЕТА! ХУЕТА!

Похуй, пляшем!
Группа: Джедаи

Карма: 73
Сообщений: 6804
Сила слова: 1.07

можно еще трафки жахнуть
смотря какой, где и с кем xDDD
Записан

Sinkler    ↓ 
25 Август, 2010, 02:45:32 , спустя 7 минут 22 секунды
НЕ ХУЕТА! ХУЕТА!

Похуй, пляшем!
Группа: Джедаи

Карма: 73
Сообщений: 6804
Сила слова: 1.07

мне интересно, какого хуя хрень от хайтлайтеда показывается в самом вверху справа...
Спустя 49 секунд добавил
ну да похуй, всё-равно буду переписывать на версию 1.3.3 и обновлять компоненты...
Записан

Stasovsky    ↓ 
25 Август, 2010, 02:46:46 , спустя 1 минуту 14 секунд
НЕ ХУЕТА! ХУЕТА!

Сенсей XD
Группа: Джедаи

Карма: 54
Сообщений: 3653
Сила слова: 1.48

из-за position:static !important; в shCore.css - 30я строка
Записан
Sinkler    ↓ 
25 Август, 2010, 02:48:54 , спустя 2 минуты 8 секунд
НЕ ХУЕТА! ХУЕТА!

Похуй, пляшем!
Группа: Джедаи

Карма: 73
Сообщений: 6804
Сила слова: 1.07


из-за position:static !important; в shCore.css - 30я строка
странно, но раньше всё гуд было, при этом я воообще там ничего не менял...
Записан

ivanscm    ↓ 
25 Август, 2010, 08:36:02 , спустя 5 часов 47 минут 8 секунд
НЕ ХУЕТА! ХУЕТА!

Синий властилин
Группа: Джедаи

Карма: 0
Сообщений: 1123
Сила слова: 0

вот еще http://vremenno.net/design/file-inputs-styling/ , глянь может чего почерпнешь? nice тоже стилизует инпут. ваще боян :))) но за старание +. уважаю таких людей
Записан

Stasovsky    ↓ 
25 Август, 2010, 02:36:12 , спустя 6 часов 10 секунд
НЕ ХУЕТА! ХУЕТА!

Сенсей XD
Группа: Джедаи

Карма: 54
Сообщений: 3653
Сила слова: 1.48

ivanscm, ну иконочку с форматом я тоже могу плюхнуть))
Записан
Страниц: [1] 2
Печать
 

Перейти в:  

Этот топик скрыли: adw0rd, artoodetoo