JavaScript로 텍스트 스크롤을 구현하는 방법: 1. HTML 샘플 파일을 생성합니다. 2. 스크립트 태그를 추가합니다. 3. "$(".txtBox").addClass("txtBox_4");"를 사용하여 수직 텍스트 스크롤을 구현합니다. 설정 텍스트를 가로로 정렬하고 스크롤할 수 있습니다.
이 문서의 운영 환경: Windows 7 시스템, JavaScript 버전 1.8.5, Dell G3 컴퓨터.
자바스크립트를 사용하여 텍스트 스크롤을 구현하는 방법은 무엇입니까?
js를 사용하여 텍스트 스크롤 효과
이전에 편집자가 일반적으로 사용되는 몇 가지 js 애니메이션 효과를 소개했습니다. 여기서는 일반적이지 않을 수 있는 애니메이션 효과를 소개하겠습니다. 사용된. . 이 애니메이션 효과는 텍스트와 관련이 있으며 일반적으로 사용되지는 않지만 거의 모든 사람이 본 적이 있습니다.
모두가 Kugou Music이나 NetEase Cloud Music을 사용하여 음악을 검색하고 듣는다고 믿습니다. 오랜 시간이 지나면 가사 페이지에서 가사 스크롤 효과를 확실히 볼 수 있을 것입니다. 이 애니메이션 효과는 그것과 동일하지만, 세로 텍스트 배열과 스크롤 효과를 추가한 점에서 이러한 음악 가사 효과와 다소 다릅니다.
소개하기 전에 몇 가지 세로 텍스트 정렬 방법에 대해 알아보겠습니다.
writing-mode 속성
1. 값:
(1) writing-mode: 가로-rl | tb | tb-rl
(2) 호환 가능한 쓰기: -webkit-writing-mode: horizon-tb | Vertical-lr | lr-tb | IE에서는 호환되지 않음)
기본값: 일반
적용 대상: table-row-group, table-column-group, table-row, table-column을 제외한 모든 요소
상속: Yes
애니메이션 속성: No
계산 값: 특정 value
(1) horizon-tb : 수평 하향식 글쓰기 방식. 즉, 왼쪽-오른쪽-위-아래(IE 프라이빗 값 lr-tb와 유사)
(2) 수직-rl: 오른쪽에서 왼쪽으로 세로로 씁니다. 즉, 상-하-우-좌(IE 프라이빗 값 tb-rl과 유사)
(3) 수직-lr: 왼쪽에서 오른쪽으로 세로 쓰기. 그것은 상-하-좌-우
(4) lr-tb: 왼쪽-오른쪽, 위-아래입니다. 개체의 내용은 왼쪽에서 오른쪽으로 수평으로 흐르며 다음 행은 이전 행 아래에 있습니다. 모든 글리프는 수직 및 위쪽입니다. 이 레이아웃은 로마어(IE)에서 사용됩니다.
(5) tb-rl: 위-아래, 오른쪽-왼쪽. 개체의 콘텐츠는 위에서 아래로, 오른쪽에서 왼쪽으로 수직으로 흐릅니다. 다음 수직 행은 이전 수직 행의 왼쪽에 있습니다. 전각 문자는 (6) 똑바로 위로 향하고, 라틴 문자나 가타카나와 같은 반각 문자는 시계 방향으로 90도 회전됩니다. 이 레이아웃은 동아시아 언어에서 일반적으로 사용됩니다 (IE)
<body style="font-size: 12px;" > <section class="topBox"> <p class="topBoxTxt"> <ul class="txtBox" id="txtBox"> </ul> </p> </section> <script type="text/javascript" src="index.js" ></script> <script> (function(win){ //文字水平排列滚动 // hor(); // horizontal(0); //文字垂直排列滚动 $(".txtBox").addClass("txtBox_4"); ver(); vertical(0); //移动端适配 var doc = win.document; var docEl = doc.documentElement; var tid; function refreshRem() { var width = docEl.getBoundingClientRect().width if (width > 768) { width = 768; } var rem = width / 7.5; docEl.style.fontSize = rem + 'px'; docEl.style.fontSize = rem + 'px'; docEl.style.fontSize = rem + 'px'; } win.addEventListener('resize', function() { clearTimeout(tid); tid = setTimeout(refreshRem, 300); }, false); win.addEventListener('pageshow', function(e) { if (e.persisted) { clearTimeout(tid); tid = setTimeout(refreshRem, 300); } }, false); refreshRem(); })(window); </script></body>css:
body,html{ width:100%; height:100%; position: relative; background: #232226; overflow-y: auto; overflow-x: hidden;}.topBox,.topBoxTxt{ width:100%; height:auto; position: relative;}.topBoxTxt{ text-align: center; height:auto;; color:#fff; font-size: 0.36rem; padding-top:55px;}.txtBox{ width: 5.6rem; height: 5.2rem; margin:0 auto; overflow-y: scroll;} .txtBox>li{ opacity: 0.5; height:0.74rem;} .txtBox>li:first-child{ padding-top:60px; }.txtBox>li.hotColor{ opacity: 1;}.txtBox_4{ width:4.6rem; height: 7.5rem; overflow-x: auto; white-space: nowrap; display: block;}.txtBox_4>li{ writing-mode:tb-rl; writing-mode:vertical-rl; -webkit-writing-mode: vertical-rl; height: 0; line-height: 0.75rem; word-wrap:break-word;}.txtBox_4>li{ width:0.4rem; text-align: center; margin:0 0.1rem; display: inline-table; position: relative;}index.js:
var freq=10;//滚动频率var fraction=9/10;// 水平文字高亮显示行在歌词显示区域中的固定位置百分比var frac=3/10;// 垂直文字高亮显示行在歌词显示区域中的固定位置百分比 var timer=true;//定时器var num=-1;//当前行下标var time;//滚动距离var eul = document.getElementById("txtBox");var lis=[ {"offset":3000, "text":"我总是轻描淡写告诉你我的愿望"}, {"offset":6000, "text":"也给你千言万语都说不尽的目光"}, {"offset":9000, "text":"这世界总有人在忙忙碌碌寻宝藏"}, {"offset":12000, "text":"却误了浮世骄阳也错过人间万象"}, {"offset":15000, "text":"古城里长桥上"}, {"offset":18000, "text":"人如海车成行"}, {"offset":21000, "text":"你笑得像光芒"}, {"offset":24000, "text":"蓦然把我照亮"}, {"offset":27000, "text":"风轻扬夏未央"}, {"offset":30000, "text":"林荫路单车响"}, {"offset":33000, "text":"原来所谓爱情"}, {"offset":36000, "text":"是这模样"}, {"offset":39000, "text":""} ]var count=lis.length%7+5;//文字水平排列滚动function hor(){ for (var i = 0; i <lis.length; i++) { var eli = document.createElement("li"); eli.innerText = lis[i].text; eul.appendChild(eli); } for(var j=0;j<count;j++){ var eli = document.createElement("li"); eli.innerText =""; eul.appendChild(eli); } }function horizontal(lineno){ common(lineno,horizontal); var scrollTop; var ep = eul.children[lineno]; if(30<ep.offsetTop<eul.clientHeight*fraction){ scrollTop=ep.offsetTop; }else if(ep.offsetTop>(eul.scrollHeight-eul.clientHeight*(1-fraction))){ scrollTop=eul.scrollHeight-eul.clientHeight; }else{ scrollTop=ep.offsetTop=eul.clientHeight*fraction; } // 如用户拖动滚动条导致当前显示行超出显示区域范围,下一行直接定位到当前显示行 if (eul.scrollTop > (scrollTop + eul.clientHeight*fraction)|| (eul.scrollTop + eul.clientHeight*fraction) < scrollTop){ eul.scrollTop = scrollTop; }else { var step = Math.ceil(Math.abs(eul.scrollTop - scrollTop)/(time/freq)); scrollT(eul.scrollTop, scrollTop, step); } }function scrollT(crt, dst, step){ if(Math.abs(crt - dst) < step){ return; } if(crt < dst){ eul.scrollTop += step; crt += step; } else { eul.scrollTop -= step; crt -= step; } setTimeout(scrollT.bind(this, crt, dst, step), freq); };//文字垂直排列滚动function ver(){ console.log(eul) for (var i = 0; i <lis.length; i++) { var eli = document.createElement("li"); eli.innerHTML = lis[i].text; eul.appendChild(eli); if(eli.innerText.length<15){ eli.style.marginBottom=(15-eli.innerText.length)+"em"; } } for(var j=0;j<count;j++){ var eli = document.createElement("li"); eli.innerText =""; eul.appendChild(eli); } }function vertical(lineno){ common(lineno,vertical); var scrollLeft; var ep = eul.children[lineno]; if (ep.offsetLeft < eul.clientWidth*frac){ scrollLeft = 0; } else if (ep.offsetLeft > (eul.scrollWidth - eul.clientWidth*(1-frac))){ scrollLeft = eul.scrollWidth - eul.clientWidth; } else { scrollLeft = ep.offsetLeft - eul.clientWidth*frac; } // 如用户拖动滚动条导致当前显示行超出显示区域范围,下一行直接定位到当前显示行 if (eul.scrollLeft > (scrollLeft + eul.clientWidth*frac)|| (eul.scrollLeft + eul.clientWidth*frac) < scrollLeft){ eul.scrollLeft = scrollLeft; } else { var step = Math.ceil(Math.abs(eul.scrollLeft - scrollLeft)/(time/freq)); scrollL(eul.scrollLeft, scrollLeft, step); } }function scrollL(crt, dst, step){ if(Math.abs(crt - dst) < step){ return; } if(crt < dst){ eul.scrollLeft += step; crt += step; } else { eul.scrollLeft -= step; crt -= step; } setTimeout(scrollL.bind(this, crt, dst, step), freq); }function common(lineno,fn){ if (lineno ==0) { time = lis[lineno].offset; } else { time = lis[lineno].offset - lis[lineno-1].offset; } timer = setTimeout(fn.bind(this, lineno+1), time); num=lineno; //若滚动到最后一行,则从头开始,并把每一行文字均取消高亮 if(lineno==lis.length-1){ for(var i=0;i<(eul.children).length-1;i++){ eul.children[i].setAttribute("class", ""); } lineno=0; timer = setTimeout(fn.bind(this, lineno), time); } if (lineno > 0) { eul.children[lineno-1].setAttribute("class", ""); } var ep = eul.children[lineno]; ep.setAttribute("class", "hotColor"); }권장 학습: "
위 내용은 자바스크립트를 사용하여 텍스트 스크롤을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

JavaScript 코어 데이터 유형은 브라우저 및 Node.js에서 일관되지만 추가 유형과 다르게 처리됩니다. 1) 글로벌 객체는 브라우저의 창이고 node.js의 글로벌입니다. 2) 이진 데이터를 처리하는 데 사용되는 Node.js의 고유 버퍼 객체. 3) 성능 및 시간 처리에는 차이가 있으며 환경에 따라 코드를 조정해야합니다.

