• Как грамотно сверстать много похожих страниц?

    Просто оставлю.

    learn.javascript.ru/screencast/gulp
    learn.javascript.ru/screencast/webpack

    Webpack лучше пойдет для полноценного приложения.
    А вам, вероятно, лучше gulp, или grunt (но я его не люблю)
    Ответ написан
    3 комментария
  • Как изменить цвет картинки в формате ,svg с помощью CSS?

    Если svg в теге img, то практически невозможно управлять отображением через css файл.
    Но можно подключить внешний css в файл svg и уже там делать необходимые настройки, но надо учитывать особенности xml.

    Вот как иногда делаю я.

    В svg-файле подключить внешний стиль (3 строка) и дать id нужным элементам(4 строка)
    <?xml version="1.0" encoding="utf-8"?>
    <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="260px" height="53px" viewBox="0 0 260 53" xml:space="preserve">
    <?xml-stylesheet href="my-style.css" type="text/css"?>
    <path class="st0" id="elem1" d = "">

    И уже в подключенном файле делаю необходимые настройки.

    Вот хорошая статья на Хабре.
    Ответ написан
    Комментировать
  • JS use strict: Дублирование свойств в объекте приводит к ошибке?

    Возможно имелось ввиду это:
    "use strict";
    
    var user = {};
    
    Object.defineProperty(user, "name", {
      value: "Вася",
      writable: false, // запретить присвоение "user.name="
      configurable: false // запретить удаление "delete user.name"
    });
    
    // Теперь попытаемся изменить это свойство.
    
    // в strict mode присвоение "user.name=" вызовет ошибку
    user.name = "Петя";


    Без строгого режима 'use strict' он тихо возьмет твое значение и выбросит как мусор, а в строгом скажет тебе о невозможности этого действия.
    Ответ написан
    Комментировать
  • Кто может объяснить как работают очереди асинхронных событий?

    Довольно обширный вопрос, в одном посте на все не ответишь.
    Посему посоветую почитать сайт Ильи Кантора.

    А вот ссылка непосредственно по теме.
    Ответ написан
    Комментировать
  • Как сверстать этот блок(шапку)?

    Первый вариант:
    Всю графику разместить на фон основного дива и центрировать через bacground-position, остальные блоки оставить прозрачными и позиционировать относительно центра. Основной блок содержит оберточный со стилем position: relative.
    { position: relative;
      width: 500px; /*  */
    }


    Блок с меню и телефонами:
    { position: absolute;
      left: 50%; /*Находим центр*/
      margin-left: 100px; /*Слегка смещаем, (он же не с центра начинается)*/
    }


    Блок «ассортимент»:
    { position: absolute;
      width: 50; /* правая часть явно по центру */
      top: 50%; /* верхняя часть тоже от центра */
    }


    Адоптация:
    На маленькие мониторы убрать заменить на картинку без правой части и выстроить все по вертикали.

    Второй вариант:
    Использовать трансформацию
    { transform: skewX(45deg);
    }

    Подробнее по ссылке: https://jsfiddle.net/3cfuxkf2/
    Если что-то не понятно — поясню.

    Адоптация: аналогично прошлого варианта.

    PS: Главное «Спокойствие, только спокойствие»
    Ответ написан
    1 комментарий
  • Почему не работает transition на mouseleave?

    Когда убирается hover положение по оси z переходит в состояние указанное без hovera, в данном случае auto.

    Установите z-index в классе overlay такое же как и на hover.

    .overlay {
      /* ... */
      z-index: 1;
    }
    Ответ написан
    1 комментарий
  • Как убрать дергание контента при быстром переходе на другую страницу сайта?

    наверно иза появления прокрутки

    Вероятней всего.

    Наверное лучше и проще всегда показывать прокрутку.
    html {
        overflow-y: scroll;
    }
    Ответ написан
    Комментировать
  • Где можно использовать apply() и call()?

    Есть очень много моментов когда просто теряется контекст, например setTimeout и setInterval.
    Когда делаешь обертку функции и надо передать ей обратно ее аргументы.
    И много другого.
    Ответ написан
    2 комментария
  • Законно ли копирование дизайна TechMedia (Тостер)?

    А кто-нибудь написал в ТМ? Я думаю лучше им с этим разобраться, а сообщество может лишь помочь помочь.
    Ответ написан
    Комментировать
  • Что делает этот код на пальцах?

    Сейчас, суммирует все значения массива со стартовым значением.

    function reduce(array, combine, start) {
        var current = start; // записываем стартовое значение в основную переменную
        for (var i = 0; i < array.length; i++) // в цикле...
            current = combine(current, array[i]);  // ... применяем введенную функцию (см функцию combine)
        return current; // выводим значение из функции.
    }
    
    console.log(reduce([1, 2, 3, 4], function(a, b) {
        return a + b; // суммируем аргументы (в нашем случае добавляем к уже подсчитанному новое значение)
    }, 0));
    /* Данная [reduce] функция выполняет применение введенной
     * функции (combine) ко всем значениям массива (array), с учетом
     * стартового значения (start)
    */
    Ответ написан
    Комментировать
  • Почему при указание body 100% (высоту) и у div высоту тоже 100% див выходит за края страницы и увеличивает страницу?

    Вероятно потому, что у body, по умолчанию, есть margin (причем у каждого браузера разный).
    Для решения этой проблемы принято в css вставлять следующий код:
    *{
    margin: 0;
    padding: 0;
    border: 0;
    }


    Это позволяет во всех элементов зафиксировать конкретные значения отступов и границ, а не отдавать это на откуп браузеру.
    Ответ написан
    Комментировать
  • Получение div c помощью js?

    Можно использовать textContent.
    Проблема в том, как именно эти данные будут использоваться. Если надо будет только для чтения оператором — то подойдет, если его будет обрабатывать какой-то скрипт — то тогда надо искать другой способ (если надо, помогу).
    Но лучше всего использовать тег формы.

    И так, замени 19-ую строку на:
    var body = $('#reference').text();
    Ответ написан
  • Как получить дату ближайшего понедельника на JS?

    От сегодняшнего дня
    date = new Date();
    m = new Date();
    if(date.getDay()){m.setDate(date.getDate() + 8 - date.getDay())} else {m.setDate(date.getDate() + 1)}
    alert(m);
    Ответ написан
    1 комментарий
  • Почему не работает загрузчик даже при GET-запросе?

    Atlant_T
    @Atlant_T Автор вопроса
    Всё, вопрос решился.

    Ранее предложенная конструкция не дает возможности скачивать файл. Точнее файл то скачивается, но в саму страницу, что соответствует принципу безопасности "каждый сайт в своей песочнице". Поэтому можно прибегнуть к хитрости перехода по ссылке.
    А именно:
    1. Клиент делает запрос на скачивание путем нажатия на кнопку и запуска скрипта.
    2. XHR POST-запросом (ранее GET-запросом) отправляет имя файла на /download.php
    3. download.php принимает запрос и формирует сессию, которая автоматически заносится в Сookies
    - на случай отключенных cookies, через тот же xhr отвечает id сессии, а скрипт сам решит как использовать ответ
    4. После ответа xhr скрипт перенаправляет на /download.php, где проверяется сессия и отправляется запрошенный файл
    5. Получаемый файл теперь не считается браузером частью страницы, как это было ранее, и он начинает его загрузку

    Стартовая страница (index.php)
    <!DOCTYPE html>
    <html>
    <head>
    	<meta charset="windows-1251">
    	<meta name="viewport" content="width=device-width, user-scalable=no">
    	<link rel="stylesheet" type="txt/css" href="data/css.css">
    	<script src="data/js.js"></script>
    </head>
    <body>
    	<div id ="buttons">
    	<?
    		$dir = opendir ("files");
    		while ($file = readdir($dir)) // Ищем файлы в нужной директории
    		{
    			if(!($file=="."||$file==".."))
    			echo "<p>$file</p>";
    		}
    	?>
    	</div>
    </body>
    </html>


    Обработка загрузок (download.php)
    <?
    if(isset($_GET[session_name()])){
    	session_id($_GET[session_name()]);
    	/*	Если выключены cookie, то придет GET-запрос с нужной сессией	*/
    }
    session_start(); // Запускаем сессию
    if ( isset($_POST['file']) ){
    	$file = pathinfo($_POST['file']);
    	if ($file['dirname'] != '.') exit ('Error'); // Не даем возможности гулять по директориям
    	$_SESSION["file_for_download"] = iconv( "utf-8", "cp1251", $file['basename']);
    	/*	iconv() здесь позволяет работать с файлами на кириллице	*/
    	exit("?".session_name().'='.session_id()); // Отправляем данные сессии, вдруг cookie не работают
    }
    if ( isset($_SESSION["file_for_download"]) ){
    	$file = $_SESSION["file_for_download"];
    	unset($_SESSION["file_for_download"]);
    	/*	Удаляем сессионную переменную,
    		чтобы при следующем входе в download.php не началась очередная загрузка */
    	if(file_exists("files/".$file)){
    		header('Content-Type: application/octet-stream');
    		header('Content-Transfer-Encoding: binary');
    		header('Content-Disposition: attachment; filename=' . $file);
    		header('Content-Length: ' . filesize('files/' . $file));
    		/*	Эти заголовки исчерпывающие в данной задаче	*/
    		readfile('files/' . $file . '');	// Отправка файла чтением
    		exit();
    	}
    	else
    	{
    		// Действия, если файла нет. Например, отправка файла с ошибкой и извинениями.
    		exit ("Неправильный файл: " . $file);
    	}
    }
    header('Location: /');
    /*	Если ничего из сценария не подошло, отправляем клиента на главную страницу (вдруг он не туда вошел)	*/
    ?>


    Javascript (js.js)
    function open_event(){
    	document.getElementById('buttons').onclick = download;
    }
    document.addEventListener("DOMContentLoaded", open_event);
    function download (button_file){
    	name_file = button_file.target.innerHTML
    	var xhr = new XMLHttpRequest();
    	xhr.open('POST', 'download.php', true);
    	xhr.overrideMimeType('text/plain; charset=utf-8');
    	xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    	xhr.onreadystatechange = function() {
    		if (xhr.status != 200) {
    			// Обработать ошибку
    			alert('Не 200: ' + xhr.status + ': ' + xhr.statusText ); // Например, 404: Not Found
    		} else {
    			if (xhr.readyState == 4){
    				if (xhr.responseText != "Error"){ // Обработка ошибки. У нас кто-то хочет полазить по директориям.
    					no_cookie = "";
    					if (!navigator.cookieEnabled) {no_cookie = xhr.responseText}; // Если Cookie отключены
    					window.location.href = "download.php" + no_cookie; // держим сессию через GET
    					/* 	Это не нужно если в PHP включена настройка session.use_trans_sid.
    						Также, при включенной настройке, не понадобится
    						isset($_GET[session_name()]) в download.php	*/
    				} else {
    					alert("Ошибка");
    				}
    			}
    		}
    	}
    	xhr.send('file='+name_file);
    }


    Полезные статьи:
    Создание простой системы авторизации - зачем используют сессии
    Подробное описание работы и объяснение механизма сессии
    Отдаем файлы эффективно с помощью PHP
    Новые возможности XMLHttpRequest2 - не совсем то, но интересно

    Полезные ответы:
    Проблема с русскими символами в имени файла

    Полезные ресурсы:
    О XMLHTTPRequest
    О php (есть переводы на русский)
    Хорошо описаны заголовки HTTP

    Статьи не в тему но интересно:
    Определение кодировки текста в PHP
    Ответ написан
    Комментировать
  • Как сделать принятие GET запроса в доп.поле DLE при регистрации?

    Наверное, лучше решить проблему через javascript.
    keys = {}; // создаем объект
    mas = window.location.toString().split('?')[1].split(/\=|\&/); // Разбиваем GET
    for (x = 0; x < mas.length; x +=2){
    	keys[mas[x]] = mas[x+1]; // Вносим данные
    }
    /*
    Теперь все переменные, которые пришли с запросом, хранятся у нас в объекте
    Осталось внести в форму.
    */
    function open_event(){ //Что бы не возникло проблем (если например скрипт встроенный)
    document.getElementById("ref_form").innerHTML = keys.ref;
    }
    document.addEventListener("DOMContentLoaded", open_event); // используем событие построения DOM

    Ну как то так.

    PS: А можно и проще.
    echo "<input type=\"text\" Value=\"".$_GET['ref']."\" size=\"40\">"
    Ответ написан
    Комментировать
  • Как сделать так, чтобы при нажатии на любую часть сайта происходил редирект?

    В конце кода (перед закрытием body) вставить:
    <a href="http://вашсайт.ru" style="position: absolute;left: 0;right: 0;top: 0;bottom: 0;"></a>


    Не самое красивое решение, но думаю в вашем варианте оптимально.
    Ответ написан
    Комментировать
  • Какой сделать внешний вид меню?

    Я бы сгруппировал некоторые пункты, а группы оформил бы иконками. Можно с подписью или без нее.
    Например:
    1. Вместо «Главная» поставить просто логотип
    2. «Гостиница», «Ресторан», «Гостевой домик», «Сауна» в группу «Места», иконка: значок «место» (как на картах) на фоне домика.
    3. «Фотогалерею» можно не группировать и поставить значок фотографии или фотоаппорат.
    4. «Партнерам», «Туроператорам» (а чем они отличаются от партнеров?), «Контакты» в группу «Сотрудничество» и иконка «рукопожатие»
    5. «Отзывы», «Новости» в группу «О нас» и иконка «глаз» (просто с ходу первая мысль, можно найти лучше).
    А что находиться в «Отдых и развлечение» и почему это не может быть на главной?
    Ответ написан
    1 комментарий
  • Опыт, практика в JS?

    Не смотря на все ваши знания я сомневаюсь (пока не знаю на что поспорить), что у вас получиться написать плагин для хрома в виде домашнего питомца (например котика).
    Питомец вместе с хозяином гуляет по интернет страницам и всячески на них веселиться (карабкается по div-элементам, царапает текст и многое другое, ибо кормить надо и гладить), а так же здорово помогает (запоминает страницы и куски текста, уничтожает div с рекламой издавая визг, указывает на нежелательные ссылки).
    После написания можно продать его в маркете, поддерживать работу и зарабатывать на этом деньги ;)
    Ответ написан
    4 комментария
  • Как внести данные в WebSQL?

    Atlant_T
    @Atlant_T Автор вопроса
    Как всегда: стоит задать вопрос как ответ приходит сам.
    Проблема оказалась в другом месте.
    addEventListener() был привязан к тегу , который после нажатия вызывал перезагрузку страницы и в итоге терялись данные.
    alert() давал возможность внесения данных (хотя по какому принципу мне не совсем понятно) во время остановки скрипта.

    Проблему решил привязав событие к тегу .

    Пусть гуру меня поправят, если что-то не так.
    Старая шутка о нелегкой жизни програмиста

    Маркетолог спрашивает программиста: в чём сложность поддержки большого проекта?

    Программист: ну представь, что ты писатель и поддерживаешь проект «Война и мир». У тебя ТЗ — написать главу, как Наташа Ростова гуляла под дождём по парку. Ты пишешь «шёл дождь», сохраняешь, вылетает сообщение об ошибке «Наташа Ростова умерла, продолжение невозможно». Почему умерла? Начинаешь разбираться. Выясняется, что у Пьера Безухова скользкие туфли, он упал, его пистолет ударился о землю и выстрелил в столб, а пуля от столба срикошетила в Наташу. Что делать? Зарядить пистолет холостыми? Поменять туфли? Решили убрать столб. Получаем сообщение «Поручик ржевский умер.» Выясняется, что он в следующей главе облокачивается о столб, которого уже нет…
    Ответ написан