#javascript #delay #fadein #fade
#javascript #задержка #исчезающий #исчезновение
Вопрос:
На моей странице есть строка, которую я хочу отложить на 2 секунды и затемнить. Есть ли способ сделать это без jQuery?
Сайт является http://theclockpage.com И текст — это маленькая строка под часами, текст получен с помощью javascript, поэтому я не добавляю его в вопрос.
Спасибо
Ответ №1:
var textCont = document.getElementById('clock').nextSibling;
textCont.style.opacity = 0;
setTimeout(function() {
var opacity = 0,
animate = setInterval(function() {
opacity = 0.05;
if (opacity >= 1) {
clearInterval(animate);
}
textCont.style.opacity = opacity;
}, 10);
}, 2000);
Комментарии:
1. Эта функция не работает. Это не приведет к правильному преобразованию строки в добавляемое целое число. textCont.style.opacity = ‘0’; и textCont.style.opacity = parseInt(textCont.style.opacity) 0.05 «; будут работать.
2. @Greg Тогда jsFiddle, должно быть, делает что-то забавное: P
3. Скорее всего, ваш браузер не делал ничего смешного. В Google Chrome и webkit стили CSS являются строками и должны использоваться как строки.
4. @Greg Они точно есть. Но я никогда не считываю
opacity
свойство обратно изstyle
объекта.5. Да, вы делаете. непрозрачность = 0.05; Вы также пытаетесь сравнить строку с целым числом: непрозрачность >= 1.
Ответ №2:
var d = document.getElementById("box");
function fadeOut(fadeScaler, hertz) {
if (!this instanceof Element) return false;
hertz = (!hertz) ? 60 : hertz; // Approx 60 hertz refresh rate
var opacity = this.style.opacity
opacity = "0";
var t = setInterval(
function() {
opacity = parseInt(opacity) fadeScaler '';
if (parseInt(opacity) >= 1)
clearInterval(t);
},
Math.floor(1000 / hertz)); // 1000 miliseconds / hertz = refresh rate
};
fadeOut.apply(d, [.05]);
Если я использую это, функция Алекса не будет работать. Непрозрачность — это строка и не может быть =’d с целым числом.
Комментарии:
1. @alex В этом проблема. непрозрачность — это строка. В любом случае, в CSS и webkit эта функция является кроссбраузерной.
2.@Greg Я установил это как
Number
0
. Я никогда не читаюopacity
свойство, просто устанавливаю его.3. непрозрачность = 0.05; // Это считывание свойства opacity. Это всего лишь сокращенная форма для непрозрачности = opacity 0.05, фактически это не измененный код.
4. @Greg Нет, это чтение
opacity
переменной. Вы видитеwith (textCont.style) { ... }
где-нибудь?5. Лол, я делал, пока вы не отредактировали свой вопрос ровно через 1 минуту после того, как я опубликовал свой ответ.