Javascript 获取图像源并注入到另一个图像源中
Javascript get image source and inject into another image source
我一直在做一个Javascript照片库,我希望它非常用户友好。这涉及只需要使用一个图像和每个图像一个链接。我有它,所以所有图像都出现在左侧的滚动div 中,然后单击它应该更改右侧的图像源,但我似乎无法让 javascript 从原始图像中获取图像源并用它更改第二个。我已经尝试了其他几种方法,但这是我喜欢的方式,如果我能让它工作,那就完美了。
这是在一个表格内,所以它的对齐方式不同,我只是提供所需的代码。
下面给出了此代码,但似乎他删除了他的答案。我觉得你比我亲近多了!
Javascript:
<script type="Text/javscript">
function setImage(this) {
document.getElementById("ImageFrame").src = this.childNodes[0].src;
}
</script>
破
<div style="width:275;height:400;overflow-x:scroll;">
<a href="#" onclick="setImage(this);"><img class="gallery" src="JCF/PICT0421.jpg" /></a>
<a href="#" onclick="setImage(this);"><img class="gallery" src="JCF/PICT0422.jpg" /></a>
<a href="#" onclick="setImage(this);"><img class="gallery" src="JCF/PICT0423.jpg" /></a>
</div>
正在更改的图像。
<div>
<img id="ImageFrame" src="JCF/PICT0421.jpg" width="400" />
</div>
这是一个工作示例。 NOTE: a.getElementsByTagName('img')[0].src
因为不同的浏览器会在子标签之前和之后添加节点到标记。 It is safe to use getElementsByTagName('img')[0].src
<html>
<head>
<script type="text/javascript">
function setImg(a){
//alert(a.getElementsByTagName('img')[0].src);
document.getElementById('ImageFrame').src =
a.getElementsByTagName('img')[0].src
}
</script>
</head>
<body>
<a href="#" onclick="setImg(this);"><img src="JCF/PICT0421.jpg"></a>
<div>
<img id="ImageFrame" src="JCF/PICT0421.jpg" width="400" />
</div>
</body>
</html>
var pic1 = document.getElementById("image1");
var src = pic1.src; // here is the src for image1
var pic2 = document.getElementById("image2");
pic1.src = src; // here we set the src for image2
因此,此代码将从图像 1 中获取图像src
并将其放入图像 2 中。
这样的东西应该适合你:
HTML:
<a href="#" onclick="setImage(this);"><img class="gallery" id="image1" src="image1.jpg" /></a>
Javascript:
function setImage(imgParent) {
document.getElementById("ImageFrame").src = imgParent.childNodes[0].src;
}
现场演示
当您实际加载图像时,演示将更好地工作。但是,如果您检查损坏的图像,您可以看到它正在正确加载到新图像中。
编辑:
由于Kaf提到他在childNodes上遇到了问题,你可能想尝试一下:
Javascript:
function setImage(imgParent) {
document.getElementById("ImageFrame").src = imgParent.getElementsByTagName('img')[0].src;
}
假设你可以使用 Jquery
$('.imageClass').click(function(){
var srcToCopy = $(this).attr('src');
$(somewheretoputsrc).attr('src', srcToCopy);
})
此代码应该有效
编辑:使用工作图像编辑小提琴http://jsfiddle.net/jbduzan/b7adx/1/
你应该使用所谓的"不显眼的JavaScript",即不要将内容与JavaScript混合,并在窗口加载后应用所需的行为。像这样:
function addDomListener(element, eventName, listener) {
if (element.addEventListener) // most browsers
element.addEventListener(eventName, listener, true);
else if (element.attachEvent) // IE
element.attachEvent('on' + eventName, listener);
}
window.onload = function() {
var elements = getElementsByClassName('thumb-link');
for (int i=0; i < elements.size(); i++) {
var el = elements[i];
addDomListener(el, "click", function () {
setImage(el);
});
}
}
getElementsByClassName 在这里仍然需要一个实现,每个以前有 onlick 的标签都需要类"thumb-link"。但我相信你会弄清楚的。
使用像jQuery或Prototype这样的库.js会更容易在这里...
- 如何在鼠标悬停时在另一个图像上滑动图像.
- 是否可以仅通过jQuery将图像替换为用户动态选择的另一个图像
- 如何在另一个html文件的框架中包含图像
- 当我点击MVC视图中的图像时,如何打开另一个页面
- 如何将图像制作为按钮并将其重定向到另一个页面
- 如何使用onclick事件点击一个图像,并让它更改同一网页上的另一个图像
- 如果我将宽度调整为另一个值,找出我的图像的高度
- 从imgur api的另一个浏览器拖放图像
- 使用漂亮的照片点击另一个元素显示图像
- 在 JavaScript 中将一个.PNG图像拖放到另一个图像上
- 如何在CSS中修复与另一个图像进行比较的图像
- 接受从另一个浏览器窗口拖放图像
- 在页面中使用了两次多个图像上传,但第一个正在工作,另一个不起作用
- 多个背景图像,一个覆盖另一个
- HTML链接到页面,但带有另一个图像(可以通过JavaScript更改)
- 使用 JQuery 从另一个元素的 id 为图像分配属性
- 用另一个替换现有图像
- Jquery-将图像从一个元素移动到另一个元素
- 当我在另一个画布上同时拖动另一个图像时,如何移动图像
- 当我点击一个图像时,如何将其更改为另一个图像