• Страница 1 из 1
  • 1
Модератор форума: JonMagon  
Сообщество uCoz » Вебмастеру » JavaScript, Flash и прочие технологии » Атрибут target
Атрибут target
WasaBeS
Сообщений: 70
Репутация: 40

Сообщение # 1 | 23:36:43
Как правильно добавить атрибут target, в этот скрипт?
Код
var m3D = function () {
var diapo = [],
imb,
scr,
bar,
selected,
imagesPath = "",
camera = {x:0, y:0, z:-650, s:0, fov: 450},
nw = 0,
nh = 0;    
camera.setTarget = function (c0, t1, p) {
if (Math.abs(t1 - c0) > .1) {
camera.s = 1;
camera.p = 0;
camera.d = t1 - c0;
if (p) {
camera.d *= 2;
camera.p = 9;
}
}
}
camera.tween = function (v) {
if (camera.s != 0) {
camera.p += camera.s;
camera [v]+= camera.d * camera.p * .01;
if (camera.p == 10) camera.s = -1;
else if (camera.p == 0) camera.s = 0;
}
return camera.s;
}    
var Diapo = function (n, img, x, y, z) {
if (img) {
this.url = img.url;
this.title = img.title;
this.color = img.color;
this.isLoaded = false;
if (document.createElement("canvas").getContext) {    
this.srcImg = new Image();
this.srcImg.src = imagesPath + img.src;
this.img = document.createElement("canvas");
this.canvas = true;
scr.appendChild(this.img);
}    
else {    
this.img = document.createElement('img');
scr.appendChild(this.img);
}    
this.img.onclick = function () {
if (camera.s) return;
if (this.diapo.isLoaded) {
if (this.diapo.urlActive) {    
top.location.href = this.diapo.url;
}    
else {    
camera.tz = this.diapo.z - camera.fov;
camera.tx = this.diapo.x;
camera.ty = this.diapo.y;    
if (selected) {
selected.but.className = "button viewed";
selected.img.className = "";
selected.img.style.cursor = "pointer";
selected.urlActive = false;
urlInfo.style.visibility = "hidden";
}    
this.diapo.but.className = "button selected";
interpolation(false);
selected = this.diapo;
}
}
}    
this.but = document.createElement('div');
this.but.className = "button";
bar.appendChild(this.but);
this.but.diapo = this;
this.but.style.left = Math.round((this.but.offsetWidth * 1.2) * (n % 4)) + 'px';
this.but.style.top = Math.round((this.but.offsetHeight * 1.2) * Math.floor(n / 4)) + 'px';
this.but.onclick = this.img.onclick;
imb = this.img;
this.img.diapo = this;
this.zi = 25000;
}    
else {    
this.img = document.createElement('div');
this.isLoaded = true;
this.img.className = "fog";
scr.appendChild(this.img);
this.w = 15;
this.h = 15;
this.zi = 15000;
}    
this.x = x;
this.y = y;
this.z = z;
this.css = this.img.style;
}
Diapo.prototype.anim = function () {
if (this.isLoaded) {
var x = this.x - camera.x;
var y = this.y - camera.y;
var z = this.z - camera.z;
if (z < 20) z += 5000;
var p = camera.fov / z;
var w = this.w * p;
var h = this.h * p;    
this.css.left = Math.round(nw + x * p - w * .5) + 'px';
this.css.top = Math.round(nh + y * p - h * .5) + 'px';    
this.css.width = Math.round(w) + 'px';
this.css.height = Math.round(h) + 'px';
this.css.zIndex = this.zi - Math.round(z);
}    
else {
this.isLoaded = this.loading();
}
}
Diapo.prototype.loading = function () {
if ((this.canvas && this.srcImg.complete) || this.img.complete) {
if (this.canvas) {
this.w = this.srcImg.width;
this.h = this.srcImg.height;
this.img.width = this.w;
this.img.height = this.h;
var context = this.img.getContext("2d");
context.drawImage(this.srcImg, 0, 0, this.w, this.h);
}    
else {
this.w = this.img.width;
this.h = this.img.height;
}
this.but.className += " loaded";
return true;
}
return false;
}
var resize = function () {
nw = scr.offsetWidth * .5;
nh = scr.offsetHeight * .5;
}
var interpolation = function (bicubic) {
var i = 0, o;
while( o = diapo[i++] ) {
if (o.but) {
o.css.msInterpolationMode = bicubic ? 'bicubic' : 'nearest-neighbor';
o.css.imageRendering = bicubic ? 'optimizeQuality' : 'optimizeSpeed';
}
}
}
var init = function (data) {
scr = document.getElementById("screen");
bar = document.getElementById("bar");
resize();
var i = 0,    
o,
n = data.length;
while( o = data[i++] ) {
var x = 1000 * ((i % 4) - 1.5);
var y = Math.round(Math.random() * 4000) - 2000;
var z = i * (5000 / n);
diapo.push( new Diapo(i - 1, o, x, y, z));
var k = diapo.length - 1;
for (var j = 0; j < 3; j++) {
var x = Math.round(Math.random() * 4000) - 2000;
var y = Math.round(Math.random() * 4000) - 2000;
diapo.push( new Diapo(k, null, x, y, z + 100));
}
}
run();
}
var run = function () {
if (camera.tx) {
if (!camera.s) camera.setTarget(camera.x, camera.tx);
var m = camera.tween('x');
if (!m) camera.tx = 0;
}    
else if (camera.ty) {
if (!camera.s) camera.setTarget(camera.y, camera.ty);    
var m = camera.tween('y');
if (!m) camera.ty = 0;
}    
else if (camera.tz) {
if (!camera.s) camera.setTarget(camera.z, camera.tz);
var m = camera.tween('z');
if (!m) {
camera.tz = 0;
interpolation(true);
if (selected.url) {
selected.img.style.cursor = "pointer";
selected.urlActive = true;
selected.img.className = "href";
}    
else {
selected.img.style.cursor = "default";
}
}
}
var i = 0, o;
while( o = diapo[i++] ) o.anim();
setTimeout(run, 32);
}
return {
init : init
}
}();

Сообщение отредактировал WasaBeS - Суббота, 07 Мар 2015, 23:37:54
1artes1
Сообщений: 24
Репутация: 0

Сообщение # 2 | 10:09:06
в какую его часть? для чего? какая стоит задача? Для чего скрипт?

Доступные решения в кратчайшие сроки. Web-студия RedLine Design
WasaBeS
Сообщений: 70
Репутация: 40

Сообщение # 3 | 13:36:46
1artes1, мне нужно чтобы при повторном нажатии на картинку http://skill-bro.ucoz.ru/#graphics ссылка открывалась в новом окне.

Сообщение отредактировал WasaBeS - Понедельник, 23 Мар 2015, 13:37:10
Сообщество uCoz » Вебмастеру » JavaScript, Flash и прочие технологии » Атрибут target
  • Страница 1 из 1
  • 1
Поиск: