2012-11-24 149 views
0

我想创建/发明一种新的JavaScript滑块对象将由显示基线图像的工作: http://imgur.com/DuVkE.png图像添加到JavaScript对象

然后我想用这些“旋钮”来层取决于特定情况

http://imgur.com/GKkqx.png 这些已经被“切断”并将被放置在三个黑色旋钮之一上。我有许多不同的颜色,因为我计划穿过它们,以便颜色看起来从一个变为另一个。

所以我需要能够附加一个图像到我从用户收到的ID,然后再操纵图像。

我的代码:

<div id='option1'></div> 

<script type="text/javascript"> 

var slide1 = new slider("option1"); 

我的构造函数会是这个样子:

function slider(id) { 

var obj = document.getElementById(id); 
if (!obj) { 
var state = -1; 
return -1; 
} 
var state = 0; //blank state 

//alert("in"); 
//alert(document.getElementById(id).className); 

//this.addClass("hSliderBack"); INCORRECT SYNTAX!!! 
$("#"+id).addClass("hSliderBack"); //this works 
} 

我固定上面的addClass的问题,虽然有点难看。

我的CSS脚本:

.hSliderBack 
{ 
background-image: url('/Switches/switchLine.png'); 
background-repeat: no-repeat; 
padding-left: 2px; /* width of the image plus a little extra padding */ 
display: block; /* may not need this, but I've found I do */ 
} 

这是我怎么能图片添加到我的构造函数。还有很多工作要做,但至少这是一个开始。任何意见仍然赞赏,因为我很绿!

回答

0

你写的什么位置:

//obj.innerHTML = "<img src=' this doesn't seem right to me. 

实际上是在一个非常合理和可行的方式。您输入到DOM中参考要显示的图像的<img>节点。

但是,在许多情况下,更常见的或者更可维护的解决方案是使用引用背景图像的CSS样式,并使用导致图像显示的样式将DOM输入到DOM中。

但是,你应该问自己,没有工具的支持是最好的。许多最流行的JavaScript库都内置了这样的工具,或者至少有一些方法可以使得构建这种类型的代码变得非常容易。

当然,如果你正在做使用框架在此之前,了解网络发展的基础,所以你明白自己在做什么更彻底,更权力给你:-)

+0

说实话,我已经寻找一个小部件已经满足我的需求。然而,我决定为自己创造一个,因为作为一个完美主义者,我想要完全符合我的需求。风格对我来说非常重要。我想要制作一个非常漂亮的网页,而且我不会为更少的(这将是我的商业网页)解决问题。另外,了解这些事情是如何实施是很有趣的。我不能抱怨,如果它使我成为一个更好的网页程序员:)。 – Klik

+0

至于我之前编写的代码,我真的很想避免这样做,因为我需要每个图像在对象内部都有自己的唯一ID。我也认为有一个更简单的方法来做到这一点......我希望如此。 – Klik

+0

您可以用任何一种方法为图片的主机标签指定一个唯一的ID - 事实上,您应该。另外,由于您是直接使用JavaScript生成它们,所以您可以维护一个指向DOM节点的对象,这样您甚至不必通过ID查找它。不要低估构建好小部件的难度。根据您的业务需求和范围,无障碍或国际化难以实施。例如,我使用的Dojo框架(作为Notes/Domino开发人员)并不是最受欢迎的,但它很好地完成了这些工作。 – SAJ14SAJ