• Зонная структура графена в 3D - как сделать?

    Danaket
    @Danaket
    Фрилансер, 3D графика.
    Ну зная значения координат на сетке в максе я бы сделал примерно так.
    Для нижней части, синей.
    - создать Plane нужной размерности, например 400х400мм с 100х100 сегментов. Так как по графику от -2 до 2. Ну а сегментов и 100 на 100 хватит.
    - Convert to Editable Poly
    - опустить получившееся в "позицию покоя", по графику от 0 до 5, значит по оси z на -250 где-то.
    - потом исходя из значений координат смещать отдельные вершины устанавливая различные значения Soft Selection.
    - ну и всё тоже самое для верхней части.

    В принципе это можно сделать достаточно точно, не матлаб конечно, но если нужна картинка просто - почему нет.
    Пока писал "потыкал", как-то так:

    17acd29403e542e6988543c4eb0d35b1.png
    Ответ написан
    Комментировать
  • Создание Android приложений на среднем уровне?

    @Sp1rtwork
    Могу порекомендовать Devcolibri. Там сейчас стартует курс по созданию рабочего приложения с веб-сервисами от А до Я. https://www.youtube.com/user/devcolibri/playlists
    Ответ написан
    Комментировать
  • Можно ли сделать тему для Wordpress на основе сайта с сеткой Bootstrap?

    VirmarY
    @VirmarY
    Full-stack web developer
    WordPress-у не важно что за сетку вы используете. Плагины вы можете так же подключать любые/писать свои. Вот вам пара ссылок:
    - How to Build a Responsive WordPress Theme with Boo...
    - Tutorial: How to convert a Bootstrap site template...

    Остальное думаю нагуглите сами )
    Ответ написан
    1 комментарий
  • Как "натянуть" лэндинг на wordpress?

    VirmarY
    @VirmarY
    Full-stack web developer
    Ваш вариант с записям вполне жизнеспособен. Можно для главной страницы создавать метабоксы для ввода информации. Посмотрите недавний пост на хабре, может он вас натолкнет на мысли.
    Ответ написан
    Комментировать
  • Как сделать такой паралакс?

    DeLaVega
    @DeLaVega
    Верстаю, фронтэндю =)
    alvarotrigo.com/fullPage

    Он построен на этом плагине. Далее гуглите примеры использования этого плагина на гитхабе и т.п.
    Ответ написан
    2 комментария
  • У меня проблема с CSS, как решить?

    Serhioromano
    @Serhioromano
    Web Developer
    Проблема в этом

    .blog-list li:first-child + li {
        margin-left: 2%;
    }


    У вас старнно сделана верстка. Есть 3 колонки. А маргины только у центральной. Да сумма 3 х 32 + 2 + 2 = 100. Но тут есть проблемы при зумировании. Кратность может не попасть в 4 или 2. Поэтому это видно только на центральной так как отступы применены только к ней и белый фон просматривается так как кратность не совпадает именно для этой колонки на некоторых зумах.

    Решение

    Нужно сделать сначала чистый грид

    <div class="grid">
        <div class="cell">
        </div>  
        <div class="cell">
        </div>  
        <div class="cell">
        </div>  
    </div>


    .grid .cell {
       float: left;
       width: calc((100% - 40px) / 3);
       margin-right: 20px; 
    }
    .grid .cell:last-child {
       margin-right: 0px; 
    }


    Значит тут мы высчитываем ширину колонки если это 3 колонки и растояние между колонками всего 20 пикселей. Так как у нас всего 2 промежутка то сумма промежутков будет 40 пикселей. Получается 100% - 40 пикселей это конечная ширина для колонок. Делим на 3 и получаем ширину колокни.

    Теперь в нутрь грида можно вставлять что угодно.

    Но я бы посоветовал использовать готовые решения как например bootstrap где сетка не только готова, но может так же адоптироваться под мобильные устройства.
    Ответ написан
    4 комментария
  • Как сделать похожий Parallax?

    @masq
    Этот скрипт отвечает за такой скролл, класс skrollable
    www.awerest.com/demo/superawesome/js/skrollr.js

    и по быстрому взглянув видимо эта функция
    var _calcSteps = function(fakeFrame, actualFrame) {
    		//Iterate over all skrollables.
    		var skrollableIndex = 0;
    		var skrollablesLength = _skrollables.length;
    
    		for(; skrollableIndex < skrollablesLength; skrollableIndex++) {
    			var skrollable = _skrollables[skrollableIndex];
    			var element = skrollable.element;
    			var frame = skrollable.smoothScrolling ? fakeFrame : actualFrame;
    			var frames = skrollable.keyFrames;
    			var firstFrame = frames[0].frame;
    			var lastFrame = frames[frames.length - 1].frame;
    			var beforeFirst = frame < firstFrame;
    			var afterLast = frame > lastFrame;
    			var firstOrLastFrame = frames[beforeFirst ? 0 : frames.length - 1];
    			var key;
    			var value;
    
    			//If we are before/after the first/last frame, set the styles according to the given edge strategy.
    			if(beforeFirst || afterLast) {
    				//Check if we already handled this edge case last time.
    				//Note: using setScrollTop it's possible that we jumped from one edge to the other.
    				if(beforeFirst && skrollable.edge === -1 || afterLast && skrollable.edge === 1) {
    					continue;
    				}
    
    				//Add the skrollr-before or -after class.
    				_updateClass(element, [beforeFirst ? SKROLLABLE_BEFORE_CLASS : SKROLLABLE_AFTER_CLASS], [SKROLLABLE_BEFORE_CLASS, SKROLLABLE_BETWEEN_CLASS, SKROLLABLE_AFTER_CLASS]);
    
    				//Remember that we handled the edge case (before/after the first/last keyframe).
    				skrollable.edge = beforeFirst ? -1 : 1;
    
    				switch(skrollable.edgeStrategy) {
    					case 'reset':
    						_reset(element);
    						continue;
    					case 'ease':
    						//Handle this case like it would be exactly at first/last keyframe and just pass it on.
    						frame = firstOrLastFrame.frame;
    						break;
    					default:
    					case 'set':
    						var props = firstOrLastFrame.props;
    
    						for(key in props) {
    							if(hasProp.call(props, key)) {
    								value = _interpolateString(props[key].value);
    
    								skrollr.setStyle(element, key, value);
    							}
    						}
    
    						continue;
    				}
    			} else {
    				//Did we handle an edge last time?
    				if(skrollable.edge !== 0) {
    					_updateClass(element, [SKROLLABLE_CLASS, SKROLLABLE_BETWEEN_CLASS], [SKROLLABLE_BEFORE_CLASS, SKROLLABLE_AFTER_CLASS]);
    					skrollable.edge = 0;
    				}
    			}
    
    			//Find out between which two key frames we are right now.
    			var keyFrameIndex = 0;
    			var framesLength = frames.length - 1;
    
    			for(; keyFrameIndex < framesLength; keyFrameIndex++) {
    				if(frame >= frames[keyFrameIndex].frame && frame <= frames[keyFrameIndex + 1].frame) {
    					var left = frames[keyFrameIndex];
    					var right = frames[keyFrameIndex + 1];
    
    					for(key in left.props) {
    						if(hasProp.call(left.props, key)) {
    							var progress = (frame - left.frame) / (right.frame - left.frame);
    
    							//Transform the current progress using the given easing function.
    							progress = left.props[key].easing(progress);
    
    							//Interpolate between the two values
    							value = _calcInterpolation(left.props[key].value, right.props[key].value, progress);
    
    							value = _interpolateString(value);
    
    							skrollr.setStyle(element, key, value);
    						}
    					}
    
    					break;
    				}
    			}
    		}
    	};
    Ответ написан
    Комментировать