Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Вывод картинки в поле. (https://javascript.ru/forum/events/13774-vyvod-kartinki-v-pole.html)

XponyS 13.12.2010 10:50

Вывод картинки в поле.
 
Доброе время суток. Помоги пожалуйста понять и разобраться как сделать так что бы клонировались списком изображения после нажатия на кнопку (Вывести).

Тоесть:

После выбора (Название -> Типа -> Варианта) Появляется изображение в Изображение. Под Изображением есть кнопка (Вывести).

Выбрал (вараинт 1) -> нажал на (Вывести) в поле изображения вывелась картинка и сохранилась до обновления страницы.

Выбрал (вараинт 2) -> нажал на (Вывести) в поле изображения вывелась картинка после изображения (Вариант 1) и сохранилась до обновления страницы.

Нужно:

Что бы при нажатии на кнопку (Вывести) появлялся список клонированных изображений в поле (Вывод изображений).

ksa 13.12.2010 11:59

Цитата:

Сообщение от XponyS
Вывод изображений

Типа намёк... :)

<!DOCTYPE html>
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<style type='text/css'>
#box img {
	display: block;
}
</style>
<script type="text/javascript">
function Add() {
	var o=document.createElement('img')
	o.src='http://javascript.ru/forum/images/ca_serenity/misc/logo.gif'
	document.getElementById('box').appendChild(o)
}
</script>
</head>
<body>
<div id='box'>
</div>
<input type='button' value='Add' onclick='Add()' />
</body>
</html>

XponyS 13.12.2010 13:38

Хм вот теперь такое получилось =)
 
Спасибо! Но теперь получилось следующее:

При выборе селекта он сразу добавляет изображение, а нужно что бы добавлялось только после нажатия на кнопку (Вывести). В чем мог сделать ошибку ? Не понимаю =(

И еще попробывал зайти через IE 8:
Выдает Строка: 18,19,20
Ошибка: Объект не поддерживает это свойство или метод

Но после того как проигнорировать эти ошибки все продолжает работать в нужном ритме.

ksa 13.12.2010 13:42

Цитата:

Сообщение от XponyS
Ошибка: Объект не поддерживает это свойство или метод

ИЕ не врет... Знать точно не поддерживает. :D
Цитата:

Сообщение от XponyS
При выборе селекта он сразу добавляет изображение

Так там же везде ончеиньч указан...
Цитата:

Сообщение от XponyS
а нужно что бы добавлялось только после нажатия на кнопку (Вывести)

Таки убери ончеиньч у селектов... Оставь только онклик у кнопки... И будет тебе счастие! :)

XponyS 13.12.2010 13:51

Так если их убрать перестанет показывать в столбце (Изображение). А нужно что бы после того как люди просмотрели изображение решили добавлять его или нет. Есть вариант это как нибудь сделать?

ksa 13.12.2010 14:09

Цитата:

Сообщение от XponyS
Есть вариант это как нибудь сделать?

Таки писать разные функции, а не одну... :)

XponyS 13.12.2010 17:53

Все спасибо со всем разобрался. Можете сносить тему.

DimaADADASDAD 27.10.2016 16:34

ЗДРАВСТВУЕТЕ ОЧЕНЬ ПРОШУ ПОМОЧЬ
Я ХОТЕЛ БЫ ЧТОБЫ КРАССНЫЙ КВАДРАТИК ЗАМЕНИЛСЯ ИЗОБРАЖЕНИЕМ УЖЕ 2 ДНЯ НЕ МОГУ НЕЧЕГО ДЕЛАТЬ ОЧЕНЬ ПРОШУ ПОМОЧЬ ЗА РАНИЕ СПАСИБО

<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<style>
canvas {
    border:1px solid #d3d3d3;
    background-color: #f1f1f1;
}
</style>
</head>
<body onload="startGame()">
<script>

var myGamePiece;
var myObstacles = [];
var myScore;

function startGame() {
    myGamePiece = new component(30, 30, "red", 10, 120);
    myGamePiece.gravity = 0.05;
    myScore = new component("30px", "Consolas", "black", 280, 40, "text");
    myGameArea.start();
}

