Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 根据LI单击更改DIV的背景图像_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript 根据LI单击更改DIV的背景图像

Javascript 根据LI单击更改DIV的背景图像,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我正在创建一个网站来展示一个应用程序,并希望允许用户通过iPhone模型来查看该应用程序的各种功能 我在页面上有一个iPhone覆盖图,作为背景图像(.iPhone)和一个屏幕抓图,也作为背景图像(.screen)显示,但希望用户能够通过单击特定按钮来指定屏幕抓图的显示内容 我自己并不熟悉JQuery,但有人告诉我这是一个可能的解决方案。我将如何实现这一点?我的代码是 <div class="iphone"></div> <div class="screen">

我正在创建一个网站来展示一个应用程序,并希望允许用户通过iPhone模型来查看该应用程序的各种功能

我在页面上有一个iPhone覆盖图,作为背景图像(.iPhone)和一个屏幕抓图,也作为背景图像(.screen)显示,但希望用户能够通过单击特定按钮来指定屏幕抓图的显示内容

我自己并不熟悉JQuery,但有人告诉我这是一个可能的解决方案。我将如何实现这一点?我的代码是

<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>