마우스 커스텀

김종민·2024년 12월 12일
1

js

목록 보기
25/25

귀여운 마우스 커스텀 수집


<style type="text/css">
    /* Circle Text Styles */
    #outerCircleText {
    /* Optional - DO NOT SET FONT-SIZE HERE, SET IT IN THE SCRIPT */
    font-style: italic;
    font-weight: bold;
    font-family: verdana;
    color: #000;
    /* End Optional */

    /* Start Required - Do Not Edit */
    position: absolute;top: 0;left: 0;z-index: 3000;cursor: default;}
    #outerCircleText div {position: relative;}
    #outerCircleText div div {position: absolute;top: 0;left: 0;text-align: center;}
    /* End Required */
    /* End Circle Text Styles */
</style>

<script type="text/javascript">
    ;(function(){
    
    //메세지 입력
    var msg = "I'm seonyeong";
    
    /* THE REST OF THE EDITABLE VALUES BELOW ARE ALL UNQUOTED NUMBERS */
    
    // Set font's style size for calculating dimensions
    // Set to number of desired pixels font size (decimal and negative numbers not allowed)
    var size = 22;
    
    // Set both to 1 for plain circle, set one of them to 2 for oval
    // Other numbers & decimals can have interesting effects, keep these low (0 to 3)
    var circleY = 0.75; var circleX = 2;
    
    // The larger this divisor, the smaller the spaces between letters
    // (decimals allowed, not negative numbers)
    var letter_spacing = 5;
    
    // The larger this multiplier, the bigger the circle/oval
    // (decimals allowed, not negative numbers, some rounding is applied)
    var diameter = 10;
    
    // Rotation speed, set it negative if you want it to spin clockwise (decimals allowed)
    var rotation = 0.4;
    
    // This is not the rotation speed, its the reaction speed, keep low!
    // Set this to 1 or a decimal less than one (decimals allowed, not negative numbers)
    var speed = 0.3;
    
    ////////////////////// Stop Editing //////////////////////
    
    if (!window.addEventListener && !window.attachEvent || !document.createElement) return;
    
    msg = msg.split('');
    var n = msg.length - 1, a = Math.round(size * diameter * 0.208333), currStep = 20,
    ymouse = a * circleY + 20, xmouse = a * circleX + 20, y = [], x = [], Y = [], X = [],
    o = document.createElement('div'), oi = document.createElement('div'),
    b = document.compatMode && document.compatMode != "BackCompat"? document.documentElement : document.body,
    
    mouse = function(e){
    e = e || window.event;
    ymouse = !isNaN(e.pageY)? e.pageY : e.clientY; // y-position
    xmouse = !isNaN(e.pageX)? e.pageX : e.clientX; // x-position
    },
    
    makecircle = function(){ // rotation/positioning
    if(init.nopy){
      o.style.top = (b || document.body).scrollTop + 'px';
      o.style.left = (b || document.body).scrollLeft + 'px';
    };
    currStep -= rotation;
    for (var d, i = n; i > -1; --i){ // makes the circle
      d = document.getElementById('iemsg' + i).style;
      d.top = Math.round(y[i] + a * Math.sin((currStep + i) / letter_spacing) * circleY - 15) + 'px';
      d.left = Math.round(x[i] + a * Math.cos((currStep + i) / letter_spacing) * circleX) + 'px';
    };
    },
    
    drag = function(){ // makes the resistance
    y[0] = Y[0] += (ymouse - Y[0]) * speed;
    x[0] = X[0] += (xmouse - 20 - X[0]) * speed;
    for (var i = n; i > 0; --i){
      y[i] = Y[i] += (y[i-1] - Y[i]) * speed;
      x[i] = X[i] += (x[i-1] - X[i]) * speed;
    };
    makecircle();
    },
    
    init = function(){ // appends message divs, & sets initial values for positioning arrays
    if(!isNaN(window.pageYOffset)){
      ymouse += window.pageYOffset;
      xmouse += window.pageXOffset;
    } else init.nopy = true;
    for (var d, i = n; i > -1; --i){
      d = document.createElement('div'); d.id = 'iemsg' + i;
      d.style.height = d.style.width = a + 'px';
      d.appendChild(document.createTextNode(msg[i]));
      oi.appendChild(d); y[i] = x[i] = Y[i] = X[i] = 0;
    };
    o.appendChild(oi); document.body.appendChild(o);
    setInterval(drag, 25);
    },
    
    ascroll = function(){
    ymouse += window.pageYOffset;
    xmouse += window.pageXOffset;
    window.removeEventListener('scroll', ascroll, false);
    };
    
    o.id = 'outerCircleText'; o.style.fontSize = size + 'px';
    
    if (window.addEventListener){
    window.addEventListener('load', init, false);
    document.addEventListener('mouseover', mouse, false);
    document.addEventListener('mousemove', mouse, false);
      if (/Apple/.test(navigator.vendor))
       window.addEventListener('scroll', ascroll, false);
    }
    else if (window.attachEvent){
    window.attachEvent('onload', init);
    document.attachEvent('onmousemove', mouse);
    };
    
    })();
    
    </script>

<body>
    <!-- <div id="outerCircleText" style="font-size: 22px;"><div><div id="iemsg18" style="width: 46px; height: 46px; top: 208px; left: 804px;">i</div><div id="iemsg17" style="width: 46px; height: 46px; top: 201px; left: 799px;">g</div><div id="iemsg16" style="width: 46px; height: 46px; top: 195px; left: 791px;">c</div><div id="iemsg15" style="width: 46px; height: 46px; top: 190px; left: 779px;">y</div><div id="iemsg14" style="width: 46px; height: 46px; top: 185px; left: 765px;">p</div><div id="iemsg13" style="width: 46px; height: 46px; top: 182px; left: 749px;">p</div><div id="iemsg12" style="width: 46px; height: 46px; top: 180px; left: 731px;">a</div><div id="iemsg11" style="width: 46px; height: 46px; top: 180px; left: 713px;">h</div><div id="iemsg10" style="width: 46px; height: 46px; top: 180px; left: 695px;"> </div><div id="iemsg9" style="width: 46px; height: 46px; top: 182px; left: 677px;">o</div><div id="iemsg8" style="width: 46px; height: 46px; top: 186px; left: 661px;">t</div><div id="iemsg7" style="width: 46px; height: 46px; top: 190px; left: 647px;"> </div><div id="iemsg6" style="width: 46px; height: 46px; top: 196px; left: 636px;">e</div><div id="iemsg5" style="width: 46px; height: 46px; top: 202px; left: 628px;">m</div><div id="iemsg4" style="width: 46px; height: 46px; top: 209px; left: 623px;">o</div><div id="iemsg3" style="width: 46px; height: 46px; top: 215px; left: 622px;">c</div><div id="iemsg2" style="width: 46px; height: 46px; top: 222px; left: 625px;">l</div><div id="iemsg1" style="width: 46px; height: 46px; top: 229px; left: 631px;">e</div><div id="iemsg0" style="width: 46px; height: 46px; top: 235px; left: 640px;">W</div></div></div> -->
</body>

🔗참고 사이트

profile
웹 퍼블리셔의 코딩 일기

0개의 댓글

관련 채용 정보