Javascript-форум (https://javascript.ru/forum/)
-   Ваши сайты и скрипты (https://javascript.ru/forum/project/)
-   -   FLAT UI тени (https://javascript.ru/forum/project/53006-flat-ui-teni.html)

Brutus 16.01.2015 21:35

FLAT UI тени
 
v 0.1 http://learn.javascript.ru/play/KO7Yec
v 0.2 http://learn.javascript.ru/play/jxzioc
v 0.3 http://learn.javascript.ru/play/1OMAob

прост))

Brutus 17.01.2015 14:28

v 0.2 http://learn.javascript.ru/play/jxzioc

рони 17.01.2015 17:45

Brutus,
а чтоб от положения курсора тень менялась?

ruslan_mart 17.01.2015 18:06

Brutus, анимацию можно же без JS сделать, на keyframes. :)

ruslan_mart 17.01.2015 19:58

Что-то мне подсказывает, что твой код в сто раз можно упростить, особенно этот кусок:

if (angle / 45 - Math.floor((angle / 360))*360 <= 1){
      b = Math.sin(angle / 57.2957795)/Math.cos(angle / 57.2957795);
      yg = -Math.floor(b*num);
      xg = num;
    } else if (angle / 45 - Math.floor((angle / 360))*360 <= 2){
      b = Math.cos(angle / 57.2957795)/Math.sin(angle / 57.2957795);
      yg = -num;
      xg = Math.floor(b*num);
    }else if (angle / 45 - Math.floor((angle / 360))*360 <= 3){
      b = Math.cos(angle / 57.2957795)/Math.sin(angle / 57.2957795);
      yg = -num;
      xg = Math.floor(b*num);
    }else if (angle / 45 - Math.floor((angle / 360))*360 <= 4){
       b = Math.sin(angle / 57.2957795)/Math.cos(angle / 57.2957795);
      yg = Math.floor(b*num);
      xg = -num;
    }else if (angle / 45 - Math.floor((angle / 360))*360 <= 5){
      b = Math.sin(angle / 57.2957795)/Math.cos(angle / 57.2957795);
      yg = Math.floor(b*num);
      xg = -num;
    } else if (angle / 45 - Math.floor((angle / 360))*360 <= 6){
      b = Math.cos(angle / 57.2957795)/Math.sin(angle / 57.2957795);
      yg = num;
      xg = -Math.floor(b*num);
    }else if (angle / 45 - Math.floor((angle / 360))*360 <= 7){
      b = Math.cos(angle / 57.2957795)/Math.sin(angle / 57.2957795);
      yg = num;
      xg = -Math.floor(b*num);
    }else if (angle / 45 - Math.floor((angle / 360))*360 <= 8){
       b = Math.sin(angle / 57.2957795)/Math.cos(angle / 57.2957795);
      yg = -Math.floor(b*num);
      xg = num;
    }



Это:
if (type == 1){
    elem.style[style] = getShadowWhAlpha(size,color,angle);
    return getShadowWhAlpha(size,color,angle);
  }
  else{
    elem.style[style] = getShadowNoAlpha(size,color,angle);
  	return getShadowNoAlpha(size,color,angle);
  }


на это:
return elem.style[style] = myMethods['getShadow' + (type == 1 ? 'Wh' : 'No') + 'Alpha'](size, color, angle);


;)

Brutus 17.01.2015 21:25

Все написано буквально на коленках, писал всё с планшета.
Может приеду домой и доделаю.

Brutus 17.01.2015 23:12

рони,
http://learn.javascript.ru/play/35RRJ

рони 17.01.2015 23:24

Brutus,
:victory: :thanks:

Brutus 17.01.2015 23:33

Ruslan_xDD ,
v 0.3 http://learn.javascript.ru/play/1OMAob


Часовой пояс GMT +3, время: 22:19.