Давно смотрю на эту вот ракету с необычным подъемом вверх. Но, смущают некоторые ошибки в консоли, которые появляются при включении режима адаптивного дизайна.
Причем ошибка повторяется при скролле. Если с TypeError: scrolltoprocketmeluncur.style is undefined
все в общем-то понятно, то, вот справится с fetchOffset is not defined
не удается.
Сам скрипт целиком:
jQuery(window).scroll(function(){
if(jQuery(window).scrollTop()<50){
jQuery('#rocketmeluncur').slideUp(500);
}else{
jQuery('#rocketmeluncur').slideDown(500);
}
var ftrocketmeluncur = jQuery("#ft")[0] ? jQuery("#ft")[0] : jQuery(document.body)[0];
var scrolltoprocketmeluncur = $('rocketmeluncur');
var viewPortHeightrocketmeluncur = parseInt(document.documentElement.clientHeight);
var scrollHeightrocketmeluncur = parseInt(document.body.getBoundingClientRect().top);
var basewrocketmeluncur = parseInt(ftrocketmeluncur.clientWidth);
var swrocketmeluncur = scrolltoprocketmeluncur.clientWidth;
if (basewrocketmeluncur < 1000) {
var leftrocketmeluncur = parseInt(fetchOffset(ftrocketmeluncur)['left']);
leftrocketmeluncur = leftrocketmeluncur < swrocketmeluncur ? leftrocketmeluncur * 2 - swrocketmeluncur : leftrocketmeluncur;
scrolltoprocketmeluncur.style.left = ( basewrocketmeluncur + leftrocketmeluncur ) + 'px';
} else {
scrolltoprocketmeluncur.style.left = 'auto';
scrolltoprocketmeluncur.style.right = '10px';
}
})
jQuery('#rocketmeluncur').click(function(){
jQuery("html, body").animate({ scrollTop: '0px',display:'none'},{
duration: 600,
easing: 'linear'
});
var self = this;
this.className += ' '+"launchrocket";
setTimeout(function(){
self.className = 'showrocket';
},800)
});
Если кто-то даст какие-то рекомендации, буду премного благодарен.
В общем, поковырял немного код и все ошибки поправил.
По факту, заменил 2 участка:
var leftrocketmeluncur = parseInt(ftrocketmeluncur.offsetLeft);
- использовал .offsetLeft
для получения расстояния до объекта в левом углу.scrolltoprocketmeluncur.css('left', (basewrocketmeluncur + leftrocketmeluncur + "px"));
} else {
scrolltoprocketmeluncur.css('left', 'auto');
scrolltoprocketmeluncur.css('right', '10px');
- задаем стили при помощи jQueryЕсли кому нужно будет, вот код целиком:
//ROCKET TO TOP
jQuery(window).scroll(function() {
if (jQuery(window).scrollTop() < 50) {
jQuery('#rocketmeluncur').slideUp(500);
} else {
jQuery('#rocketmeluncur').slideDown(500);
}
var ftrocketmeluncur = jQuery("#ft")[0] ? jQuery("#ft")[0] : jQuery(document.body)[0];
var scrolltoprocketmeluncur = $('rocketmeluncur');
var viewPortHeightrocketmeluncur = parseInt(document.documentElement.clientHeight);
var scrollHeightrocketmeluncur = parseInt(document.body.getBoundingClientRect().top);
var basewrocketmeluncur = parseInt(ftrocketmeluncur.clientWidth);
var swrocketmeluncur = scrolltoprocketmeluncur.clientWidth;
if (basewrocketmeluncur < 1000) {
var leftrocketmeluncur = parseInt(ftrocketmeluncur.offsetLeft);
leftrocketmeluncur = leftrocketmeluncur < swrocketmeluncur ? leftrocketmeluncur * 2 - swrocketmeluncur : leftrocketmeluncur;
scrolltoprocketmeluncur.css('left', (basewrocketmeluncur + leftrocketmeluncur + "px"));
} else {
scrolltoprocketmeluncur.css('left', 'auto');
scrolltoprocketmeluncur.css('right', '10px');
}
});
jQuery('#rocketmeluncur').click(function() {
jQuery("html, body").animate({
scrollTop: '0px',
display: 'none'
}, {
duration: 600,
easing: 'linear'
});
var self = this;
this.className += ' ' + "launchrocket";
setTimeout(function() {
self.className = 'showrocket';
}, 800);
});
Виртуальный выделенный сервер (VDS) становится отличным выбором
В IE11 и Edge div в сниппете после клика становится зелёным, хотя не должен
Здравствуйте, прошу помощи, объяснений, примеров) Пишу слайдер своими силами для сайта (намеренно не использую библиотеки) на чистом js по возможности...
Если заполняется один из блоков, то оба блока принимают наибольшую высотуВариант с фиксированной высотой не подойдет