javaScriptUSTWOTYPESOFSOFCOMMENTS : 단일 라인 (//) 및 multi-line (//)

Python과 JavaScript의 주요 차이점은 유형 시스템 및 응용 프로그램 시나리오입니다. 1. Python은 과학 컴퓨팅 및 데이터 분석에 적합한 동적 유형을 사용합니다. 2. JavaScript는 약한 유형을 채택하며 프론트 엔드 및 풀 스택 개발에 널리 사용됩니다. 두 사람은 비동기 프로그래밍 및 성능 최적화에서 고유 한 장점을 가지고 있으며 선택할 때 프로젝트 요구 사항에 따라 결정해야합니다.

Python 또는 JavaScript를 선택할지 여부는 프로젝트 유형에 따라 다릅니다. 1) 데이터 과학 및 자동화 작업을 위해 Python을 선택하십시오. 2) 프론트 엔드 및 풀 스택 개발을 위해 JavaScript를 선택하십시오. Python은 데이터 처리 및 자동화 분야에서 강력한 라이브러리에 선호되는 반면 JavaScript는 웹 상호 작용 및 전체 스택 개발의 장점에 없어서는 안될 필수입니다.

파이썬과 자바 스크립트는 각각 고유 한 장점이 있으며 선택은 프로젝트 요구와 개인 선호도에 따라 다릅니다. 1. Python은 간결한 구문으로 데이터 과학 및 백엔드 개발에 적합하지만 실행 속도가 느립니다. 2. JavaScript는 프론트 엔드 개발의 모든 곳에 있으며 강력한 비동기 프로그래밍 기능을 가지고 있습니다. node.js는 풀 스택 개발에 적합하지만 구문은 복잡하고 오류가 발생할 수 있습니다.

