我想我已经为你找到了解决方案。
现场演示:http: //jsfiddle.net/hM6dj/4/
或多或少,您只需要创建一些字母的图像并使其内部保持透明即可。
例子
您会注意到“A”周围的区域是白色的,而“A”线内的区域是透明的。
代码
然后你需要做的就是把这个图像放在另一个图像的前面。背景中的图像将通过顶部的透明图像渗出,从而形成带有图案的“A”。
注意:我为前景字母使用了数据 url,因此我不必在任何地方托管图像。你可以在这里阅读。
HTML
<div class='container'>
<div class='foreground foreground-Black'> </div>
<div class='background background-Cow'> </div>
</div>
<h2>Foreground Options</h2>
<input type='button' class='btnforeground' data-class='foreground-Black' value="Black" />
<input type='button' class='btnforeground' data-class='foreground-Red' value="Red" />
<input type='button' class='btnforeground' data-class='foreground-Green' value="Green" />
<h2>Background Options</h2>
<input type='button' class='btnbackground' data-class='background-Cow' value="Cow" />
<input type='button' class='btnbackground' data-class='background-Stars' value="Stars" />
<input type='button' class='btnbackground' data-class='background-Dots' value="Dots" />
JS
$('input[type="button"].btnforeground').click(function(){
$('div.container > div.foreground').removeClass().addClass('foreground').addClass($(this).attr('data-class'));
});
$('input[type="button"].btnbackground').click(function(){
$('div.container > div.background').removeClass().addClass('background').addClass($(this).attr('data-class'));
});
CSS
.container{
position:relative;
width: 200px;
height: 200px;
}
.foreground, .background{
width: 200px;
height: 200px;
background-repeat: no-repeat;
position:absolute;
z-index:100;
}
.background{
background-repeat:repeat;
z-index:50;
}
.background-Cow{
background-image:
url(http://www.collegiateconnectionbg.com/wp-content/themes/collegiateconnectionbg/images/fabrics/foregrounds/424.jpg);
}
.background-Stars{
background-image:
url(http://www.collegiateconnectionbg.com/wp-content/themes/collegiateconnectionbg/images/fabrics/foregrounds/48.jpg);
}
.background-Dots{
background-image:
url(http://www.collegiateconnectionbg.com/wp-content/themes/collegiateconnectionbg/images/fabrics/foregrounds/521.jpg);
}
/* Omitted due to StackOverflow character restrictions.
.foreground-Black{
background-image: url();
}
.foreground-Green{
background-image: url();
}
.foreground-Red{
background-image: url();
}
*/
</p>
编辑
使用谷歌浏览器的开发者工具,看起来你有一些 HTML 与你的 JavaScript 混合在一起(注意段落标签<p>
,</p>
)。
此外,我会将 jQuery 事件包装在一个就绪函数中(JS Fiddle 会自动执行此操作,因此在代码示例中并不明显)。
JS
$(function(){
$('input[type="button"].btnforeground').click(function(){
$('div.container > div.foreground').removeClass().addClass('foreground').addClass($(this).attr('data-class'));
});
$('input[type="button"].btnbackground').click(function(){
$('div.container > div.background').removeClass().addClass('background').addClass($(this).attr('data-class'));
});
});
编辑2
一些东西。
你的课:
- 。前景
- 。背景
- .foreground-黑色
- .foreground-牛
- ETC...
我的示例中几乎没有设置任何属性。您应该能够从我提供的jsfiddle中逐字获取 css。
- 您已将容器命名为 class
.viewer
,但.container
在您的 JavaScript 中引用。这些元素必须匹配,JavaScript 才能找到要更新的适当 html 元素。