Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как заставить двигаться квадраты???
 
 автор: Gelo   (28.01.2012 в 22:08)   письмо автору
490 байт
 
 

Всем доброго времени суток.

Я никак не могу докумекать до следующего., дано задание в создать HTML-страницу в центре которой должен размещаться квадрат красного цвета, при нажатии на него, он должен менять цвет с красного на синий и менять свое положение, быть чуточку ниже и правее. А при нажатии на синий квадрат принимать исходную позицию и становиться красным. Это я сделал при помощи JavaScript, код прилагается во вложенном файле.


но есть загвоздка в следующем, я применил картинки квадратов внешние. то есть указал их из папки в которой они находятся.
Но мне нужно создать квадраты при помощи СSS, и заставить их выполнять условия задания.

квадраты я создал, но вот как их заставить выполнять условия не пойму никак. Есть у кого идеи, варианты ?

  Ответить  
 
 автор: АЯС   (28.01.2012 в 22:51)   письмо автору
 
   для: Gelo   (28.01.2012 в 22:08)
 

1. В HTML абсолютно ВСЁ - оно прямоугольное.
Окно браузера - прямоугольное, ЛЮБОЙ тег - это прямоугольник.
А квадрат - это всего лишь прямоугольник, у которого длины сторон равны.

Так что берёте ЛЮБОЙ тег и прописываете в нём одинаковые ширину (width) и высоту (height) - вот вам и квадрат.
<div style="width: 100px; height: 100px"></div>
<span style="width: 111px; height: 111px"></span>
<b style="width: 122px; height: 122px"></b>
<hr style="width: 134px; height: 134px" />
<input style="width: 141px; height: 141px" />
...

2. В HTML абсолютно ВСЁ имеет какой-то фон.
По умолчанию - чаще всего он прозрачный, но иногда бывает и белый непрозрачный (у окна браузера, у полей ввода - <input>, <textarea>...)
И у ЛЮБОГО тега этот фон можно поменять.
Устанавливаете нужное значение для фона - и вот вам разноцветные квадраты:
<div style="width: 100px; height: 100px; background-color: red"></div>
<span style="width: 111px; height: 111px; background-color: blue"></span>
<b style="width: 122px; height: 122px; background-color: green"></b>
<hr style="width: 134px; height: 134px; background-color: yellow" />
<input style="width: 141px; height: 141px; background-color: silver" />
...

3. теперь запускаете эти квадраты в браузере, смотрите и обнаруживаете - каких-то квадратов НЕТ, их не видно.
Это значит, что тот тег, которого не видно, имеет по-умолчанию стиль display равный inline (т. е. линейный вид).
Переназначаете этот стиль этих "невидимых" элементов на block; другим, которые и так видны - не надо, у них по умолчанию блочный вид
<div style="width: 100px; height: 100px; background-color: red"></div>
<span style="width: 111px; height: 111px; background-color: blue; display: block"></span>
<b style="width: 122px; height: 122px; background-color: green; display: block"></b>
<hr style="width: 134px; height: 134px; background-color: yellow" />
<input style="width: 141px; height: 141px; background-color: silver" />
...

4. Наконец, положим, имеется желание эти квадраты не просто в один ряд сверху вниз расположить, а дать каждому "своё место". Добавляете позиционность (position) и указываете расстояние вниз (top) и вправо (left) от верхнего левого угла окна браузера:
<div style="width: 100px; height: 100px; background-color: red; position: absolute; top: 23px; left: 34px"></div>
<span style="width: 111px; height: 111px; background-color: blue; display: block; position: absolute; top: 156px; left: 165px"></span>
<b style="width: 122px; height: 122px; background-color: green; display: block; position: absolute; top: 298px; left: 189px"></b>
<hr style="width: 134px; height: 134px; background-color: yellow; position: absolute; top: 123px; left: 321px" />
<input style="width: 141px; height: 141px; background-color: silver; position: absolute; top: 234px; left: 456px" />
...


Вот именно это и будет "созданием квадратов при помощи CSS", а не та фигня, кою вы нарисовали.

CSS - это как раз ТО, что прописывается у любого тега в атрибуте style="вот ОНО, ТО самое CSS".

  Ответить  
 
 автор: Gelo   (28.01.2012 в 23:15)   письмо автору
 
   для: АЯС   (28.01.2012 в 22:51)
 

Хорошо квадраты мы создали, но вот мне необходимо придать им при помощи Java Script возможность передвигаться и менять свое положение при нажатии на красный квадрат, он превращается в синий и сдвигается ниже и левее, а при нажатии на синий он вновь становится красным и возвращается на свое прежнее место.
код имеется в прилагаемое файле, но вот как его применить к созданным квадратам. ???

  Ответить  
 
 автор: АЯС   (28.01.2012 в 23:21)   письмо автору
 
   для: Gelo   (28.01.2012 в 23:15)
 

Квадраты создал я, а не "мы".
И это не есть "хорошо".

Это - "плохо".
Хотя бы потому, что вы даже "спасибо" мне за эту "лекцию" не сказали.

Тем более, УВЕРЕН, и не прочитали.
А стоило бы.
Причём ВНИМАТЕЛЬНО.
-----------------

"Передвигаться" - это как?
Можно "телепортироваться" - это значит мгновенно.
А можно - потихонечку "переползти", чтобы движение было визуально заметным.

Ну и?

  Ответить  
 
 автор: Gelo   (28.01.2012 в 23:42)   письмо автору
 
   для: АЯС   (28.01.2012 в 23:21)
 

Прощу прощения. да, момент со спасибо я упустил, спасибо вам огромное за помощь.

Лекцию прочитал, причем даже не раз. передвигаться должны они мгновенно, я приложил к сообщению перводу фаил с кодом и если его запустить в браузере, правда навряд-ли там будут отображаться картинки, но будет понятно как он передвигается.

  Ответить  
 
 автор: Sfinks   (29.01.2012 в 00:27)   письмо автору
 
   для: Gelo   (28.01.2012 в 23:42)
 

> я приложил к сообщению перводу фаил с кодом и если его запустить в браузере....
Для этого его нужно открыть, сохранить, запустить, потом еще найти и удалить - это 5 ненужных действий

> Лекцию прочитал, причем даже не раз
Значит не поняли.
У вас же уже есть какие-то наброски и вы не совсем не знаете JS.
Значит сможете в свои наброски добавить новые знания.
А из лекции вы узнали что за позицию отвечают свойства, в данном случае, left и top, а за цвет - background-color. Вот их в JS и измените по клику.

  Ответить  
 
 автор: Sfinks   (29.01.2012 в 00:09)   письмо автору
 
   для: АЯС   (28.01.2012 в 23:21)
 

Сразу сори за офтоп )
АЯС, а вы не преподаватель по жизни? Просто манера общения характерная. Объем знаний и доступность изложения вызывают уважение ) - с одной стороны, а с другой - вы так и позиционируете свой диалог... Нет, даже не диалог, а ответ - как лекцию - как бы сверху! Немного не в духе этого форума. Тут все на равных общаться стараются.
___
P.S. Это не претензия и не замечание (за этим пусть модеры следят), это любопытство )

  Ответить  
 
 автор: Gelo   (29.01.2012 в 15:03)   письмо автору
 
   для: Sfinks   (29.01.2012 в 00:09)
 

Спасибо. Я попробовал, увы все равно не получилось.

<html>
<head>
<script>
var p=1;
function t() {
if (p==1) {
var s = document.i1.style;
s.top = 20 + 'px';
s.left= 20 + 'px';
s.background = 'blue';
p=2;}
else {
var s = document.i1.style;
s.top = 10 + 'px';
s.left= 10 + 'px';
s.background = 'red';
p=1;}}
</script>
</head>
<body>
<center>
<div name="i1" style="width:150px; height:150px; background: red; top : 10px; left : 10px; position: relative;" onclick=t();> </div>
</center>
</body>
</html>

  Ответить  
 
 автор: Sfinks   (29.01.2012 в 16:14)   письмо автору
 
   для: Gelo   (29.01.2012 в 15:03)
 

<html>
<head>
<script>
function change(x){
  if(x.style.backgroundColor == 'red'){
    x.style.backgroundColor = 'blue';
    x.style.top = '150px';
    x.style.left = '150px';
  }
  else{
    x.style.backgroundColor = 'red';
    x.style.top = '100px';
    x.style.left = '100px';
  }
}
</script>
</head>
<body>
<div onclick="change(this)" style="width: 100px; height: 100px; background-color: red; position: absolute; top: 100px; left: 100px"></div>
</body>
</html>

  Ответить  
 
 автор: Gelo   (29.01.2012 в 16:37)   письмо автору
 
   для: Sfinks   (29.01.2012 в 16:14)
 

СПАСИБО БОЛЬШОЕ, чрезмерно благодарен.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования