Перейти к содержимому



Как сделать чтобы 'var' отмечал не только jpg, но и другие графические файлы?

#1 kolesgan

kolesgan
  • Неактивные
  • 73 сообщений
  • Репутация: 0
0

Отправлено 06 Январь 2011 - 21:58

Есть код фотогалереи, кусочек кода

<script type="text/javascript">
var imgid = 'image';
var imgdir = 'fullsize';
var imgext = '.jpg';
var thumbid = 'thumbs';
var auto = true;
var autodelay = 5;
</script>
<script type="text/javascript" src="slide.js"></script></td>

как сделать чтобы 'var' отмечал файл, не только jpg, еще gif и еще некоторые графические файлы


 

 

  • 0

robot

robot
  • Пользователь PRO
  • 2 652 сообщений
  • Репутация: 85
Советую обратить внимание на следующее:
  1. Как сделать текст внутри изображения
  2. PNG не отображается в браузерах
  3. Wordpress НЕ только для блога или создание различных типов сайтов на этой CMS
  4. Установить баннер, чтобы он отображался на всех страницах
  5. Как сделать чтобы работали два слайдера на одной странице независимо

#2 matroskin8

matroskin8
  • Пользователь PRO
  • 767 сообщений
  • Репутация: 143

Отправлено 06 Январь 2011 - 22:40

Это логичнее спрашивать у автора скрипта. Лучше выложить весь скрипт - тогда можно будет посмотреть и что-то посоветовать.
  • 0


#3 kolesgan

kolesgan
    Topic Starter
  • Неактивные
  • 73 сообщений
  • Репутация: 0

Отправлено 06 Январь 2011 - 22:46

<div id="gallery">
<div id="imagearea">
<div id="image">
<a href="java script:slideShow.nav(-1)" class="imgnav " id="previmg"></a>
<a href="java script:slideShow.nav(1)" class="imgnav " id="nextimg"></a> </div>
</div>
<div id="thumbwrapper">
<div id="thumbarea">
<ul id="thumbs"><? $result1 = mysql_query("SELECT * FROM gallery WHERE cat=$id and dostup=1",$db);
if (!$result1)
{
echo "<p>Запрос на выборку данных из базы не прошел. Напишите об этом администратору <br> <strong>Код ошибки:</strong></p>";
exit(mysql_error());
}
if (mysql_num_rows($result1) > 0)
{
$myrow1 = mysql_fetch_array($result1);
do
{
printf ("<li value='%s'><img src='fullsize/%s' height='100'></li>",$myrow1["id"],$myrow1["img"]);
}
while ($myrow1 = mysql_fetch_array($result1));
}
else
{
echo "<p>Информация по запросу не может быть извлечена в таблице нет записей.</p>";
exit();
}
?> </ul>
</div>
</div>
</div>

<script type="text/javascript">
var imgid = 'image';
var imgdir = 'fullsize';
var imgext = '.jpg';
var thumbid = 'thumbs';
var auto = true;
var autodelay = 5;
</script>
<script type="text/javascript" src="slide.js"></script>

  • 0

#4 matroskin8

matroskin8
  • Пользователь PRO
  • 767 сообщений
  • Репутация: 143

Отправлено 06 Январь 2011 - 22:57

Это не совсем то. Имелось в виду код скрипта (slide.js), а не код страницы, чтобы можно было посмотреть его в действии, ну и попробовать изменить под наши нужды. Желательно просто дать ссылку на страницу с работающим скриптом.
А почему не использовать lightbox или что-то подобное? Там нет проблем с допустимыми расширениями - можно и jpg, и gif...
  • 0


#5 kolesgan

kolesgan
    Topic Starter
  • Неактивные
  • 73 сообщений
  • Репутация: 0

Отправлено 07 Январь 2011 - 13:11

Вот этот файл

