Javascript 根据LI单击更改DIV的背景图像
我正在创建一个网站来展示一个应用程序,并希望允许用户通过iPhone模型来查看该应用程序的各种功能 我在页面上有一个iPhone覆盖图,作为背景图像(.iPhone)和一个屏幕抓图,也作为背景图像(.screen)显示,但希望用户能够通过单击特定按钮来指定屏幕抓图的显示内容 我自己并不熟悉JQuery,但有人告诉我这是一个可能的解决方案。我将如何实现这一点?我的代码是Javascript 根据LI单击更改DIV的背景图像,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我正在创建一个网站来展示一个应用程序,并希望允许用户通过iPhone模型来查看该应用程序的各种功能 我在页面上有一个iPhone覆盖图,作为背景图像(.iPhone)和一个屏幕抓图,也作为背景图像(.screen)显示,但希望用户能够通过单击特定按钮来指定屏幕抓图的显示内容 我自己并不熟悉JQuery,但有人告诉我这是一个可能的解决方案。我将如何实现这一点?我的代码是 <div class="iphone"></div> <div class="screen">
<div class="iphone"></div>
<div class="screen"></div>
<ul>
<li class="screenshots">Screen 1</li>
<li class="screenshots">Screen 2</li>
</ul>
- 屏幕1
- 屏幕2
任何帮助都将不胜感激
编辑:我发现了一个类似的例子。在这里。。。。单击缩略图,它将显示在iPhone上。
<div class="iphone"></div>
<div class="screen"></div>
<ul>
<li class="screenshots"><a href="#" id="scr1">Screen 1</a></li>
<li class="screenshots"><a href="#" id="scr2">Screen 2</a></li>
</ul>
<script>
$('.screenshots a').click(function(){
switch($(this).attr('id')){
case 'src1':
$('.iphone').css('background-image','url("image1.png")');
break;
case 'src2':
$('.iphone').css('background-image','url("image2.png")');
break;
}
});
</script>
$('.screenshots a')。单击(函数(){
开关($(this.attr('id')){
案例“src1”:
$('.iphone').css('background-image','url('image1.png'));
打破
案例“src2”:
$('.iphone').css('background-image','url('image2.png'));
打破
}
});
从语义上讲,您的标记应该如下所示:
<div class="screenshot" id="iphone"></div>
<div class="screenshot" id="screen"></div>
<ul id="screenshot-nav">
<li><a href="#iphone">Screen 1</a></li>
<li><a href="#screen">Screen 2</a></li>
</ul>
但是,由于您是为iPhone制作的,因此您可能应该查看jQuery Mobile,尤其是
touch
事件处理程序,而不是click
我建议使用一个jQuery click处理程序,可以为每一个处理程序设置所需的图像背景:
<div class="iphone"></div>
<div class="screen"></div>
<ul>
<li class="screenshots" data-backgroundurl="url1.jpg">Screen 1</li>
<li class="screenshots" data-backgroundurl="url2.jpg">Screen 2</li>
</ul>
<script>
$('.screenshots').click(function(){
$('.screen').css('background-image', $(this).data("backgroundurl"));
});
</script>
屏幕1
屏幕2
$('.screenshots')。单击(函数(){
$('.screen').css('background-image',$(this).data(“backgroundurl”);
});
我可能会按如下方式设置它:
<div class="fullsize">
<div class="iphone"></div>
<div class="screen"></div>
<div>
<ul class="screenshots">
<li class="iphone" id="scr1">Screen 1</li>
<li class="screen" id="scr2">Screen 2</li>
</ul>
<script>
$('.screenshots li').click(function() {
$('.fullsize div').hasClass($(this).attr('class')).css('background-image', 'imgurl'));
});
</script>
屏幕1
屏幕2
$('.screenshots li')。单击(函数(){
$('.fullsize div').hasClass($(this.attr('class')).css('background-image','imgurl'));
});
你在帖子中提到了屏幕截图,但我在你的代码中没有看到任何图像标签。是否真的有一个图像标签代替了屏幕1
?屏幕截图将作为背景图像放在“屏幕”类别中,我不知道你在问什么。您是否在询问如何编写单击处理程序来处理单击和更改背景图像?或者你在问如何让屏幕截图进入iphone图像的内部,就像你的例子一样?这不是一回事吗?我有一个iPhone叠加图像,这是“iPhone”类中的背景图像。我在iPhone中已经有一个占位符图像,即“屏幕”,并应用了“背景图像”。我想要的是,当按下屏幕1或2按钮时,图像在“屏幕”中更改“同学们,请看一个新的截图。对不起,我正在尽力解释。不容易。似乎最好只使用一个足够聪明的单击处理程序,以适应其中一个被单击,而不是使用多个单独编码的单击处理程序(简单想想)。@Mark Linus,我的问题措辞非常糟糕。试着修改一下,让它更容易理解。那么你能更好地解释一下吗?我有点紧张confused@Mark莱纳斯,我修改了我原来的帖子。还是没有更好吗?@MarkLinus我试着做一些事情,比如点击一个缩略图,它就会显示在iPhone上。我的问题措辞非常糟糕。我试着修改它使它更容易理解。我的问题措辞很糟糕。我试着修改它使它更容易理解。我的问题措辞很糟糕。试图修改它,使其更容易理解。
<div class="iphone"></div>
<div class="screen"></div>
<ul>
<li class="screenshots" data-backgroundurl="url1.jpg">Screen 1</li>
<li class="screenshots" data-backgroundurl="url2.jpg">Screen 2</li>
</ul>
<script>
$('.screenshots').click(function(){
$('.screen').css('background-image', $(this).data("backgroundurl"));
});
</script>
<div class="fullsize">
<div class="iphone"></div>
<div class="screen"></div>
<div>
<ul class="screenshots">
<li class="iphone" id="scr1">Screen 1</li>
<li class="screen" id="scr2">Screen 2</li>
</ul>
<script>
$('.screenshots li').click(function() {
$('.fullsize div').hasClass($(this).attr('class')).css('background-image', 'imgurl'));
});
</script>