scroll to textarea (js or jquery)

Pok4

Registered
Здравейте,

Трябва ми код, който да скруулва до textarea с определен name параметер.
Не искам да работи с # и държа селекора да е самата текстареа, а не някой клас или айди. Пример: влизам в коментарите и текстареата не се вижда, цъкам бутон reply и ми скрулва до нея. (по-долу)

Пробвах с animate, scroll, scrollТo и още какви ли не начини-не става. Може би някой по-разширен плъгин?
Пробвах да хвана и body тага и след това да селектирам самата текстареа...

Както вече разбрахте, трябва ми за клик ивент. Там се случват нещата.
 
Този текст бокс няма ли си някакъв таг все пак? И scrollTo си е класическо изпълнение. Кое точно не му работи. Или защо не става.

Ето какво работи идеално:

JavaScript:
$("#button-reply").click(function() {
    event.preventDefault();
    $('html, body').animate({
        scrollTop: $("tag").offset().top
    }, 1500);
});

Ако нещо има, което искаш да направиш, дай инфо, ще го измислим. Виждам, че си падаш по нестандартните решения. :) Иначе и аз не се кефя на котвите, ползвам ги само ако реферирам от друга страница, и пак може да се избегнат.
 
Пробвай с това. Използвам го в един от моите проекти и работи безупречно. Просто трябва да се нагоди.
JavaScript:
$('html, body').animate({
    scrollTop: $(ELEMENT ID/CLASS).offset().top - ($(window).height() - $(ELEMENT ID/CLASS).outerHeight(true)) / 2
}, 1000);
Лично аз до сега не съм използвал някаква библиотека, която да ми помага да скролвам до div. А какво трябва да значи "не става."? Кое не става? Някакъв ерор ли дава в конзолата? Скролва, но не до правилното място? Не можеш правилно да селектираш textarea-та и за това не става?
 
Пробвай с това. Използвам го в един от моите проекти и работи безупречно. Просто трябва да се нагоди.
JavaScript:
$('html, body').animate({
    scrollTop: $(ELEMENT ID/CLASS).offset().top - ($(window).height() - $(ELEMENT ID/CLASS).outerHeight(true)) / 2
}, 1000);
Лично аз до сега не съм използвал някаква библиотека, която да ми помага да скролвам до div. А какво трябва да значи "не става."? Кое не става? Някакъв ерор ли дава в конзолата? Скролва, но не до правилното място? Не можеш правилно да селектираш textarea-та и за това не става?
Това е идеално също, малко повечко е. Но е супер приложимо, ако трябва да вадиш стики елементи. Тогава моето не върши работа. ;)
 
Здравейте :)
Въобще не скрулваше, а сега с кода на @Blinky поне започна да скрулва, но в грешната посока :D (нагоре), а на мен ми трябва надолу.
JavaScript:
$("html, body").animate({
       scrollTop: $("textarea[name=\"com_text\"]").offset().top
}, 1500);

Пробвах и твоя @Алекс, но и той нагоре работи...

Текстареата е по-долу и ми трябва за надолу, а не за нагоре.
 
Интересно, при мен не работи така...
https://jsfiddle.net/1udtgnyb/ (нарочно го едитнах и добавих нейм селектора и малко бр-та, за да видя дали ще скрулне нагоре, но не... надолу)

Нещо не е както трябва при мен, както и да е ще го ръчкам сам нещо и така...
Мерси за примерите :)
 
Оправих се, ето така:

JavaScript:
$("html, body").animate({

       scrollTop: $("textarea").parent().offset().top

}, 1500);

Така стана и работи :) Може би проблема е, че използвам emojionearea-та и се бърка с нея. Добавих само parent() пред offset().
Ако някой ползва emojionearea пикъра на емотиконки и има подобен проблем - ей това е решението. Той презамества текстареата...
 
Правя екстеншън за comment replies на новините в Аргос.
Потребителите ще могат да отговарят на други коментари и работи изцяло с аякс заявки. Ще дам демо по-късно и част от кода.
 
Правя екстеншън за comment replies на новините в Аргос.
Потребителите ще могат да отговарят на други коментари и работи изцяло с аякс заявки. Ще дам демо по-късно и част от кода.
Имах предвид къде ги слагаш тия кодове, в някой специално направен JS файл или ги работиш в някой готов. Чудно ми е къде изливаш ивентите, коит са такива "притулки", отделяш ли ги от важните функции или си ги плескаш вече в съществуващ такъв файл.
 
В екстеншъна директно. Правя си променлива примерно $js = "<! my js here without <script></script> -->";
И тази променлива $js се предава на евент диспечера. Той пък може да е обграден във функция, която проверява на коя страница си (strpos и $_SERVER request uri), за да го вкара в тази страница точно, а не да се размотава във всички страници този js.

Скоро ще тествам още 1 библиотека дали работи под php 8 и ще я вкарам в системата, за да минифицира целия html output. (за да няма и коментирани линии, много js код из сорса и т.н.) Аз давах линк към нея, някъде тук, но още не съм я тествал и не знам дали работи с head.js.

А евент диспечера дето споменах по-горе се върти в head.ready и направо излива там кода, за това го пиша без <script></script>, тъй като там има евент и направо си пишеш кода. Много е лесно и приятно.
 
Има неща за до-оправяне, но ще напиша още 1 екстеншън и ще спра до версия 6.0. Предстои ми пътуване и след това ще направя пак структурни промени. (с препоръки от тук)

Във версия 6.0 ще има малки фиксове. После вече ще я до-оправя, да се надявам, че няма да ми е нужна много помощ....
 

Back
Горе