Не работает перенос изображений - Dreamweaver CS6

0

Поэтому я сделал несколько.png в Photoshop и сделал снимки с ними, просто перейдя в меню "Вставка"> "Объекты изображения"> "Ролловер". Они отлично работали целыми неделями, но внезапно перестали работать, как эффект опрокидывания, так и фактическая гиперссылка, привязанная к этому URL в социальных сетях. Когда вы используете функцию Rollover Image, она превращает <body> в:

<body onload="MM_preloadImages('images/facebook2.png','images/instagram2.png','images/twitter2.png','images/tumblr2.png','images/threadflip2.png','images/pintrest2.png','images/laceandlattes_title2.png')">

Строка HTML для каждого отдельного значка выглядит примерно так: в теге div:

<a href="https://www.facebook.com/ssaammrr" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('facebook','','images/facebook2.png',1)"><img src="images/facebook.png" width="30" height="30" id="facebook" /></a>

Мне кажется правильным, но если кто-нибудь может подумать о том, почему это не удается, пожалуйста, дайте мне знать

  • 1
    Это старая техника, почему вы не можете сделать это с помощью CSS?
Теги:
image
dreamweaver
rollover

2 ответа

0

ваш код отлично работает в Dreamweaver, чтобы решить проблему дальше, я бы удостоверился, что у вас есть следующие функции js в ваших тегах:

<script type="text/javascript">
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
</script>
0

Я вроде как напольный, что Dreamweaver CS6, выпущенный в апреле 2012 года, по-прежнему использует JavaScript для обмена изображениями. Это намного проще и эффективнее всего с CSS и некоторой дополнительной разметкой.

Я разорву этот ответ из одного из моих более ранних ответов на другой вопрос (который касательно связан с вашим), чтобы показать пример того, как это сделать с помощью CSS.

Скажем, у вас есть следующая разметка:

<a class="rollover-container">
    <img class="rollover" src="images/facebook.png"/>
    <img class="rollover-swap" src="images/facebook2.png"/>
</a>

У меня уже есть классы по элементам, для эффекта опрокидывания. Существует содержащий элемент <a> который содержит два элемента <img>. Это позволяет вам щелкнуть изображение, независимо от того, в каком состоянии они находятся, и быть привязанным к желаемой странице (вы бы добавили href в <a> для всех, куда захотите). Затем вы можете заполнить src атрибуты на <img> с тем, что изображения, которые вы хотите (.rollover отображается по умолчанию, и .rollover-swap скрыт, но местами в при наведении курсора мыши).

Используя эту разметку, вы можете включить следующий CSS для достижения эффекта обмена изображениями только с CSS:

/* Initially hide the hover image */
.rollover-swap {
    display: none;
}

/* When hovering over the <a> container, hide the default image */
.rollover-container:hover .rollover {
    display: none;
}

/* When hovering over the <a> container, show the hover image */
.rollover-container:hover .rollover-swap {
    display: inline;
}

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

Для этого метода не требуется JavaScript, поэтому его можно удалить (например, удалить ваши onmouseout onload, onmouseout и onmouseover из ваших элементов).

  • 0
    это просто заставляет их вообще не работать или менять изображения.
  • 0
    @ user3075558 Вы держали обработчики событий JS на элементах? Они должны быть удалены, если вы пытаетесь этот метод.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню