当前位置: 首页 > 面试题库 >

如何构建具有滑动或不透明效果的简单jQuery图像滑块?

姜志
2023-03-14
问题内容

我们中的某些人可能不希望使用现成的插件,因为它们的尺寸很大,并且可能与当前的javascript产生冲突。

我以前使用过轻型滑块插件,但是当客户进行模块化修改时,就变得很难操作。然后,我的目标是建立易于定制的地雷。我认为滑块从一开始就不应该那么复杂。

什么是构建jQuery图像滑块的简单干净的方法?


问题答案:

在检查示例之前,您应该了解我最常用的两个jQuery函数。

index()返回的值是一个整数,指示jQuery对象中第一个元素相对于其同级元素的位置。

eq()根据元素的位置(索引值)选择元素。

基本上,我选择选定的触发器元素,index value并使用eq方法将其与图像匹配。

- 淡入/淡出 效果。

- 滑动 效果。

-备用 鼠标滚轮 响应。

HTML样本:

<ul class="images">
   <li>
      <img src="images/1.jpg" alt="1" />
   </li>
   <li>
      <img src="images/2.jpg" alt="2" />
   </li>
   ...
</ul>

<ul class="triggers">
   <li>1</li>
   <li>2</li>
   ...
</ul>
<span class="control prev">Prev</span>
<span class="control next">Next</span>

效果:

CSS技巧: 位置重叠的图片:绝对

ul.images { position:relative; }
  ul.images li { position:absolute; }

jQuery:

var target;
var triggers = $('ul.triggers li');
var images = $('ul.images li');
var lastElem = triggers.length-1;

triggers.first().addClass('active');
images.hide().first().show();

function sliderResponse(target) {
    images.fadeOut(300).eq(target).fadeIn(300);
    triggers.removeClass('active').eq(target).addClass('active');
}

滑动效果:

CSS技巧: 使用双重包装并使用child作为遮罩

.mask { float:left; margin:40px; width:270px; height:266px; overflow:hidden;  }
    ul.images { position:relative; top:0px;left:0px; }
    /* this width must be total of the images, it comes from jquery */
        ul.images li { float:left; }

jQuery:

var target;
var triggers = $('ul.triggers li');
var images = $('ul.images li');
var lastElem = triggers.length-1;
var mask = $('.mask ul.images');
var imgWidth = images.width();

triggers.first().addClass('active');
mask.css('width', imgWidth*(lastElem+1) +'px');

function sliderResponse(target) {
    mask.stop(true,false).animate({'left':'-'+ imgWidth*target +'px'},300);
    triggers.removeClass('active').eq(target).addClass('active');
}

两个滑块的通用jQuery响应:

触发器+下一个/上一个点击和计时

triggers.click(function() {
    if ( !$(this).hasClass('active') ) {
        target = $(this).index();
        sliderResponse(target);
        resetTiming();
    }
});

$('.next').click(function() {
    target = $('ul.triggers li.active').index();
    target === lastElem ? target = 0 : target = target+1;
    sliderResponse(target);
    resetTiming();
});
$('.prev').click(function() {
    target = $('ul.triggers li.active').index();
    lastElem = triggers.length-1;
    target === 0 ? target = lastElem : target = target-1;
    sliderResponse(target);
    resetTiming();
});

function sliderTiming() {
    target = $('ul.triggers li.active').index();
    target === lastElem ? target = 0 : target = target+1;
    sliderResponse(target);
}

var timingRun = setInterval(function() { sliderTiming(); },5000);
function resetTiming() {
    clearInterval(timingRun);
    timingRun = setInterval(function() { sliderTiming(); },5000);
}


 类似资料:
  • 我在屏幕上的某个位置有一个UIImageView: 然后,我必须在UIImageView中插入另一个图像,我使用了以下代码: 但当第一张图像滑出时,它会淡出(或者在imageView的边缘看起来是透明的)。我尝试了尽可能多的在线解决方案,比如在动画过程中设置图层属性以消除淡入度,或者将图层不透明度指定为1.0,但它们似乎都不起作用。任何帮助都将不胜感激。谢谢

  • 本文向大家介绍jquery实现最简单的滑动菜单效果代码,包括了jquery实现最简单的滑动菜单效果代码的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了jquery实现最简单的滑动菜单效果代码。分享给大家供大家参考。具体如下: 这是一款最简单的jQuery下拉滑出菜单,jQuery代码实现,这里没有过多的去修饰菜单,仅是一些基本的实现,特别是对学习jQuery是个不错的参考实例,这里使用了一

  • 问题内容: 我可以使用以下内容滚动到200px 但是我想要一个平滑的滚动效果。我该怎么做呢? 问题答案: 现在,您可以使用来平滑滚动页面。 较旧的解决方案 您可以执行以下操作: ES6 递归方法:

  • 本文向大家介绍JQuery实现简单的图片滑动切换特效,包括了JQuery实现简单的图片滑动切换特效的使用技巧和注意事项,需要的朋友参考一下 JQuery实现简单的图片滑动切换特效 jQuery图片从下往上滚动效果是一款jquery animate方法制作的图片从下往上滚动效果。 上演示图

  • 问题内容: 有一行可以一次只容纳三个图像,但是我在服务器中有几个图像,我想全部取走。所以在这种情况下,我需要图像滑块。 让说,有10幅图像,例如和行和它包含只有三个非常久远。我想要的是?单击slider_button时,图像应沿按钮方向一一向前。假设,如果我点击则应该行,而不是。因此,有一幅图像被转发到左方向,而另一幅新图像被提取为 请给我一些提示。我想从服务器获取图像会更有用,对吗? 问题答案:

  • 我需要帮助。我有一个简单的jQuery滑块,它工作得很好,但我无法弄清楚这种情况:例如,如果我有4个图像,当我到达第四个图像时,我希望能够通过单击'Next'按钮从第四个图像转到第一个图像。我怎么能那样做? null null