Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 26.06.2018, 10:01
Аватар для MC-XOBAHCK
Профессор
Отправить личное сообщение для MC-XOBAHCK Посмотреть профиль Найти все сообщения от MC-XOBAHCK
 
Регистрация: 06.08.2017
Сообщений: 473

Rise, картинок нет - у меня канвас перед кнопкой скачать, из него нужно сделать картинку (в смысле скачать его как картинку).

j0hnik, в фоксе тоже. При этом контекстным меню браузера скачивается как надо.

Я вот начал console.log расставлять и сразу заметил одну странность.
Ставлю так:
let canvas = document.querySelector('.editor canvas');
console.log(canvas);

в консоле пусто. (??)

Делаю так:
let canvas = event.target.parentNode.parentNode.querySelector('canvas');
console.log(canvas);

В консоль выводит: <canvas width="1081" height="700">

Смотрю HTML в вкладке Elements, там <canvas width="1081" height="700"> (без закрывающего тега), вместо изначального: <canvas></canvas>

Размеры канваса у меня задаются через функцию и зависят от размера окна:
function risunokRoof() {
    let widthWindow = document.documentElement.clientWidth;   //Ширина окна браузера
    
    const canvasRoof = document.querySelector('canvas');
    let ctx = canvasRoof.getContext('2d');
        
    canvasRoof.width = widthWindow - 285;
    canvasRoof.height = 700;

Высоту к размерам окна не привязывал, она даёт NULL. Наверно из за того что у body прописан overflow-y: hidden;, а у родительского для канваса divа заданы стили:
.editor {
    position: fixed;
    margin-left: 280px;
    height: 100vh;
    width: calc(100% - 300px);
}


Может быть причина из за того что после выполнения скрипта у канваса нет закрывающего тега?
Ответить с цитированием
  #22 (permalink)  
Старый 26.06.2018, 10:59
Аватар для Alexandroppolus
Профессор
Отправить личное сообщение для Alexandroppolus Посмотреть профиль Найти все сообщения от Alexandroppolus
 
Регистрация: 25.10.2016
Сообщений: 1,012

MC-XOBAHCK,
http://jsfiddle.net/ начертай здесь полный пример, в котором не работает
пока только куски кода, а кто знает, что скрыто между ними )
Ответить с цитированием
  #23 (permalink)  
Старый 26.06.2018, 11:54
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

Цитата:
в консоле пусто. (??)
- ????
<div class="editor">
    <canvas></canvas>
    <a href="" download="my-file-name.png" href="#">
        <button id="download">Скачать</button>
    </a>
</div>
<script>
let canvas = document.querySelector('.editor canvas');
console.log(canvas);
alert(canvas.tagName);
</script>
Ответить с цитированием
  #24 (permalink)  
Старый 26.06.2018, 14:57
Аватар для MC-XOBAHCK
Профессор
Отправить личное сообщение для MC-XOBAHCK Посмотреть профиль Найти все сообщения от MC-XOBAHCK
 
Регистрация: 06.08.2017
Сообщений: 473

Все кто писал или просто читал пытаясь вникнуть в мою проблему, вы извините меня пожалуйста, что отнял ваше время.
j0hnik сразу показал рабочий вариант. Это я криворукий говнокодер.
Добавил id к тегу <a> - заработало.

Хотел ещё пару вопросов спросить без кода про канвас, теперь даже не знаю стоит ли.
А ещё меня занесло в библиотеку THREE.js. Наверно за вопросы о ней меня вообще забанят.

Вы извините и огромное всем вам спасибо за помощь.
Ответить с цитированием
  #25 (permalink)  
Старый 26.06.2018, 15:22
Аватар для Alexandroppolus
Профессор
Отправить личное сообщение для Alexandroppolus Посмотреть профиль Найти все сообщения от Alexandroppolus
 
Регистрация: 25.10.2016
Сообщений: 1,012

Сообщение от MC-XOBAHCK
Добавил id к тегу <a> - заработало.
все твои беды от того, что не ведаешь браузерный дебаггер
Ответить с цитированием
  #26 (permalink)  
Старый 26.06.2018, 16:11
Аватар для MC-XOBAHCK
Профессор
Отправить личное сообщение для MC-XOBAHCK Посмотреть профиль Найти все сообщения от MC-XOBAHCK
 
Регистрация: 06.08.2017
Сообщений: 473

Сообщение от Alexandroppolus Посмотреть сообщение
все твои беды от того, что не ведаешь браузерный дебаггер
Это да, точно подмечено. Сейчас начну осваивать дебаггер. Когда то смотрел уроки на ютубе, но тогда ничевошеньки не понимал и мог обращаться к элементам только через $ jQuery. Сейчас засяду.
Я в VS Code всегда мечтал освоить дебагер, попробую разобраться по буржуйским урокам.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите понять код Navira Общие вопросы Javascript 2 08.09.2016 14:56
Помогите понять) Garet jQuery 4 08.04.2015 20:59
Народ помогите бьюсь уже неделю не магу понять apercot Javascript под браузер 7 06.11.2014 14:08
Помогите с canvas rikod Общие вопросы Javascript 0 08.10.2012 09:48
Анимация. Помогите понять почему не работает. kadurban jQuery 4 08.07.2010 20:50