将鼠标悬停在 div 上,使用其 data-attribute 更改 img 的 src

乔尔

我想将鼠标悬停在 div 上并使用其独特的数据属性来更改页面上其他位置的 img 的 src。因此,您浏览列表,并且 url 会根据它悬停在哪个 div 上而发生变化。到目前为止,我的方法是将鼠标悬停事件附加到我的所有列表元素并每次触发一个函数,该函数将获取当前悬停在元素上的数据属性。但它不起作用,我觉得我从错误的角度接近这个问题。我知道这很容易通过使用几行 jquery 来解决,但我不想使用它,因为我只需要它。有一种方法可以在普通的旧 javascript 中做到这一点,对吧?

const workThumb = document.querySelectorAll('#work-thumb');
const works = document.querySelectorAll('.work-list').forEach(item => {
  item.addEventListener('mouseover', event => {
    var src = this.getAttribute('data-thumb');
    workThumb.setAttribute("src", url);
  })
})
<a class="work-list" data-thumb="http://url.to/test.jpg">
<a class="work-list" data-thumb="http://url.to/test.jpg">
<a class="work-list" data-thumb="http://url.to/test.jpg">
[...]
<img id="work-thumb" src="test.jpg">
乔乔先生

使用querySelector(不是querySelectorAll):

工作示例...

const workThumb = document.querySelector('#work-thumb')

document.querySelectorAll('.work-list').forEach( item => 
  {
  item.onmouseover = () => workThumb.src = item.dataset.thumb
  })
 a {
  display : block;
  margin  : .3em;
  cursor  : pointer;
  }
<a class="work-list" data-thumb="https://via.placeholder.com/150x100/ff0000">ITEM-1</a>
<a class="work-list" data-thumb="https://via.placeholder.com/150x100/00ff00">ITEM-2</a>
<a class="work-list" data-thumb="https://via.placeholder.com/150x100/0000ff">ITEM-3</a>
 

<img id="work-thumb" src="https://via.placeholder.com/150/" alt="">

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将鼠标悬停在div上更改标记图标

将鼠标悬停在div上不会更改颜色

将鼠标悬停在另一个div上时更改div

将鼠标悬停在一个div上时更改其他div的类

将鼠标悬停在div上时如何更改div内的图像

我可以将鼠标悬停在div上并在其之前更改div的属性吗?

将鼠标悬停在div上

将鼠标悬停在包含它的 div 上时更改图标的颜色

将鼠标悬停在容器上并更改嵌套Div的bgcolor吗?

将鼠标悬停在图片上时更改div的背景图片

将鼠标悬停在封闭的 div 容器上时如何更改图标颜色

将鼠标悬停在subdiv上时更改main div的背景

将鼠标悬停在 div 上可顺利更改背景

如何在将鼠标悬停在 div 上时更改元素的属性

将鼠标悬停在缩略图上可使用CSS更改更大的div

使用JQuery将鼠标悬停在链接上时如何更改单独的div的类

仅使用css将鼠标悬停在其他div上时,是否可以更改目标div的文本?

将鼠标悬停在div上,同时将鼠标悬停在整个标签上

将鼠标悬停在一个元素上可更改另一个元素的背景img

将鼠标悬停在一个类上,并更改该类实例唯一的子img源

将鼠标悬停在div1下的div2上更改div1

将鼠标悬停在<li>上来更改div大小

将鼠标悬停在另一个 div 上时更改一个 div 的样式

如何将鼠标悬停在一个 div 上以触发两个不同 div 的更改?

更改div的内容:在将鼠标悬停在另一个div上之前无法正常工作

将鼠标悬停在同一div中存在的按钮上时,如何更改div背景颜色?

将鼠标悬停在一个div上时,更改其他多个div的样式

jQuery将鼠标悬停在另一个div上时更改div的边框颜色

将鼠标悬停在 1 个 div 上以更改另一个 div 中的内容