Jquery中幻灯片效果的简单实现

在用Jquery写一个幻灯片效果的时候参考了网上上一些实例,写了我的一个简单实现。

首先要写一个CSS的结构,这样在JSP页面中可以方面循环生成图片,避免固定图片。

<div id="outer">

<div id="inside">

<div id="imageDiv">

<img src="" alt=""  title=""/>

</div>

</div>

</div>

<Style>

#outer{position:relative;width:500px;overflow:hidden;}//一定要是position为relative,宽度要设置,不然无法起到遮盖效果

#inside{position:absolute;width:auto;}//一定要设置为aboslute,不然不容易设置left属性

#imageDiv{position:realtive;float:left;}

</Style>

首先要获取imageDiv的宽度,图片数目,然后用计算出inside的实际宽度,如果不这样,inside的宽度就是outer的宽度,遮盖效果就达不到了。然后设置全部变量:leftPosition(inside的left距离),imageNumber(图片数目),count(最左边显示的索引值),distance(每次移动的距离,也就是imageDiv的outerWidth(true)),

然后每次leftPosition减少或者增加一个distance的距离,然后在在用jquery对象的animate({},300)函数可以了。

 

<script>

var NumberFlag=8;//图片达到多少时候才出现幻灯效果

 

var formers=jq('#outer #inside');

var count=jq('#inside #imageDiv').size();

jq('#inside').width(count*(jq('#imageDiv').outerWidth(true)));

var personNumbers=count;

var leftPosition=0;

var distance=jq('#imageDiv').eq(0).outerWidth(true);

var index=0;

if(personNumbers <=NumberFlag){

jq('#goLeft').hide();

jq('#goRight').hide();

}

jq('#goLeft').click(function(){

if(personNumbers >= NumberFlag  && count >NumberFlag){

leftPosition=leftPosition-distance;

   jq('#inside').animate({left:leftPosition},300,null);    

count--;

}

});

jq('#goRight').click(function(){

if(personNumbers >=NumberFlag && count< personNumbers){

leftPosition=leftPosition+distance;

jq('#inside').animate({left:leftPosition},300,null);

count++;

}

});

 

</script>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个用 jQuery 实现的可重复使用幻灯片,每张图设定不同时间的示例代码: HTML: ```html <div class="slider"> <ul> <li><img src="image1.jpg" data-time="3000"></li> <li><img src="image2.jpg" data-time="5000"></li> <li><img src="image3.jpg" data-time="8000"></li> </ul> </div> ``` CSS: ```css .slider { position: relative; overflow: hidden; } .slider ul { list-style: none; margin: 0; padding: 0; position: relative; } .slider ul li { position: absolute; top: 0; left: 0; } .slider ul li img { display: block; width: 100%; height: auto; } ``` JavaScript: ```javascript $(function() { var $slider = $('.slider'); var $sliderUl = $slider.find('ul'); var $sliderLi = $sliderUl.find('li'); var $sliderImg = $sliderLi.find('img'); var sliderCount = $sliderLi.length; var sliderWidth = $slider.width(); var sliderHeight = $sliderImg.height(); var sliderTime = []; var currentIndex = 0; // 获取每张图片的显示时间 $sliderImg.each(function() { sliderTime.push($(this).data('time')); }); // 设置第一张图片的显示时间 setTimeout(function() { slider($sliderLi.eq(currentIndex)); }, sliderTime[currentIndex]); // 切换图片 function slider($li) { $li.fadeIn().siblings().fadeOut(); currentIndex++; if (currentIndex >= sliderCount) { currentIndex = 0; } setTimeout(function() { slider($sliderLi.eq(currentIndex)); }, sliderTime[currentIndex]); } // 设置容器高度 $slider.height(sliderHeight); // 设置每个 li 的宽度 $sliderLi.width(sliderWidth); // 设置 ul 的宽度 $sliderUl.width(sliderWidth * sliderCount); }); ``` 以上代码实现了一个简单幻灯片效果,每张图片设定了不同的显示时间,可以通过修改 HTML 的 data-time 属性来改变每张图片的显示时间。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值