javaScriptisNotBuiltoncorc; it'SangretedLanguageThatrunsonOngineStenWrittenInc .1) javaScriptWasDesignEdasAlightweight, 해석 hanguageforwebbrowsers.2) Endinesevolvedfromsimpleplemporectreterstoccilpilers, 전기적으로 개선된다.

JavaScript는 프론트 엔드 및 백엔드 개발에 사용할 수 있습니다. 프론트 엔드는 DOM 작업을 통해 사용자 경험을 향상시키고 백엔드는 Node.js를 통해 서버 작업을 처리합니다. 1. 프론트 엔드 예 : 웹 페이지 텍스트의 내용을 변경하십시오. 2. 백엔드 예제 : node.js 서버를 만듭니다.

Python 또는 JavaScript는 경력 개발, 학습 곡선 및 생태계를 기반으로해야합니다. 1) 경력 개발 : Python은 데이터 과학 및 백엔드 개발에 적합한 반면 JavaScript는 프론트 엔드 및 풀 스택 개발에 적합합니다. 2) 학습 곡선 : Python 구문은 간결하며 초보자에게 적합합니다. JavaScript Syntax는 유연합니다. 3) 생태계 : Python에는 풍부한 과학 컴퓨팅 라이브러리가 있으며 JavaScript는 강력한 프론트 엔드 프레임 워크를 가지고 있습니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

ZendStudio 13.5.1 맥
강력한 PHP 통합 개발 환경

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

VSCode Windows 64비트 다운로드
Microsoft에서 출시한 강력한 무료 IDE 편집기

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전

SublimeText3 영어 버전
권장 사항: Win 버전, 코드 프롬프트 지원!