2010-12-31 4 views
1

채팅 창이 있습니다. 채팅 로그가 채워지면 사용자는 스크롤 바를 사용하여 메시지를 탐색합니다. 채팅 프레임이 맨 아래에있는 마지막 메시지를 항상 표시하고 싶습니다. CSS, JavaScript를 사용하여 이것을 어떻게 할 수 있습니까?내 웹 페이지에 스크롤바의 기본 위치를 설정하는 방법

감사합니다, 토 메르

+0

은 iframe 또는 div의 채팅 텍스트입니까? – Zevan

+0

채팅 프레임은 div입니다. – tomericco

답변

1

심지어 네가 여기에 질문에 태그가 없습니다 난 내 채팅 웹 응용 프로그램에 사용 JQuery와 솔루션 : 구글에서

//Where chat_message_tray is the scrollable div in your chat 
function chat_scroll(chat_messages_tray){ 
    var scroll_amount = $(chat_messages_tray).attr("scrollHeight") - $(chat_messages_tray).height(); 

    $(chat_messages_tray).animate({ scrollTop: scroll_amount}, 500); 
} 
+0

그것은 나를 위해 작동하지 않습니다. 어떤 전제 조건? – tomericco

+0

네가 jQuery를 사용하지 않는다면 JS 전문가에게 이것을 평범한 자바 스크립트로 번역 해 주거나 실제로 jQuery를 사용해야한다. – Pablo

+0

Ofcourse 최신 jQuery 버전을 사용하고 있지만 작동하지 않는다. 이 함수를 어떻게 호출합니까? 다음과 같이 호출해야합니까? document.onload = chat_scroll ("my_chat_frame"); 헤드 태그 사이에? – tomericco

1

DOM 요소 (좋은 것들, 어쨌든) scrollIntoView()라는 방법을 지원합니다. 마지막 채팅 항목 (<div> 또는 무엇이든)에 해당하는 DOM 요소에 대한 참조가있는 경우 scrollIntoView()을 사용하여 주변 콘텐츠를 스크롤해야 <div>을 볼 수 있도록 브라우저에 알릴 수 있습니다.

일부 복잡하거나 복잡하지 않은 어쩌면 단지 불행한 페이지 레이아웃으로, 나는 Internet Explorer가 잘못된 것을 스크롤하려고하거나 페이지에 이상한 것을하고 싶어했다. . scrollIntoView()과 같은 것의 성격은 브라우저가 스크롤을 어떻게하는지 정확히 결정하게하는 것입니다. 일반적으로 간단한 스크롤 컨테이너 ("오버플로 : 자동"및 고정 높이가있는 컨테이너)의 내용은 기본적으로 간단하지만 매우 효과적입니다.

+0

괜찮 았지만 각 메시지는 id가 "message"인 div에 있습니다 (CSS와 동일한 스타일을 유지하기 위해). 어떻게이 메시지를 극복 할 수 있습니까? – tomericco

+0

먼저, 각 메시지에 동일한 "id"값을 재사용해서는 안됩니다. 그것은 잘못된 마크 업이고 모든 종류의 문제를 일으킬 수 있습니다. "id"가 필요한 경우 각 메시지에 고유 한 "id"를 지정하고 CSS로 모든 것을 제어해야하는 경우 "class"값을 사용하십시오. 마지막 메시지를 찾으려면 컨테이너에서'getElementsByTagName()'과 같은 것을 사용하고, "className"속성에서 적절한 문자열을 가진 요소를 찾는다. 마지막 하나는, 음, 마지막 것입니다 :-) – Pointy

+0

비록 추한 사람이긴하지만 저는 프로가 아닙니다. 스크롤바를 항상 최하위 상태로 설정하고 싶습니다. 다른 생각은 없습니까? 감사. – tomericco

관련 문제