Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 01.02.2018, 11:03
Новичок на форуме
Отправить личное сообщение для Евгений76 Посмотреть профиль Найти все сообщения от Евгений76
 
Регистрация: 22.02.2017
Сообщений: 7

Не работает простой код jQuery в IE 8.
Привет!
На своем сайте я использую относительную единицу измерения CSS —
vw. Как заставить ее понимать старые браузеры, я нашел способ, но только не IE 8. Для него у меня подключена jQuery v1.12.4, так как в версии v2 отказались от поддержки IE 8.
Сразу говорю, jQuery не изучал совсем, так как я поддерживаю всего один свой сайт. Имею такой код:
$(document).ready(function() {
    var css_sh = $("body").innerWidth() * 0.16; /* Это 16 процентов */
    css_sh = Math.round(css_sh);
    $('#sh').css({height: css_sh + 'px'});
});

В IE 8, элементу #sh присваивается такое свойство:
<div id="sh" style="height: 5496px;">

В других браузерах все норм.
Различные полифилы и другие костыли работают плохо, а некоторые вообще не работают.
Посмотреть проблемную страницу можно здесь. Для мобильных устройств шапка еще не доделана, не пугайтесь.
А на главную страницу не заходите — там мой старый дизайн.

Кстати, если мне поможет кто-то из вас с этой проблемкой по сайту, тому полагается скидка на наши услуги. А тому, кто "не немножко", по глобальнее поможет и другие косяки устранить —
крупная скидка. (Это будет моя благодарность за помощь.)
Ответить с цитированием
  #2 (permalink)  
Старый 01.02.2018, 11:10
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,795

Попробуйте так:
var css_sh = $(window).width() * 0.16; /* Это 16 процентов */


Upd. раньше как-то все без vw/vh справлялись с версткой, может у вас самой верстке проблема, раз она требует использования новых единиц измерения?

Последний раз редактировалось Nexus, 01.02.2018 в 11:14.
Ответить с цитированием
  #3 (permalink)  
Старый 01.02.2018, 11:17
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

0.15 процентов в рунете статистика за январь ie8 и ниже
Ответить с цитированием
  #4 (permalink)  
Старый 01.02.2018, 11:21
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

и чем дольше мы стараемся поддерживать это старье, тем дольше люди на этом старье не будут обновляться.
Ответить с цитированием
  #5 (permalink)  
Старый 01.02.2018, 11:25
Новичок на форуме
Отправить личное сообщение для Евгений76 Посмотреть профиль Найти все сообщения от Евгений76
 
Регистрация: 22.02.2017
Сообщений: 7

Nexus,
Заработало! Спасибо Вам огромное! Теперь можете пользоваться скидкой, когда захотите)
Ну а в моей верстке, да, проблема. Я ведь не профессионал, создал только этот сайт.
А можно еще спросить, как упростить этот код?
$(document).ready(function() {
	$(window).scroll (function () {
		if ($(this).scrollTop () > 50) {
			$('body').addClass('bg-size');
		} else {
			$('body').removeClass('bg-size');
		}
	});
	$('#vk_logo, #yt_logo').hover(function() {
		$(this).next().show(0);
		$(this).next().animate({opacity: '1'}, 400);
	}, 
	function() {
		$(this).next().animate({opacity: '0'}, 400);
		$(this).next().hide(400);
	});
});

.bg-size {background-size:120% auto;transition:all 2s ease-out;}

Это сделано для того, чтобы, когда делаешь первый скролл страницы, фон увеличивается плавно.
Ответить с цитированием
  #6 (permalink)  
Старый 01.02.2018, 11:26
Новичок на форуме
Отправить личное сообщение для Евгений76 Посмотреть профиль Найти все сообщения от Евгений76
 
Регистрация: 22.02.2017
Сообщений: 7

j0hnik,
На моем сайте статистика 0.5% только одного IE 8.
Ответить с цитированием
  #7 (permalink)  
Старый 01.02.2018, 11:39
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

Сообщение от Евгений76 Посмотреть сообщение
Nexus,
А можно еще спросить, как упростить этот код?
можно убрать эту часть


$('#vk_logo, #yt_logo').hover(function() {
		$(this).next().show(0);
		$(this).next().animate({opacity: '1'}, 400);
	}, 
	function() {
		$(this).next().animate({opacity: '0'}, 400);
		$(this).next().hide(400);
	})
;

и сделать это с помощью CSS
Ответить с цитированием
  #8 (permalink)  
Старый 01.02.2018, 11:40
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,795

Сообщение от Евгений76
Теперь можете пользоваться скидкой, когда захотите
Ага, спасибо.

Сообщение от Евгений76
как упростить этот код
$(document).ready(function() {
    $(window).scroll(function() {
        var bool = $(this).scrollTop() > 50,
            $body = $('body'),
            c = 'bg-size';

        if (bool && !$body.hasClass(c)) {
            $body.addClass(c);
        } else if (!bool && $body.hasClass(c)) {
            $body.removeClass(c);
        }
    });

    $('#vk_logo, #yt_logo').hover(function() {
            $(this).next().fadeIn(400);
        },
        function() {
            $(this).next().fadeOut(400);
        });
});


PS. с j0hnik полностью согласен. Пол процента - не то кол-во, ради которого стоит костыли лепить.
Ответить с цитированием
  #9 (permalink)  
Старый 01.02.2018, 11:46
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,795

Сообщение от j0hnik
можно убрать эту часть ... и сделать это с помощью CSS
Разве при изменении свойства display transition opacity не отвалится?
https://jsfiddle.net/bohg54gc/
Ответить с цитированием
  #10 (permalink)  
Старый 01.02.2018, 11:50
Новичок на форуме
Отправить личное сообщение для Евгений76 Посмотреть профиль Найти все сообщения от Евгений76
 
Регистрация: 22.02.2017
Сообщений: 7

Nexus,
Благодаря совету j0hnik, я сделал это сейчас на CSS, с плавным появлением. Не знаю, почему это я не додумался. Вместо display:block; использовал visibility:hidden;
А для плавности transition:all 0.4s ease-out;
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
jQuery не работает полностью... Andrey-S Общие вопросы Javascript 3 02.04.2016 21:23
jquery - не работает клик по кнопке выбора варианта bartonom jQuery 0 04.10.2012 13:35
Передалать код под jQuery Дани jQuery 0 08.02.2012 20:37
Не работает jQuery zsaz jQuery 0 26.09.2011 10:02
Не работает код из внешнего файла в IE6 Petka jQuery 2 03.03.2010 16:09