Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/18: Рейтинг темы: голосов - 18, средняя оценка - 4.89
1 / 1 / 4
Регистрация: 12.02.2014
Сообщений: 117
1

Ограничение области перемещения объекта

27.02.2018, 04:33. Показов 3492. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем доброго времени суток.

У меня есть вот такой вот код (пример кода):
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
<!-- Настройка общего размера страницы -->
<html style="zoom: 130%" width="100%">
 
<head>
    <!-- Работа с русскими символамит-->
    <meta charset="UTF-8">
 
    <!-- Название страницы в браузере -->
    <title>Карта памятников города Оха</title>
 
    <!-- Отменяем подчеркивание у ссылки -->
    <style>
        a { text-decoration: none;} 
    </style>
 
    <!-- убераю вертикальный ползунок страницы -->
    <style>
        html { overflow-y: hidden; }
    </style>
 
 
<!--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-->
<!-- ПЕРЕМЕЩЕНИЕ КАРТЫ КАРТЫ -->
<!--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-->
 
    <!-- JS код на перемещение обьекта, класс: style="position: relative; top: 0; left: 0" onmousedown="dragOBJ(this,event); return false;" -->
    <script type="text/javascript">
        function $(v) { return(document.getElementById(v)); }
        function agent(v) { return(Math.max(navigator.userAgent.toLowerCase().indexOf(v),0)); }
        function xy(e,v) { return(v?(agent('msie')?event.clientY+document.body.scrollTop:e.pageY):(agent('msie')?event.clientX+document.body.scrollTop:e.pageX)); }
 
        function dragOBJ(d,e) 
        {    
            function drag(e) 
            { 
                if(!stop) 
                {
                    d.style.top=(tX=xy(e,1)+oY-eY+'px'); 
                    d.style.left=(tY=xy(e)+oX-eX+'px');
                }
            }
 
            var oX=parseInt(d.style.left),oY=parseInt(d.style.top),eX=xy(e),eY=xy(e,1),tX,tY,stop; 
            document.onmousemove=drag; 
            document.onmouseup=function(){ stop=1; document.onmousemove=''; document.onmouseup=''; };
        }
    </script>
 
 
    <!-- дополнительный CSS код для поля с картой, класс: style="cursor:move" -->
    <style> 
        .Text
        { 
            font-family: Verdana,Arial,Sans-serif,'Times New Roman'; 
            font-size: 9pt; 
            font-weight: normal; 
            font-style: normal; 
            color: #666; 
            text-decoration: none; 
        } 
 
        .alertsBoxTitle
        { 
            font-family: Verdana,Arial,Sans-serif,'Times New Roman'; 
            font-size: 9pt; 
            font-weight: bold; 
            font-style: normal; 
            color: #ffffff; 
            text-decoration: none; 
        } 
 
        .alertsBox
        { 
            background: #ECF1F9; 
            border: 1px #a1bcdf solid; 
        } 
    </style> 
 
</head>
 
 
 
 
<!--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-->
<!-- ИЗМЕНЕНИЕ РАЗМЕРА КАРТЫ -->
<!--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-->
 
<!-- код на изменения маштаба карты, JS код внутри данного элемента -->
<div id="text" style="margin: 0px; width: 0px; height:0px; border: 0px solid red">
 
 
    <!-- JS код на изменение зума карты при помощи колеса мышки, класс: id="text" style="margin: 0px; width: 0px; height:0px; border: 0px solid red" -->
    <script>
        function addOnWheel(elem, handler) 
        {
          if (elem.addEventListener) 
          {
            if ('onwheel' in document) 
            {
              // IE9+, FF17+
              elem.addEventListener("wheel", handler);
            } 
            else if ('onmousewheel' in document) 
            {
              // устаревший вариант события
              elem.addEventListener("mousewheel", handler);
            } 
            else 
            {
              // 3.5 <= Firefox < 17, более старое событие DOMMouseScroll пропустим
              elem.addEventListener("MozMousePixelScroll", handler);
            }
          } 
          else 
          { // IE8-
            text.attachEvent("onmousewheel", handler);
          }
        }
 
        var scale = 1;
 
        addOnWheel(text, function(e) 
        {
            var delta = e.deltaY || e.detail || e.wheelDelta;
 
            // отмасштабируем при помощи CSS
            if (delta > 0) scale -= 0.05;
            else scale += 0.05;
 
 
 
            // отмасштабируем при помощи CSS 
            if (delta > 0) 
            {
                scale -= 0.05;
                if (scale < 1) scale = 1; //ограничением уменьшения зума
            } 
            else 
            {
                scale += 0.05;
            }
 
            text.style.transform = text.style.WebkitTransform = text.style.MsTransform = 'scale(' + scale + ')';
 
            // отменим прокрутку
            e.preventDefault();
        });
    </script>
 
