동적인 값으로 css 추가하기

보통 css는 정해놓은 값들로 처리된다.
하지만 브라우저 리사이즈와 같은 인터렉션에 의해 사이즈나 속도등이 변경되었으면 할 css 값들이 있다. (특히 애니메이션 키프레임)
이럴 경우 자바스크립트를 활용해서 넣는 몇가지 방법이 있었지만 내가 쓰는 방법만 적어 놓겠다.
혹시 필요하면 구글에서 CSSStyleSheet.addRule() 과 CSSStyleSheet.insertRule()를 검색해서 더 많은 정보를 찾아보면 된다.

var styleEle = document.createElement('style');
      styleEle.id = "keyset";
document.head.appendChild(styleEle);

이렇게 먼저 스타일 엘리먼트를 만들어서 헤더에 넣도록 하고 jquery 로 ready 또는 load 함수를 활용하든 아니면 그냥 바로 이어서 css와 동적값 을 이용해서 적용되도록 한다.

var setW = $('#header').width();
            styleEle.innerHTML = `
            @keyframes moveSlideshow {
                 0%{transform:translateX(` + setW + `px)}
              100% {transform: translateX(0);}
            }
            @-webkit-keyframes moveSlideshow {
                 0%{-webkit-transform:translateX(` + setW + `px)}
              100% {-webkit-transform: translateX(0);}
            }
            @-moz-keyframes moveSlideshow {
                 0%{-moz-transform:translateX(` + setW + `px)}
              100% {-moz-transform: translateX(0);}
            }
            .visual{
                  -webkit-animation: moveSlideshow 30s linear infinite;
                  -moz-animation: moveSlideshow 30s linear infinite;
                  -o-animation: moveSlideshow 30s linear infinite;
                  animation: moveSlideshow 30s linear infinite;
            }
            `;

위 코드는 #header 엘리먼트의 넓이만큼 키프레임 안의 이동 값을 맞춰 넣은 것이다. 그리고 .visual이 애니메이션 되도록 한 것이다.

Subscribe
Notify of
guest

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.

2 댓글
Oldest
Newest
Inline Feedbacks
View all comments
파란하늘
파란하늘
3 years ago

글과는 상관없지만, 이게 최신 글인것 같아서 문의드리고자 여기에 남겨봅니다.

RewriteEngine On
RewriteRule .* http://mysite.co.kr/sign.html [R,L]

htaccess에 리다이렉트를 위해 써넣으면 바로 너무 많은 리다이렉트라고 뜹니다. ㅠ.ㅠ
RewriteRule .* http://mysite.co.kr/sign.html [R,L] 이 부분을 해당사이트의 글주소로 넣어도 잘 리다이렉트 되고,
다른 사이트로 주소를 넣어도 원활하게 잘 리다이렉트 되는데

해당사이트에 루트쪽에 만들어둔 html이나 php에 리다이렉트 시키려면 반드시 too many redirects가 나와요..
왜 그런지.. 좀 가르쳐주세요.ㅠ.ㅠ

naminsik
naminsik
3 years ago
Reply to  파란하늘

자세한 서버 환경이나 구조를 모르기에 어떻게 대응해드려야 할 지 모르겠으나 http://mysite.co.kr/ 의 루트에 .htaccess 파일 안에 위처럼 RewriteRule .* http://mysite.co.kr/sign.html [R,L] 넣으시면 계속 그 페이지로 리다이렉트 되지 않을까요? 리다이렉트로 왔는데 .htaccess 에서 리다이렉트 하라고 써있으니 다시 또 리다이렉트 되는 무한 반복 현상같습니다.
물론 다른 사이트 주소를 넣으면 그 쪽으로 한 번 이동하고 그 쪽 사이트의 .htaccess 에서는 또 다른 곳으로 리다이렉트 하란 것이 없으니 리다이렉트 되지 않는 것이구요.

왜 리다이렉트 하는 것인지가 명확해야할 듯 합니다.
예를 들어 www 접속없이 접속 했을 때 www 붙여서 리다이렉트 할 지라면 RewriteCond %{HTTP_HOST} !^www. [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L] 이런식으로 RewriteCond 를 써서 목적을 씁니다.

서브 도메인일 경우 메인 도메인으로 리다이렉트 할 것인지, 폴더 명이 포함된 경우 치환하는 폴더명을 리다이렉트 할 것인 지 등 목적을 먼저 설정하고 ( RewriteCond ) 그에 맞게 리다이렉트 (RewriteRule) 하면 됩니다.

TOP