var myGameArea = {
    canvas : document.createElement("canvas"),
    start : function() {
        this.canvas.width = 480;
        this.canvas.height = 270;
        this.context = this.canvas.getContext("2d");
        document.body.insertBefore(this.canvas, document.body.childNodes[0]);
        this.frameNo = 0;
        this.interval = setInterval(updateGameArea, 20);
        },
    clear : function() {
        this.context.clearRect(0, 0, this.canvas.width, this.canvas.height);
    }
}

function component(width, height, color, x, y, type) {
    this.type = type;
    this.score = 0;
    this.width = width;
    this.height = height;
    this.speedX = 0;
    this.speedY = 0;    
    this.x = x;
    this.y = y;
    this.gravity = 0;
    this.gravitySpeed = 0;
    this.update = function() {
        ctx = myGameArea.context;
        if (this.type == "text") {
            ctx.font = this.width + " " + this.height;
            ctx.fillStyle = color;
            ctx.fillText(this.text, this.x, this.y);
        } else {
            ctx.fillStyle = color;
            ctx.fillRect(this.x, this.y, this.width, this.height);
        }
    }
    this.newPos = function() {
        this.gravitySpeed += this.gravity;
        this.x += this.speedX;
        this.y += this.speedY + this.gravitySpeed;
        this.hitBottom();
    }
    this.hitBottom = function() {
        var rockbottom = myGameArea.canvas.height - this.height;
        if (this.y > rockbottom) {
            this.y = rockbottom;
            this.gravitySpeed = 0;
        }
    }
    this.crashWith = function(otherobj) {
        var myleft = this.x;
        var myright = this.x + (this.width);
        var mytop = this.y;
        var mybottom = this.y + (this.height);
        var otherleft = otherobj.x;
        var otherright = otherobj.x + (otherobj.width);
        var othertop = otherobj.y;
        var otherbottom = otherobj.y + (otherobj.height);
        var crash = true;
        if ((mybottom < othertop) || (mytop > otherbottom) || (myright < otherleft) || (myleft > otherright)) {
            crash = false;
        }
        return crash;
    }
}

function updateGameArea() {
    var x, height, gap, minHeight, maxHeight, minGap, maxGap;
    for (i = 0; i < myObstacles.length; i += 1) {
        if (myGamePiece.crashWith(myObstacles[i])) {
            return;
        } 
    }
    myGameArea.clear();
    myGameArea.frameNo += 1;
    if (myGameArea.frameNo == 1 || everyinterval(150)) {
        x = myGameArea.canvas.width;
        minHeight = 20;
        maxHeight = 200;
        height = Math.floor(Math.random()*(maxHeight-minHeight+1)+minHeight);
        minGap = 50;
        maxGap = 200;
        gap = Math.floor(Math.random()*(maxGap-minGap+1)+minGap);
        myObstacles.push(new component(10, height, "green", x, 0));
        myObstacles.push(new component(10, x - height - gap, "green", x, height + gap));
    }
    for (i = 0; i < myObstacles.length; i += 1) {
        myObstacles[i].x += -1;
        myObstacles[i].update();
    }
    myScore.text="SCORE: " + myGameArea.frameNo;
    myScore.update();
    myGamePiece.newPos();
    myGamePiece.update();
}

function everyinterval(n) {
    if ((myGameArea.frameNo / n) % 1 == 0) {return true;}
    return false;
}

function accelerate(n) {
    myGamePiece.gravity = n;
}
</script>
<br>
<button onmousedown="accelerate(-0.2)" onmouseup="accelerate(0.05)">ACCELERATE</button>
<p>Use the ACCELERATE button to stay in the air</p>
<p>How long can you stay alive?</p>
</body>
</html>

DimaADADASDAD 27.10.2016 16:51

данный вариант не как не работает:cray:
function startGame() {
020
    myGamePiece = new component(30, 30, "image.png", 10, 120);
021
    myGamePiece.gravity = 0.05;
022
    myScore = new component("30px", "Consolas", "black", 280, 40, "text");
023
    myGameArea.start();
024
}

DimaADADASDAD 28.10.2016 13:32

Прошу помогите вся надежда на вас я думал тут профессионалы,
и я быстро и четко получу ответят на столь простой вопрос !


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