Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
Йошь-мыслитель
 Аватар для Xander Bass
126 / 120 / 26
Регистрация: 22.02.2009
Сообщений: 706
Записей в блоге: 5

Плагин для фтогалереи XPolaroid vs.IE8

29.04.2011, 15:15. Показов 837. Ответов 5

Студворк — интернет-сервис помощи студентам
Предыстория. Порядком устав от поиска нормального плагина для фотогалереи, я решил изобрести свой "велосипед", а заодно получше изучить фреймворк JQuery. Часа четыре напряжённой кропотливой работы, раскуривания Великого Манула (ой, простите, мануала) JQuery - и плагин готов. В "лисе" работал идеально, как я и представлял, чтобы оно работало, на чём я и успокоился. Через некоторое время я решил просмотреть как работает плагин в остальных браузерах. Выяснилось следующее:
1. Mozilla (4.0), Google Chrome (10.0.648.205), Opera (11.10) - работает идеально.
2. Safary (5.0.5) - наблюдается незначительное замедление эффектов. В целом работает прекрасно.
3. Internet Explorer 8 - ... Я думаю, сами понимаете

Ошибка в "осле" - tagName есть null или не является объектом.
Исходник плагина прилагается:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
(function($){
 $.fn.XPolaroid = function(){
  var _grw = 4; var _xplrdiroot = '/tpl/images/xpolaroid/'; var _cur_image = 0; var 
_img_layer = null; var _img_next  = null; var _img_text  = null;
  var _gic = $(this).find('img').size();
  var _grc = Math.ceil(_gic / _grw);
  $(this).wrapInner('<table class="xpolaroid_thumbs" cellpadding="0" cellspacing="2" 
border="0"></table>');
  var _cc = 0;
  for (c = 0; c < _grc; c++)
  {
   _cc = 0;
   $(this).find('img').slice(c*_grw,c*_grw+_grw).wrapAll('<tr></tr>');
   $(this).find('img').slice(c*_grw,c*_grw+_grw).each(function(){
    $(this).addClass('xpolaroid_thumb');
    $(this).attr('alt',_cc+c*_grw);
    $(this).wrap('<td></td>');
    _cc++;
   });
  }
  function _xpolaroid_loadimg(ii)
  {
   if ((ii >= 0)&&(ii <= _gic-1)&&(ii != _cur_image))
   {
    _img_layer.fadeOut("fast",function(){ _img_layer.attr('src',
$('img.xpolaroid_thumb[alt='+ii+']').attr('src')); });
    _img_layer.fadeIn("fast",function(){});
    _img_text.html($('img.xpolaroid_thumb[alt='+ii+']').attr('title'));
    _cur_image = ii;
   }
  }
  $(this).append('<center><div class="xpolaroid_wlayer"></div></center>');
  var _win_layer = $(this).find('div.xpolaroid_wlayer');
  _win_layer.each(function(){
   $(this).append('<center><table cellpadding="0" cellspacing="0" border="0"><tr><td 
class="xpolaroid_bs_slide"></td><td class="xpolaroid_bs_control"></td><td 
class="xpolaroid_bs_win"></td></tr><tr><td class="xpolaroid_image" colspan="3"><div><img 
src="" alt=""/></div></td></tr><tr><td class="xpolaroid_text" colspan="3"></td></tr></table>
</center>');
   _img_layer = $(this).find('td.xpolaroid_image > div > img');
   _img_text  = $(this).find('td.xpolaroid_text');
   $(this).find('td.xpolaroid_bs_control').each(function(){
    $(this).append('<img src="'+_xplrdiroot+'first_g.png"/>');
    $(this).find('img:last').click(function(){ _xpolaroid_loadimg(0); });
    $(this).find('img:last').hover(function(){ $(this).attr('src',_xplrdiroot+'first.png'); 
},function(){ $(this).attr('src',_xplrdiroot+'first_g.png'); });
    $(this).append('<img src="'+_xplrdiroot+'prev_g.png"/>');
    $(this).find('img:last').click(function(){ _xpolaroid_loadimg(_cur_image-1); });
    $(this).find('img:last').hover(function(){ $(this).attr('src',_xplrdiroot'prev.png'); },
function(){ $(this).attr('src',_xplrdiroot+'prev_g.png'); });
    $(this).append('<img src="'+_xplrdiroot+'next_g.png"/>');
    $(this).find('img:last').click(function(){ _xpolaroid_loadimg(_cur_image+1); });
    $(this).find('img:last').hover(function(){ $(this).attr('src',_xplrdiroot'next.png'); },
function(){ $(this).attr('src',_xplrdiroot+'next_g.png'); });
    $(this).append('<img src="'+_xplrdiroot+'last_g.png"/>');
    $(this).find('img:last').click(function(){ _xpolaroid_loadimg(_gic-1); });
    $(this).find('img:last').hover(function(){ $(this).attr('src',_xplrdiroot'last.png'); },
function(){ $(this).attr('src',_xplrdiroot+'last_g.png'); });
   });
   $(this).find('td.xpolaroid_bs_win').each(function(){
    $(this).append('<img src="'+_xplrdiroot+'info_g.png"/>');
    $(this).find('img:last').click(function(){  });
    $(this).find('img:last').hover(function(){ $(this).attr('src',_xplrdiroot+'info.png'); 
},function(){ $(this).attr('src',_xplrdiroot+'info_g.png'); });
    $(this).append('<img src="'+_xplrdiroot+'close_g.png"/>');
    $(this).find('img:last').click(function(){ _win_layer.fadeOut(500,function(){  }); });
    $(this).find('img:last').hover(function(){ $(this).attr('src',_xplrdiroot+'close.png'); 
},function(){ $(this).attr('src',_xplrdiroot+'close_g.png'); });
   });
  });
  $(this).find('img.xpolaroid_thumb').each(function(){
   $(this).click(function(){
    _cur_image = parseInt($(this).attr('alt'));
    _win_layer.fadeIn(500,function(){ _xpolaroid_loadimg(_cur_image); });
   });
  });
 }
})(jQuery);
Сразу просьба, если обнаружите индийский код, ногами не пинать, я начал изучать JQuery совсем недавно. Ошибка возникает при попытке кликнуть на thumb-изображении, естественно, только в "осле". Вопрос знатокам: как это можно пофиксить?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.04.2011, 15:15
Ответы с готовыми решениями:

TextShadow.js для IE8
Здравствуйте, нашел способ как для ИЕ8 заставить работать свойство text-shadow из css3. Описан он вот тут ...

Верстка для IE8
Люди можете помочь с кусочком верстки!Пределать с div блоков на таблицу!IE 8 не видет блоки! Вот код! &lt;!-- Шапка сайта --&gt; ...

Градиент для рамки в IE8
Как сделать градиент для рамки, который в обычных браузерах делается так? border-image: linear-gradient(#fff, #c9c9c9) 1;

5
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
29.04.2011, 15:42
Цитата Сообщение от Xander Bass Посмотреть сообщение
Ошибка в "осле" - tagName есть null или не является объектом.
Что-то в этом коде нет tagName'а. А в какое место он показывает?
0
Йошь-мыслитель
 Аватар для Xander Bass
126 / 120 / 26
Регистрация: 22.02.2009
Сообщений: 706
Записей в блоге: 5
29.04.2011, 16:04  [ТС]
Сделаем проще. Вот архив archive.zip. Здесь плагин, фреймворк, стили, пример галереи с контентом.
0
Йошь-мыслитель
 Аватар для Xander Bass
126 / 120 / 26
Регистрация: 22.02.2009
Сообщений: 706
Записей в блоге: 5
29.04.2011, 16:15  [ТС]
Цитата Сообщение от Vovan-VE Посмотреть сообщение
Что-то в этом коде нет tagName'а. А в какое место он показывает?
А вот хороший, кстати, вопрос, откуда его берёт "осёл". А точнее на кой "ослу" tagName.
0
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
29.04.2011, 16:38
Xander Bass, Проблема в стиля. Без стилей все более-менее хорошо пашет в IE7.

Добавлено через 9 минут
Если убрать
CSS
1
.xpolaroid_wlayer {display: none;}
то все хорошо.
Там в коде, я погледел, оно через анимацию скрывается/показывается. Вожможно, дело в том, что в IE jQuery отключает анимацию для увеличения быстродействия.
1
Йошь-мыслитель
 Аватар для Xander Bass
126 / 120 / 26
Регистрация: 22.02.2009
Сообщений: 706
Записей в блоге: 5
29.04.2011, 17:07  [ТС]
Цитата Сообщение от Vovan-VE Посмотреть сообщение
то все хорошо
Чем и где хорошо? То что показывает изначально окно, которое должно быть скрыто до клика на рисунке. Это как раз плохо.
Впрочем, Vovan-VE, за подсказку спасибо. Помогло вот что:
1. После строки:
JavaScript
1
var _win_layer = $(this).find('div.xpolaroid_wlayer');
вставил строку:
JavaScript
1
_win_layer.css('display','none');
2. Удалил display: none из стилей.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.04.2011, 17:07
Помогаю со студенческими работами здесь

Не работает inherit для IE8
Всем привет. У меня в IE8 не работает inherit для любых CSS стилей. Например: &lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; ...

Подключение стилей для IE6-IE8
Уважаемые эксперты! Помогите с решением внешнего вида страниц сайта в IE6-IE8. Что нужно писать в комментарии и можно ли прописать все три...

Спрятать кнопки radio в starRating для IE8
Система starRating работает для всех браузеров, так как у меня как всегда стоит задача кросс браузерной верстки. Ну как сказать, почти...

Подключение файла svg в html для ie7 и ie8
Добрый вечер! Не получается подключить svg файл(внешний) в html для IE7 и IE8. Использую &lt;embed src=&quot;map.svg&quot;...

Изменить цвет текста для disabled input в IE8
Есть страница, в упрощенном виде код выглядит так&lt;html&gt; &lt;body&gt; &lt;input id=&quot;test&quot; style=&quot;color: red&quot;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 17.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru