Javascript jquery onclick-fadein效果
我刚刚开始学习jquery,对JS的了解很少(长话短说——我听说它有助于提供快捷方式——如果我有时间,我会正确地学习JS) 有了这一点,我试图从本质上创建一个滚动字幕或多帧英雄横幅,无论你想叫它什么。我不想要任何自动化,我特别希望最终用户单击按钮/图像来更改字幕图像 我对jquery的原样有问题,我想在另一件我正在努力解决的事情上寻求帮助,那就是隐藏当前显示的图像Javascript jquery onclick-fadein效果,javascript,jquery,image,Javascript,Jquery,Image,我刚刚开始学习jquery,对JS的了解很少(长话短说——我听说它有助于提供快捷方式——如果我有时间,我会正确地学习JS) 有了这一点,我试图从本质上创建一个滚动字幕或多帧英雄横幅,无论你想叫它什么。我不想要任何自动化,我特别希望最终用户单击按钮/图像来更改字幕图像 我对jquery的原样有问题,我想在另一件我正在努力解决的事情上寻求帮助,那就是隐藏当前显示的图像 我当前的jquery有什么问题,它不能正常工作? A.文件加载在页面顶部 B当我执行jquery的($(“#imgd2”).fade
A.文件加载在页面顶部
B当我执行jquery的($(“#imgd2”).fadeIn;)部分时,它在firebug中工作,但在click函数中它不
//我在默认情况下显示第一个图像,并在页面上隐藏其他两个图像
<div style="width: 100%; height: 450px;" id="img-container">
<div id="imgd1" style="width: 432px; height: 398px; position: absolute; background-image: url(img1.jpg); background-size: cover;"></div>
<div id="imgd2" style="width: 432px; height: 398px; position: absolute; display: none; background-image: url(img2.jpg); background-size: cover;"></div>
<div id="imgd3" style="width: 432px; height: 398px; position: absolute; display: none; background-image: url(img3.jpg); background-size: cover;"></div>
<div style="position: absolute; top: 438px; left: 322px;" id="bttns">
<img id="img1" src="active.png">
<img id="img2" src="active.png">
<img id="img3" src="active.png">
</div>
</div>
提前谢谢
fadeIn
是一个函数,您需要调用它
$("#imgd3").fadeIn();
不必为每个imgd
元素编写单击处理程序,您可以将所有元素作为目标(通过添加一个类imgd
),并使用data-*
属性指定要显示的图像(data target
属性和图像的id)。另外,在所有图像中添加一个类img
,以便我们可以轻松地隐藏它
<div style="width: 100%; height: 450px;" id="img-container">
<div id="imgd1" class="imgd" style="width: 432px; height: 398px; position: absolute; background-image: url(//placehold.it/432x398/ff0000); background-size: cover;"></div>
<div id="imgd2" class="imgd" data-target="#img2" style="width: 432px; height: 398px; position: absolute; display: none; background-image: url(//placehold.it/432x398/00ff00); background-size: cover;"></div>
<div id="imgd3" class="imgd" data-target="#img3" style="width: 432px; height: 398px; position: absolute; display: none; background-image: url(//placehold.it/432x398/0000ff); background-size: cover;"></div>
<div style="position: absolute; top: 438px; left: 322px;" id="bttns">
<img id="img1" class="img" data-target="#imgd1" src="//placehold.it/32/ff0000" />
<img id="img2" class="img" data-target="#imgd2" src="//placehold.it/32/00ff00" />
<img id="img3" class="img" data-target="#imgd3" src="//placehold.it/32/0000ff" />
</div>
</div>
演示:它必须有一个括号:-)
$(“#imgd5”).fadeIn()代码>
关于问题2,这是我的提琴,我想买一个能用的房子。这就是未执行的jQuery.fadeIn
函数。要执行函数,需要括号。当然,如果你做了varfi=$('#img1')。fadeIn;fi()代码>上下文可能会改变,产生问题,但这将是您稍后将了解的内容。感谢您尝试提供帮助!这里有些东西工作不正常。我注意到html中的数据目标拼错了,但这不起作用。有什么想法吗?这就像我的图像无法点击使JS工作一样…@user2828701抱歉,我将imgd
元素设置为可点击而不是img
元素,请参阅更新和demo@scrowler对不起,哪个是复制品id@ArunPJohny我跳了枪,没看到“d” :) apologies@ArunPJohny看起来您的代码正在为我处理一个新页面,但在我需要它的页面上不起作用。这些div和图像是由php提供的…不确定这是否会影响任何东西…但我很可能有某种类型的打字错误,这导致无法工作…感谢您的帮助@博纳基德谢谢你的帮助。当我在firebug工作时,不知何故,它被从我的帖子中删除了。对第二个问题有什么想法吗?我更新了我的答案,希望能有所帮助。另外,我使用按钮是因为我的互联网连接很慢。。。
<div style="width: 100%; height: 450px;" id="img-container">
<div id="imgd1" class="imgd" style="width: 432px; height: 398px; position: absolute; background-image: url(//placehold.it/432x398/ff0000); background-size: cover;"></div>
<div id="imgd2" class="imgd" data-target="#img2" style="width: 432px; height: 398px; position: absolute; display: none; background-image: url(//placehold.it/432x398/00ff00); background-size: cover;"></div>
<div id="imgd3" class="imgd" data-target="#img3" style="width: 432px; height: 398px; position: absolute; display: none; background-image: url(//placehold.it/432x398/0000ff); background-size: cover;"></div>
<div style="position: absolute; top: 438px; left: 322px;" id="bttns">
<img id="img1" class="img" data-target="#imgd1" src="//placehold.it/32/ff0000" />
<img id="img2" class="img" data-target="#imgd2" src="//placehold.it/32/00ff00" />
<img id="img3" class="img" data-target="#imgd3" src="//placehold.it/32/0000ff" />
</div>
</div>
jQuery(function ($) {
var $imgds = $('.imgd');
$('.img').click(function () {
var $target = $($(this).data('target'));
$imgds.not($target).hide();
$target.stop(true, true).fadeIn();
})
});