<!--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-->
<!-- КАРТА -->
<!--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-->
 
    <!-- подключение кода на перемещение карты --> 
    <div id="searches" style=" cursor:move; position: relative; top: 0; left: 0" onmousedown="dragOBJ(this,event); return false;" >
 
        <!-- КАРТА -->
        <div align="center">
        <table cellspacing=0 cellpadding="0" width="100%" border="0" bgcolor="AAD3E5">
            <tr>
                <th> <img  src="map/paperclip_map/1-1.jpg"> </th>
                <th> <img  src="map/paperclip_map/1-2.jpg"> </th>
                <th> <img  src="map/paperclip_map/1-3.jpg"> </th>
                <th> <img  src="map/paperclip_map/1-4.jpg"> </th>
                <th> <img  src="map/paperclip_map/1-5.jpg"> </th>
                <th> <img  src="map/paperclip_map/1-6.jpg"> </th>
                <th> <img  src="map/paperclip_map/1-7.jpg"> </th>
                <th> <img  src="map/paperclip_map/1-8.jpg"> </th>
                <th> <img  src="map/paperclip_map/1-9.jpg"> </th>
                <th> <img  src="map/paperclip_map/1-10.jpg"> </th>
 
            <tr>
                <th> <img  src="map/paperclip_map/2-1.jpg"> </th>
                <th> <img  src="map/paperclip_map/2-2.jpg"> </th>
                <th> <img  src="map/paperclip_map/2-3.jpg"> </th>
                <th> <img  src="map/paperclip_map/2-4.jpg"> </th>
                <th> <img  src="map/paperclip_map/2-5.jpg"> </th>
                <th> <img  src="map/paperclip_map/2-6.jpg"> </th>
                <th> <img  src="map/paperclip_map/2-7.jpg"> </th>
                <th> <img  src="map/paperclip_map/2-8.jpg"> </th>
                <th> <img  src="map/paperclip_map/2-9.jpg"> </th>
                <th> <img  src="map/paperclip_map/2-10.jpg"> </th>
 
            <tr>
                <th> <img  src="map/paperclip_map/3-1.jpg"> </th>
                <th> <img  src="map/paperclip_map/3-2.jpg"> </th>
                <th> <img  src="map/paperclip_map/3-3.jpg"> </th>
                <th> <img  src="map/paperclip_map/3-4.jpg"> </th>
                <th> <img  src="map/paperclip_map/3-5.jpg"> </th>
                <th> <img  src="map/paperclip_map/3-6.jpg"> </th>
                <th> <img  src="map/paperclip_map/3-7.jpg"> </th>
                <th> <img  src="map/paperclip_map/3-8.jpg"> </th>
                <th> <img  src="map/paperclip_map/3-9.jpg"> </th>
                <th> <img  src="map/paperclip_map/3-10.jpg"> </th>
 
            <tr>
                <th> <img  src="map/paperclip_map/4-1.jpg"> </th>
                <th> <img  src="map/paperclip_map/4-2.jpg"> </th>
                <th> <img  src="map/paperclip_map/4-3.jpg"> </th>
                <th> <img  src="map/paperclip_map/4-4.jpg"> </th>
                <th> <img  src="map/paperclip_map/4-5.jpg"> </th>
                <th> <img  src="map/paperclip_map/4-6.jpg"> </th>
                <th> <img  src="map/paperclip_map/4-7.jpg"> </th>
                <th> <img  src="map/paperclip_map/4-8.jpg"> </th>
                <th> <img  src="map/paperclip_map/4-9.jpg"> </th>
                <th> <img  src="map/paperclip_map/4-10.jpg"> </th>
 
            <tr>
                <th> <img  src="map/paperclip_map/5-1.jpg"> </th>
                <th> <img  src="map/paperclip_map/5-2.jpg"> </th>
                <th> <img  src="map/paperclip_map/5-3.jpg"> </th>
                <th> <img  src="map/paperclip_map/5-4.jpg"> </th>
                <th> <img  src="https://pre00.deviantart.net/c5a5/th/pre/i/2012/038/9/d/con_il_logo_di_skyrim_by_jojo_ojoj-d4oymao.png"> </th>
                <th> <img  src="map/paperclip_map/5-6.jpg"> </th>
                <th> <img  src="map/paperclip_map/5-7.jpg"> </th>
                <th> <img  src="map/paperclip_map/5-8.jpg"> </th>
                <th> <img  src="map/paperclip_map/5-9.jpg"> </th>
                <th> <img  src="map/paperclip_map/5-10.jpg"> </th>
 
            <tr>
                <th> <img  src="map/paperclip_map/6-1.jpg"> </th>
                <th> <img  src="map/paperclip_map/6-2.jpg"> </th>
                <th> <img  src="map/paperclip_map/6-3.jpg"> </th>
                <th> <img  src="map/paperclip_map/6-4.jpg"> </th>
                <th> <img  src="map/paperclip_map/6-5.jpg"> </th>
                <th> <img  src="map/paperclip_map/6-6.jpg"> </th>
                <th> <img  src="map/paperclip_map/6-7.jpg"> </th>
                <th> <img  src="map/paperclip_map/6-8.jpg"> </th>
                <th> <img  src="map/paperclip_map/6-9.jpg"> </th>
                <th> <img  src="map/paperclip_map/6-10.jpg"> </th>
 
            <tr>
                <th> <img  src="map/paperclip_map/7-1.jpg"> </th>
                <th> <img  src="map/paperclip_map/7-2.jpg"> </th>
                <th> <img  src="map/paperclip_map/7-3.jpg"> </th>
                <th> <img  src="map/paperclip_map/7-4.jpg"> </th>
                <th> <img  src="map/paperclip_map/7-5.jpg"> </th>
                <th> <img  src="map/paperclip_map/7-6.jpg"> </th>
                <th> <img  src="map/paperclip_map/7-7.jpg"> </th>
                <th> <img  src="map/paperclip_map/7-8.jpg"> </th>
                <th> <img  src="map/paperclip_map/7-9.jpg"> </th>
                <th> <img  src="map/paperclip_map/7-10.jpg"> </th>
 
            <tr>
                <th> <img  src="map/paperclip_map/8-1.jpg"> </th>
                <th> <img  src="map/paperclip_map/8-2.jpg"> </th>
                <th> <img  src="map/paperclip_map/8-3.jpg"> </th>
                <th> <img  src="map/paperclip_map/8-4.jpg"> </th>
                <th> <img  src="map/paperclip_map/8-5.jpg"> </th>
                <th> <img  src="map/paperclip_map/8-6.jpg"> </th>
                <th> <img  src="map/paperclip_map/8-7.jpg"> </th>
                <th> <img  src="map/paperclip_map/8-8.jpg"> </th>
                <th> <img  src="map/paperclip_map/8-9.jpg"> </th>
                <th> <img  src="map/paperclip_map/8-10.jpg"> </th>
 
            <tr>
                <th> <img  src="map/paperclip_map/9-1.jpg"> </th>
                <th> <img  src="map/paperclip_map/9-2.jpg"> </th>
                <th> <img  src="map/paperclip_map/9-3.jpg"> </th>
                <th> <img  src="map/paperclip_map/9-4.jpg"> </th>
                <th> <img  src="map/paperclip_map/9-5.jpg"> </th>
                <th> <img  src="map/paperclip_map/9-6.jpg"> </th>
                <th> <img  src="map/paperclip_map/9-7.jpg"> </th>
                <th> <img  src="map/paperclip_map/9-8.jpg"> </th>
                <th> <img  src="map/paperclip_map/9-9.jpg"> </th>
                <th> <img  src="map/paperclip_map/9-10.jpg"> </th>
 
            <tr>
                <th> <img  src="map/paperclip_map/10-1.jpg"> </th>
                <th> <img  src="map/paperclip_map/10-2.jpg"> </th>
                <th> <img  src="map/paperclip_map/10-3.jpg"> </th>
                <th> <img  src="map/paperclip_map/10-4.jpg"> </th>
                <th> <img  src="map/paperclip_map/10-5.jpg"> </th>
                <th> <img  src="map/paperclip_map/10-6.jpg"> </th>
                <th> <img  src="map/paperclip_map/10-7.jpg"> </th>
                <th> <img  src="map/paperclip_map/10-8.jpg"> </th>
                <th> <img  src="map/paperclip_map/10-9.jpg"> </th>
                <th> <img  src="map/paperclip_map/10-10.jpg"> </th>
            </tr>
        </table>
    </div>
 
