#javascript #jquery #safari
#javascript #jquery #safari
Вопрос:
У меня есть функция jQuery, которая не работает в Safari, и та, которая работает, которую я, по сути, только что поднял из вопроса о переполнении стека.
Мне просто любопытно, почему этот не работает, а другой нет?
$(function(){
$("div.polycontainer").children().on("click", function(){
var index = $(this).index();
var time = [500, 600, 700];
var element = ["div.servicesHeader", "div.developmentHeader", "div.aboutHeader"];
var show = $(element[index]).offset().top;
$('html').animate({scrollTop: (show) - 115}, (time[index]));
});
});
Это работает:
$("#fromTHIS").click(function () {
$("html, body").animate({ scrollTop: $("#toTHIS").offset().top }, 500);
return true;
});
Я попытался использовать .click вместо .on («click») В первом примере, единственное отличие в том, что я не создал массив и т. Д. Во втором — Просто хотел сначала протестировать его функциональность.
Почему это так?
Комментарии:
1.
on("click", function...
и.click( function...
в основном это одно и то же2. Ваш второй код отличается от первого, поскольку у вас нет
$("html, body")
3. Хорошо, но первый код работает в Firefox, но не в Safari, а второй код работает в обоих.
4. Вы изменили код в первом, чтобы иметь
$("html, body")
??????5. Ну, html не сработал, но ввод тела сработал. Как странно, большое спасибо.
Ответ №1:
Строка
$('html').animate({scrollTop: (show) - 115}, (time[index]));
необходимо
$('body, html').animate({scrollTop: (show) - 115}, (time[index]));
нравится пример, который работает.
Комментарии:
1. Как мне указать это как ответ?