var slideShow=function(){
var bxs,bxe,fxs,fxe,ys,ye,ta,ia,ie,st,ss,ft,fs,xp,yp,ci,t,tar,tarl;
ta=document.getElementById(thumbid); ia=document.getElementById(imgid);
t=ta.getElementsByTagName('li'); ie=document.all?true:false;
st=3; ss=3; ft=10; fs=5; xp,yp=0;
return{
init:function(){
document.onmousemove=this.pos; window.onresize=function(){setTimeout("slideShow.lim()",500)};
ys=this.toppos(ta); ye=ys+ta.offsetHeight;
len=t.length;tar=[];
for(i=0;i<len;i++){
var id=t[i].value; tar[i]=id;
t[i].onclick=new Function("slideShow.getimg('"+id+"')");
if(i==0){this.getimg(id)}
}
tarl=tar.length;
},
scrl:function(d){
clearInterval(ta.timer);
var l=(d==-1)?0:(t[tarl-1].offsetLeft-(ta.parentNode.offsetWidth-t[tarl-1].offsetWidth)+10)
ta.timer=setInterval(function(){slideShow.mv(d,l)},st);
},
mv:function(d,l){
ta.style.left=ta.style.left||'0px';
var left=ta.style.left.replace('px','');
if(d==1){
if(l-Math.abs(left)<=ss){
this.cncl(ta.id); ta.style.left='-'+l+'px';
}else{ta.style.left=left-ss+'px'}
}else{
if(Math.abs(left)-l<=ss){
this.cncl(ta.id); ta.style.left=l+'px';
}else{ta.style.left=parseInt(left)+ss+'px'}
}
},
cncl:function(){clearTimeout(ta.timer)},
getimg:function(id){
if(auto){clearTimeout(ia.timer)}
if(ci!=null){
var ts,tsl,x;
ts=ia.getElementsByTagName('img'); tsl=ts.length;x=0;
for(x;x<tsl;x++){
if(ci.id!=id){var o=ts[x]; clearInterval(o.timer); o.timer=setInterval(function(){slideShow.fdout(o)},fs)}
}
}
if(!document.getElementById(id)){
var i=document.createElement('img');
ia.appendChild(i);
i.id=id; i.av=0; i.style.opacity=0;
i.style.filter='alpha(opacity=0)';
i.src=imgdir+'/'+id+imgext;
}else{
i=document.getElementById(id); clearInterval(i.timer);
}
i.timer=setInterval(function(){slideShow.fdin(i)},fs);
},
nav:function(d){
var c=0;
for(key in tar){if(tar[key]==ci.id){c=key}}
if(tar[parseInt©+d]){
this.getimg(tar[parseInt©+d]);
}else{
if(d==1){
this.getimg(tar[0]);
}else{this.getimg(tar[tarl-1])}
}
},
auto:function(){ia.timer=setInterval(function(){slideShow.nav(1)},autodelay*1000
)},
fdin:function(i){
if(i.complete){i.av=i.av+fs; i.style.opacity=i.av/100; i.style.filter='alpha(opacity='+i.av+')'}
if(i.av>=100){if(auto){this.auto()}; clearInterval(i.timer); ci=i}
},
fdout:function(i){
i.av=i.av-fs; i.style.opacity=i.av/100;
i.style.filter='alpha(opacity='+i.av+')';
if(i.av<=0){clearInterval(i.timer); if(i.parentNode){i.parentNode.removeChild(i)}}
},
lim:function(){
var taw,taa,len; taw=ta.parentNode.offsetWidth; taa=taw/4;
bxs=slideShow.leftpos(ta); bxe=bxs+taa; fxe=bxs+taw; fxs=fxe-taa;
},
pos:function(e){
xp=ie?event.clientX+document.documentElement.scrollLeft:e.pageX;
yp=ie?event.clientY+document.documentElement.scrollTop:e.pageY;
if(xp>bxs&&xp<bxe&&yp>ys&&yp<ye){
slideShow.scrl(-1);
}else if(xp>fxs&&xp<fxe&&yp>ys&&yp<ye){
slideShow.scrl(1);
}else{slideShow.cncl()}
},
leftpos:function(t){
var l=0;
if(t.offsetParent){
while(1){l+=t.offsetLeft; if(!t.offsetParent){break}; t=t.offsetParent}
}else if(t.x){l+=t.x}
return l;
},
toppos:function(t){
var p=0;
if(t.offsetParent){
while(1){p+=t.offsetTop; if(!t.offsetParent){break}; t=t.offsetParent}
}else if(t.y){p+=t.y}
return p;
}
};
}();

window.onload=function(){slideShow.init(); slideShow.lim()};

  • 0

#6 matroskin8

matroskin8
  • Пользователь PRO
  • 767 сообщений
  • Репутация: 143

Отправлено 07 Январь 2011 - 19:31

Так вам вряд ли помогут... Я просил недаром:

Желательно просто дать ссылку на страницу с работающим скриптом.


Это для того, чтобы не гадать как работает скрипт и как с ним работать (для этого и пишутся файлы типа "read me"). Если включить "гадалку", то в скрипте есть строка:
i.src=imgdir+'/'+id+imgext;
которая формирует путь к картинке. Название картинки, я так понял, вытаскивается из базы и в базе оно лежит без расширения. Попробуй добавить расширение к имени картинок и в скрипте изменить строку выше на эту:
i.src=imgdir+'/'+id;
Если не получится, то вряд ли смогу помочь без знания того, как работает скрипт и как он подключается - для этого, как я говорил, нужна страница с примером работающего скрипта или инструкция по его использованию.
  • 0


#7 ZiTosS

ZiTosS
  • Неактивные
  • 5 148 сообщений
  • Репутация: 8

Отправлено 19 Январь 2011 - 11:16

Ох и парашный скрипт... Где вы такие находите? Сейчас есть куча галерей на фреймворках в 100 раз красивее... Не понимаю, почему автор привязался к собственным названиям файлов с id, так же он в скрипте на лету составляет путь до картинки, ох как он не практичен... Даже разбираться не хочется, извиняйте.
Скрипт ужасен, он переписывает изначальные пути по новой, в соответствии с атрибутом value у li, окружающего картинку. Используются глобальные переменные и т.д. Как здесь учесть расширение... Начал изменять, но понял, что сюда с расширениями лучше не лезть. Не буду говорить ничего плохого про автора, но это одноразовый скрипт.

matroskin8, картинки то все с расширением идут... Просто автор намеренно при добавлении текущего слайда обрубает все связи с элементами в li и зачем-то формирует названия ссылаясь на id.

P.s.: из названия темы ничего не ясно. Называйте темы внятно.
  • 0


Оформление форума – IPBSkins.ru