</div> <!-- окончание кода на перемещение карты -->
</div> <!-- окончание кода на зумирование карты -->
 
</html>
Проблема состоит в том, что я могу перетащить объект, в какую либо сторону, до такой степени, что могу его полностью перетащить видимую область и объект полностью пропадет.

Можно ли поставить какой нибудь ограничитель на то, что бы объект находясь в своей нормальной форме, никуда не перетаскивался, ни влево, ни вправо, ни вверх, ни вниз, а перетаскивался только при увеличении (при зуминке), и то, так что бы даже при зуменге, он не перемещялся в невидимую область...

Вы меня поймете, о чем я говорю, когда протестируете код....

По идее, я хотел бы сделать, карту по типу: https://skyrimmap.ru/
С такими же ограничениями по всем осям...

Хочу сказать сразу, я в этом вообще не бум-бум не фига. Выживаю только за счет готовых примеров, готовых кодов. =_=
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.02.2018, 04:33
Ответы с готовыми решениями:

Iframe перемещения области
есть скрипт iframe который показывает определенный кусок сайта (направлен он на кнопку которая...

Ограничение движения объекта
Есть картинка, мы передвигаем её с клавиатуры, при помощи стрелок. Как можно ограничить...

Ограничение перемещения объекта
Добрый вечер! import flash.events.MouseEvent; var arr:Array = new Array(); ...

Ограничение перемещения курсора в заданной области
пытаюсь задать ограничение для работы мышью.. использую следущее RECT r; r.left=100; r.top=100;...

2
2232 / 1278 / 611
Регистрация: 23.08.2015
Сообщений: 3,228
28.02.2018, 06:38 2
Саир_Крон, В вашем примере используется API яндекс карт, можете обратить внимание на ссылку в углу "Условия использования"
Вот здесь пример реализации собственной карты https://tech.yandex.ru/maps/jsbox/2.1/custom_map
0
1 / 1 / 4
Регистрация: 12.02.2014
Сообщений: 117
28.02.2018, 07:30  [ТС] 3
sad67man спасибо большое, но мне по заданию, нельзя пользоваться такими средствами и схожими программами.
Все должно быть написанно в 1 html файле, без подгрузки библиотек js и css из вне.

А так, я бы с превеликим удовольствием, так бы сделал.
Даже скажу большее, я начал так делать, но мне, как я уже написал выше, запретили так делать =_=

Так что, мне нужно сделать что-то схожее с этим =_=

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

Кстати, препод запрещает нам использовать внешние js и прочие программы, потому что, что он хочет, что бы мы сильно не надеялись на эти средства и внешние источники. Так же он говорит, типо:
- современный мир, это мир плагиата и одинаковых идей реализованных по разному
- код написанный разными людьми для разных целей, может быть довольно схож, и в этом нет ничего страшного
0
28.02.2018, 07:30
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.02.2018, 07:30
Помогаю со студенческими работами здесь

Ограничение движения объекта в заданной области и его запуск с силой по вектору
Вечер добрый. Я новичок в Unity. Пытаюсь сделать механику подобную Angry Birds, собственно по ней и...

Ограничение перемещения мыши по холсту
У меня следующая проблема: в приложении есть 6 находящихся друг под другом холстов (Canvas). Эти...

Перемещение PictureBox с ограничением области перемещения
Здравствуйте. Хотел написать код, для перемещения PictureBox в указанной области. Сам написать не...

Зацикливание перемещения объекта
Здравствуйте! Подскажите люди добрые, как зациклить объект в Unity, а то он у меня только в одну...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru