Javascript-点击或滚动时交换图像
Javascript - swap image on click or rollover
我知道如何在jquery中做到这一点,但我正在尝试用纯粹的老式javascript来完成以下操作。有人能帮忙吗:
$(".thumbnail").click(function() {
$("#mainImage").attr("src", $(this).attr("src"));
});
我的最终目标是点击缩略图并更改主图像,但我需要使用javascript(无jquery)。我知道这听起来很简单,但我想不通。非常感谢。
jQuery自动提供的东西太多了,很难给你一个能完成jQuery代码所做一切的答案。这里有一个简单的例子,它将查找每个类为thumbnail
的图像,并将其onclick
属性设置为执行图像交换的事件处理程序。
onload = function () {
var bigImg = document.getElementById("mainImage");
for (var i = 0; i < document.images.length; i++) {
var img = document.images[i];
if (/'bthumbnail'b/.test(img.className) {
img.onclick = thumbnailHandler;
}
}
function thumbnailHandler(e) {
bigImg.src = this.src;
}
};
如果您不必支持IE7,您可以使用document.querySelectorAll()
:来稍微简化它
onload = function () {
var bigImg = document.getElementById("mainImage");
var thumbs = document.querySelectorAll(".thumbnail");
for (var i = 0; i < thumbs.length; i++) {
thumbs[i].onclick = thumbnailHandler;
}
function thumbnailHandler(e) {
bigImg.src = this.src;
}
};
顺便说一句,我不明白为什么要将主图像的来源设置为缩略图的来源。你正在将完整的图像加载到缩略图中吗?这可以下载大量内容,并且可以快速增加页面的内存占用。
事件委派可能是最简单的方法:
function expandThumbnail(e) {
if(~(' ' + e.target.className + ' ').indexOf(' thumbnail ')) {
document.getElementById('mainImage').src = e.target.src;
}
}
if(document.addEventListener) {
document.addEventListener('click', expandThumbnail, false);
} else {
document.attachEvent('onclick', function() {
expandThumbnail({
target: event.srcElement
});
});
}
如果我理解正确的话,你会显示一个相关图像的缩略图,比如说"1thumb.png",比如说‘1.png’,当你点击这个缩略图时,你想更改主图像的src属性,比如说id=‘mainimg’,以显示与缩略图相关的"1.png"图像,而不是它显示的任何图像。我试过这个,它有效:
在您的<header>
:内部
<script type='text/javascript'>
function myHandler(source){
document.getElementById('mainimg').src=source;
}
</script>
...
您的缩略图代码:
<img src='1thumb.png' onclick="myHandler('1.png')"/>
或者,对于翻转触发:
<img src='1thumb.png' onmouseover="myHandler('1.png')"/>
看看:http://jsfiddle.net/d7Q27/7/
相关文章:
- 使用JavaScript在菜单中交换图像
- js - 单击时交换图像
- 用于交换图像的 Javascript
- 用于交换图像集的按钮
- Javascript-点击或滚动时交换图像
- 使用angularjs交换图像标签中的ng-src属性
- Jquery 在点击时交换图像
- 如果屏幕宽度 <= 699,则交换图像 src
- 如何在Javascript中交换图像时设置边框和样式
- 播放声音并在单击(菜单栏)时交换图像
- JS/jQuery 在滚动事件上交换图像
- 使用 Javascript 交换图像时遇到问题
- jQuery 断头台 - 交换图像
- 在悬停时交换图像与淡入淡出
- 如何在单击图像时交换图像
- 如何在点击时交换图像
- 使用%用单按钮JavaScript函数交换图像
- 单击切换时交换图像
- 我应该/如何使用.slice()在按下按钮时交换图像scr?(用于在库中使用下一个/上一个按钮)
- 鼠标悬停时Jquery交换图像库